	.file	"857736.c"
	.intel_syntax noprefix
	.text
	.globl	usage
	.section	.rodata
	.align 8
.LC0:
	.ascii	"  FastTree protein_alignment > tree\n  FastTree < protein_al"
	.ascii	"ignment > tree\n  FastTree -out tree protein_alignment\n  Fa"
	.ascii	"stTree -nt nucleotide_alignment > tree\n  FastTree -nt -gtr "
	.ascii	"< nucleotide_alignment > tree\n  FastTree < nucleotide_align"
	.ascii	"ment > tree\nFastTree accepts alignments in fasta or phylip "
	.ascii	"interleaved formats\n\nCommon options (must be before the al"
	.ascii	"ignment file):\n  -quiet to suppress reporting information\n"
	.ascii	"  -nopr to suppress progress indicator\n  -log logfile -- sa"
	.ascii	"ve intermediate trees, settings, and model details\n  -faste"
	.ascii	"st -- speed up the neighbor joining phase & reduce memory us"
	.ascii	"age\n        (recommended for >50,000 sequences)\n  -n <numb"
	.ascii	"er> to analyze multiple alignments (phylip format only)\n   "
	.ascii	"     (use for global bootstrap, with seqboot and CompareToBo"
	.ascii	"otstrap.pl)\n  -nosupport to not compute support values\n  -"
	.ascii	"intree newick_file to set the starting tree(s)\n  -intree1 n"
	.ascii	"ewick_file to use this starting tree for all the alignments\n"
	.ascii	"        (for faster global bootstrap on huge alignments)\n  "
	.ascii	"-pseudo to use pseudocounts (recommended for highly gapped s"
	.ascii	"equences)\n  -gtr -- generalized time-reversible model (nucl"
	.ascii	"eotide alignments only)\n  -wag -- Whelan-And-Goldman 2001 m"
	.ascii	"odel (amino acid alignments only)\n  -quote -- allow spaces "
	.ascii	"and other restricted characters (but not ' ) in\n           "
	.ascii	"sequence names and quote names in the output tree (fasta inp"
	.ascii	"ut only;\n           FastTree will not be able to read these"
	.ascii	" trees back in)\n  -noml to turn off maximum-likelihood\n  -"
	.ascii	"nome to turn off minimum-evolution NNIs and SPRs\n        (r"
	.ascii	"ecommended if running additional ML NNIs with -intree)\n  -n"
	.ascii	"ome -mllen with -intree to optimize branch lengths for a fix"
	.ascii	"ed topology\n  -cat # to specify the number of rate categori"
	.ascii	"es of sites (default 20)\n      or -nocat to use constant ra"
	.ascii	"tes\n  -gamma -- after optimizing the tree under the CAT app"
	.ascii	"roximation,\n      rescale the lengths to optimize the Gamma"
	.ascii	"20 likelihood\n  -constraints constraintAlignment to constra"
	.ascii	"in the topology search\n       constraintAlignment sho"
	.string	"uld have 1s or 0s to indicates splits\n  -expert -- see more options\nFor more information, see http://www.microbesonline.org/fasttree/\n"
	.section	.data.rel.local,"aw"
	.align 8
	.type	usage, @object
	.size	usage, 8
usage:
	.quad	.LC0
	.globl	expertUsage
	.section	.rodata
	.align 8
.LC1:
	.ascii	"FastTree [-nt] [-n 100] [-quote] [-pseudo | -pseudo 1.0]\n  "
	.ascii	"         [-boot 1000 | -nosupport]\n           [-intree star"
	.ascii	"ting_trees_file | -intree1 starting_tree_file]\n           ["
	.ascii	"-quiet | -nopr]\n           [-nni 10] [-spr 2] [-noml | -mll"
	.ascii	"en | -mlnni 10]\n           [-mlacc 2] [-cat 20 | -nocat] [-"
	.ascii	"gamma]\n           [-slow | -fastest] [-2nd | -no2nd] [-slow"
	.ascii	"nni] [-seed 1253] \n           [-top | -notop] [-topm 1.0 [-"
	.ascii	"close 0.75] [-refresh 0.8]]\n           [-matrix Matrix | -n"
	.ascii	"omatrix] [-nj | -bionj]\n           [-wag] [-nt] [-gtr] [-gt"
	.ascii	"rrates ac ag at cg ct gt] [-gtrfreq A C G T]\n           [ -"
	.ascii	"constraints constraintAlignment [ -constraintWeight 100.0 ] "
	.ascii	"]\n           [-log logfile]\n         [ alignment_file ]\n "
	.ascii	"       [ -out output_newick_file | > newick_tree]\n\nor\n\nF"
	.ascii	"astTree [-nt] [-matrix Matrix | -nomatrix] [-rawdist] -makem"
	.ascii	"atrix [alignment]\n    [-n 100] > phylip_distance_matrix\n\n"
	.ascii	"  FastTree supports fasta or phylip interleaved alignments\n"
	.ascii	"  By default FastTree expects protein alignments,  use -nt f"
	.ascii	"or nucleotides\n  FastTree reads standard input if no alignm"
	.ascii	"ent file is given\n\nInput/output options:\n  -n -- read in "
	.ascii	"multiple alignments in. This only\n    works with phylip int"
	.ascii	"erleaved format. For example, you can\n    use it with the o"
	.ascii	"utput from phylip's seqboot. If you use -n, FastTree\n    wi"
	.ascii	"ll write 1 tree per line to standard output.\n  -intree newi"
	.ascii	"ckfile -- read the starting tree in from newickfile.\n     A"
	.ascii	"ny branch lengths in the starting trees are ignored.\n    -i"
	.ascii	"ntree with -n will read a separate starting tree for each al"
	.ascii	"ignment.\n  -intree1 newickfile -- read the same starting tr"
	.ascii	"ee for each alignment\n  -quiet -- do not write to standard "
	.ascii	"error during normal operation (no progress\n     indicator, "
	.ascii	"no options summary, no likelihood values, etc.)\n  -nopr -- "
	.ascii	"do not write the progress indicator to stderr\n  -log logfil"
	.ascii	"e -- save intermediate trees so you can extract\n    the tre"
	.ascii	"es and restart long-running jobs if they crash\n    -log als"
	.ascii	"o reports the per-site rates (1 means slowest category)\n  "
	.ascii	"-quote -- quote sequence names in the output and allow space"
	.ascii	"s, commas,\n    parentheses, and colons in them but not ' ch"
	.ascii	"aracters (fasta files only)\n\nDistances:\n  Default: For pr"
	.ascii	"otein sequences, log-corrected distances and an\n     amino "
	.ascii	"acid dissimilarity matrix derived from BLOSUM45\n  or for nu"
	.ascii	"cleotide sequences, Jukes-Cantor distances\n  To specify a d"
	.ascii	"ifferent matrix, use -matrix FilePrefix or -nomatrix\n  Use "
	.ascii	"-rawdist to turn the log-correction off\n  or to use %differ"
	.ascii	"ent instead of Jukes-Cantor\n\n  -pseudo [weight] -- Use pse"
	.ascii	"udocounts to estimate distances between\n      sequences wit"
	.ascii	"h little or no overlap. (Off by default.) Recommended\n     "
	.ascii	" if analyzing the alignment has sequences with little or no "
	.ascii	"overlap.\n      If the weight is not specified, it is 1.0\n\n"
	.ascii	"Topology refinement:\n  By default, FastTree tries to improv"
	.ascii	"e the tree with up to 4*log2(N)\n  rounds of minimum-evoluti"
	.ascii	"on nearest-neighbor interchanges (NNI),\n  where N is the nu"
	.ascii	"mber of unique sequences, 2 rounds of\n  subtree-prune-regra"
	.ascii	"ft (SPR) moves (also min. evo.), and\n  up to 2*log(N) round"
	.ascii	"s of maximum-likelihood NNIs.\n  Use -nni to set the number "
	.ascii	"of rounds of min. evo. NNIs,\n  and -spr to set the rounds o"
	.ascii	"f SPRs.\n  Use -noml to turn off both min-evo NNIs and SPRs "
	.ascii	"(useful if refining\n       an approximately maximum-likelih"
	.ascii	"ood tree with further NNIs)\n  Use -sprlength set the maximu"
	.ascii	"m length of a SPR move (default 10)\n  Use -mlnni to set the"
	.ascii	" number of rounds of maximum-likelihood NNIs\n  Use -mlacc 2"
	.ascii	" or -mlacc 3 to always optimize all 5 branches at each NNI,\n"
	.ascii	"      and to optimize all 5 branches in 2 or 3 rounds\n  Use"
	.ascii	" -mllen to optimize branch lengths without ML NNIs\n  Use -m"
	.ascii	"llen -nome with -intree to optimize branch lengths on a fixe"
	.ascii	"d topology\n  Use -slownni to turn off heuristics to avoid c"
	.ascii	"onstant subtrees (affects both\n       ML and ME NNIs)\n\nMa"
	.ascii	"ximum likelihood model options:\n  -wag -- Whelan-And-Goldma"
	.ascii	"n 2001 model instead of (default) Jones-Taylor-Thorton 1992 "
	.ascii	"model (a.a. only)\n  -gtr -- generalized time-reversibl"
	.ascii	"e instead of (default) Jukes-Cantor (nt only)\n  -cat # -- s"
	.ascii	"pecify the number of rate categories of sites (default 20)\n"
	.ascii	"  -nocat -- no CAT model (just 1 category)\n  -gamma -- afte"
	.ascii	"r the final round of optimizing branch lengths with the CAT "
	.ascii	"model,\n            report the likelihood under the discrete"
	.ascii	" gamma model with the same\n            number of categories"
	.ascii	". FastTree uses the same branch lengths but\n            opt"
	.ascii	"imizes the gamma shape parameter and the scale of the length"
	.ascii	"s.\n            The final tree will have rescaled lengths. U"
	.ascii	"sed with -log, this\n            also generates per-site lik"
	.ascii	"elihoods for use with CONSEL, see\n            GammaLogToPau"
	.ascii	"p.pl and documentation on the FastTree web site.\n\nSupport "
	.ascii	"value options:\n  By default, FastTree computes local suppor"
	.ascii	"t values by resampling the site\n  likelihoods 1,000 times a"
	.ascii	"nd the Shimodaira Hasegawa test. If you specify -nome,\n  it"
	.ascii	" will compute minimum-evolution bootstrap supports instead\n"
	.ascii	"  In either case, the support values are proportions ranging"
	.ascii	" from 0 to 1\n\n  Use -nosupport to turn off support values "
	.ascii	"or -boot 100 to use just 100 resamples\n  Use -seed to initi"
	.ascii	"alize the random number generator\n\nSearching for the best "
	.ascii	"join:\n  By default, FastTree combines the 'visible set' of "
	.ascii	"fast neighbor-joining with\n      local hill-climbing as in "
	.ascii	"relaxed neighbor-joining\n  -slow -- exhaustive search (like"
	.ascii	" NJ or BIONJ, but different gap handling)\n      -slow takes"
	.ascii	" half an hour instead of 8 seconds for 1,250 proteins\n  -fa"
	.ascii	"stest -- search the visible set (the top hit for each node) "
	.ascii	"only\n      Unlike the original fast neighbor-joining, -fast"
	.ascii	"est updates visible(C)\n      after joining A and B if join("
	.ascii	"AB,C) is better than join(C,visible(C))\n      -fastest also"
	.ascii	" updates out-distances in a very lazy way,\n      -fastest s"
	.ascii	"ets -2nd on as well, use -fastest -no2nd to avoid this\n\nTo"
	.ascii	"p-hit heuristics:\n  By default, FastTree uses a top-hit lis"
	.ascii	"t to speed up search\n  Use -notop (or -slow) to turn this f"
	.ascii	"eature off\n         and compare all leaves to each ot"
	.ascii	"her,\n         and all new joined nodes to each other\n  -to"
	.ascii	"pm 1.0 -- set the top-hit list size to parameter*sqrt(N)\n  "
	.ascii	"       FastTree estimates the top m hits of a leaf from the\n"
	.ascii	"         top 2*m hits of a 'close' neighbor, where close is\n"
	.ascii	"         defined as d(seed,close) < 0.75 * d(seed, hit of ra"
	.ascii	"nk 2*m),\n         and updates the top-hits as joins proceed"
	.ascii	"\n  -close 0.75 -- modify the close heuristic, lower is more"
	.ascii	" conservative\n  -refresh 0.8 -- compare a joined node to al"
	.ascii	"l other nodes if its\n         top-hit list is less than 80%"
	.ascii	" of the desired length,\n         or if the age of the top-h"
	.ascii	"it list is log2(m) or greater\n   -2nd or -no2nd to turn 2nd"
	.ascii	"-level top hits heuristic on or off\n      This reduces memo"
	.ascii	"ry usage and running time but may lead to\n      marginal re"
	.ascii	"ductions in tree quality.\n      (By default, -fastest turns"
	.ascii	" on -2nd.)\n\nJoin options:\n  -nj: regular (unweighted) nei"
	.ascii	"ghbor-joining (default)\n  -bionj: weighted joins as in BION"
	.ascii	"J\n          FastTree will also weight joins during NNIs\n\n"
	.ascii	"Constrained topology search options:\n  -constraints alignme"
	.ascii	"ntfile -- an alignment with values of 0, 1, and -\n       No"
	.ascii	"t all sequences need be present. A column of 0s and 1s defin"
	.ascii	"es a\n       constrained split. Some constraints may be viol"
	.ascii	"ated\n       (see 'violating constraints:' in standard error"
	.ascii	").\n  -constraintWeig"
	.string	"ht -- how strongly to weight the constraints. A value of 1\n       means a penalty of 1 in tree length for violating a constraint\n       Default: 100.0\n\nFor more information, see http://www.microbesonline.org/fasttree/\n   or the comments in the source code\n"
	.section	.data.rel.local
	.align 8
	.type	expertUsage, @object
	.size	expertUsage, 8
expertUsage:
	.quad	.LC1
	.globl	verbose
	.data
	.align 4
	.type	verbose, @object
	.size	verbose, 4
verbose:
	.long	1
	.globl	showProgress
	.align 4
	.type	showProgress, @object
	.size	showProgress, 4
showProgress:
	.long	1
	.globl	slow
	.bss
	.align 4
	.type	slow, @object
	.size	slow, 4
slow:
	.zero	4
	.globl	fastest
	.align 4
	.type	fastest, @object
	.size	fastest, 4
fastest:
	.zero	4
	.globl	useTopHits2nd
	.type	useTopHits2nd, @object
	.size	useTopHits2nd, 1
useTopHits2nd:
	.zero	1
	.globl	bionj
	.align 4
	.type	bionj, @object
	.size	bionj, 4
bionj:
	.zero	4
	.globl	tophitsMult
	.data
	.align 8
	.type	tophitsMult, @object
	.size	tophitsMult, 8
tophitsMult:
	.long	0
	.long	1072693248
	.globl	tophitsClose
	.align 8
	.type	tophitsClose, @object
	.size	tophitsClose, 8
tophitsClose:
	.long	0
	.long	-1074790400
	.globl	topvisibleMult
	.align 8
	.type	topvisibleMult, @object
	.size	topvisibleMult, 8
topvisibleMult:
	.long	0
	.long	1073217536
	.globl	tophitsRefresh
	.align 8
	.type	tophitsRefresh, @object
	.size	tophitsRefresh, 8
tophitsRefresh:
	.long	-1717986918
	.long	1072273817
	.globl	tophits2Mult
	.align 8
	.type	tophits2Mult, @object
	.size	tophits2Mult, 8
tophits2Mult:
	.long	0
	.long	1072693248
	.globl	tophits2Safety
	.align 4
	.type	tophits2Safety, @object
	.size	tophits2Safety, 4
tophits2Safety:
	.long	3
	.globl	tophits2Refresh
	.align 8
	.type	tophits2Refresh, @object
	.size	tophits2Refresh, 8
tophits2Refresh:
	.long	858993459
	.long	1071854387
	.globl	staleOutLimit
	.align 8
	.type	staleOutLimit, @object
	.size	staleOutLimit, 8
staleOutLimit:
	.long	1202590843
	.long	1065646817
	.globl	fResetOutProfile
	.align 8
	.type	fResetOutProfile, @object
	.size	fResetOutProfile, 8
fResetOutProfile:
	.long	1202590843
	.long	1066695393
	.globl	nResetOutProfile
	.align 4
	.type	nResetOutProfile, @object
	.size	nResetOutProfile, 4
nResetOutProfile:
	.long	200
	.globl	nCodes
	.align 4
	.type	nCodes, @object
	.size	nCodes, 4
nCodes:
	.long	20
	.globl	useMatrix
	.type	useMatrix, @object
	.size	useMatrix, 1
useMatrix:
	.byte	1
	.globl	logdist
	.type	logdist, @object
	.size	logdist, 1
logdist:
	.byte	1
	.globl	pseudoWeight
	.bss
	.align 8
	.type	pseudoWeight, @object
	.size	pseudoWeight, 8
pseudoWeight:
	.zero	8
	.globl	constraintWeight
	.data
	.align 8
	.type	constraintWeight, @object
	.size	constraintWeight, 8
constraintWeight:
	.long	0
	.long	1079574528
	.globl	MEMinDelta
	.align 8
	.type	MEMinDelta, @object
	.size	MEMinDelta, 8
MEMinDelta:
	.long	-350469331
	.long	1058682594
	.globl	fastNNI
	.type	fastNNI, @object
	.size	fastNNI, 1
fastNNI:
	.byte	1
	.globl	gammaLogLk
	.bss
	.type	gammaLogLk, @object
	.size	gammaLogLk, 1
gammaLogLk:
	.zero	1
	.globl	LkUnderflow
	.section	.rodata
	.align 8
	.type	LkUnderflow, @object
	.size	LkUnderflow, 8
LkUnderflow:
	.long	-350469331
	.long	1058682594
	.globl	LkUnderflowInv
	.align 8
	.type	LkUnderflowInv, @object
	.size	LkUnderflowInv, 8
LkUnderflowInv:
	.long	0
	.long	1086556160
	.globl	LogLkUnderflow
	.align 8
	.type	LogLkUnderflow, @object
	.size	LogLkUnderflow, 8
LogLkUnderflow:
	.long	-1145744108
	.long	1075997617
	.globl	Log2
	.align 8
	.type	Log2, @object
	.size	Log2, 8
Log2:
	.long	-17155604
	.long	1072049730
	.globl	MLMinBranchLengthTolerance
	.align 8
	.type	MLMinBranchLengthTolerance, @object
	.size	MLMinBranchLengthTolerance, 8
MLMinBranchLengthTolerance:
	.long	-350469331
	.long	1058682594
	.globl	MLFTolBranchLength
	.align 8
	.type	MLFTolBranchLength, @object
	.size	MLFTolBranchLength, 8
MLFTolBranchLength:
	.long	-755914244
	.long	1062232653
	.globl	MLMinBranchLength
	.align 8
	.type	MLMinBranchLength, @object
	.size	MLMinBranchLength, 8
MLMinBranchLength:
	.long	-755914244
	.long	1061184077
	.globl	MLMinRelBranchLength
	.align 8
	.type	MLMinRelBranchLength, @object
	.size	MLMinRelBranchLength, 8
MLMinRelBranchLength:
	.long	-755914244
	.long	1060135501
	.globl	mlAccuracy
	.data
	.align 4
	.type	mlAccuracy, @object
	.size	mlAccuracy, 4
mlAccuracy:
	.long	1
	.globl	closeLogLkLimit
	.align 8
	.type	closeLogLkLimit, @object
	.size	closeLogLkLimit, 8
closeLogLkLimit:
	.long	0
	.long	1075052544
	.globl	treeLogLkDelta
	.align 8
	.type	treeLogLkDelta, @object
	.size	treeLogLkDelta, 8
treeLogLkDelta:
	.long	-1717986918
	.long	1069128089
	.globl	exactML
	.type	exactML, @object
	.size	exactML, 1
exactML:
	.byte	1
	.globl	approxMLminf
	.align 8
	.type	approxMLminf, @object
	.size	approxMLminf, 8
approxMLminf:
	.long	1717986918
	.long	1072588390
	.globl	approxMLminratio
	.align 8
	.type	approxMLminratio, @object
	.size	approxMLminratio, 8
approxMLminratio:
	.long	1431655765
	.long	1071994197
	.globl	approxMLnearT
	.align 8
	.type	approxMLnearT, @object
	.size	approxMLnearT, 8
approxMLnearT:
	.long	-1717986918
	.long	1070176665
	.globl	nDefaultRateCats
	.section	.rodata
	.align 4
	.type	nDefaultRateCats, @object
	.size	nDefaultRateCats, 4
nDefaultRateCats:
	.long	20
	.globl	profileOps
	.bss
	.align 8
	.type	profileOps, @object
	.size	profileOps, 8
profileOps:
	.zero	8
	.globl	outprofileOps
	.align 8
	.type	outprofileOps, @object
	.size	outprofileOps, 8
outprofileOps:
	.zero	8
	.globl	seqOps
	.align 8
	.type	seqOps, @object
	.size	seqOps, 8
seqOps:
	.zero	8
	.globl	profileAvgOps
	.align 8
	.type	profileAvgOps, @object
	.size	profileAvgOps, 8
profileAvgOps:
	.zero	8
	.globl	nHillBetter
	.align 8
	.type	nHillBetter, @object
	.size	nHillBetter, 8
nHillBetter:
	.zero	8
	.globl	nCloseUsed
	.align 8
	.type	nCloseUsed, @object
	.size	nCloseUsed, 8
nCloseUsed:
	.zero	8
	.globl	nClose2Used
	.align 8
	.type	nClose2Used, @object
	.size	nClose2Used, 8
nClose2Used:
	.zero	8
	.globl	nRefreshTopHits
	.align 8
	.type	nRefreshTopHits, @object
	.size	nRefreshTopHits, 8
nRefreshTopHits:
	.zero	8
	.globl	nVisibleUpdate
	.align 8
	.type	nVisibleUpdate, @object
	.size	nVisibleUpdate, 8
nVisibleUpdate:
	.zero	8
	.globl	nNNI
	.align 8
	.type	nNNI, @object
	.size	nNNI, 8
nNNI:
	.zero	8
	.globl	nSPR
	.align 8
	.type	nSPR, @object
	.size	nSPR, 8
nSPR:
	.zero	8
	.globl	nML_NNI
	.align 8
	.type	nML_NNI, @object
	.size	nML_NNI, 8
nML_NNI:
	.zero	8
	.globl	nSuboptimalSplits
	.align 8
	.type	nSuboptimalSplits, @object
	.size	nSuboptimalSplits, 8
nSuboptimalSplits:
	.zero	8
	.globl	nSuboptimalConstrained
	.align 8
	.type	nSuboptimalConstrained, @object
	.size	nSuboptimalConstrained, 8
nSuboptimalConstrained:
	.zero	8
	.globl	nConstraintViolations
	.align 8
	.type	nConstraintViolations, @object
	.size	nConstraintViolations, 8
nConstraintViolations:
	.zero	8
	.globl	nProfileFreqAlloc
	.align 8
	.type	nProfileFreqAlloc, @object
	.size	nProfileFreqAlloc, 8
nProfileFreqAlloc:
	.zero	8
	.globl	nProfileFreqAvoid
	.align 8
	.type	nProfileFreqAvoid, @object
	.size	nProfileFreqAvoid, 8
nProfileFreqAvoid:
	.zero	8
	.globl	szAllAlloc
	.align 8
	.type	szAllAlloc, @object
	.size	szAllAlloc, 8
szAllAlloc:
	.zero	8
	.globl	mymallocUsed
	.align 8
	.type	mymallocUsed, @object
	.size	mymallocUsed, 8
mymallocUsed:
	.zero	8
	.globl	maxmallocHeap
	.align 8
	.type	maxmallocHeap, @object
	.size	maxmallocHeap, 8
maxmallocHeap:
	.zero	8
	.globl	nLkCompute
	.align 8
	.type	nLkCompute, @object
	.size	nLkCompute, 8
nLkCompute:
	.zero	8
	.globl	nPosteriorCompute
	.align 8
	.type	nPosteriorCompute, @object
	.size	nPosteriorCompute, 8
nPosteriorCompute:
	.zero	8
	.globl	nAAPosteriorExact
	.align 8
	.type	nAAPosteriorExact, @object
	.size	nAAPosteriorExact, 8
nAAPosteriorExact:
	.zero	8
	.globl	nAAPosteriorRough
	.align 8
	.type	nAAPosteriorRough, @object
	.size	nAAPosteriorRough, 8
nAAPosteriorRough:
	.zero	8
	.globl	nStarTests
	.align 8
	.type	nStarTests, @object
	.size	nStarTests, 8
nStarTests:
	.zero	8
	.globl	codesStringAA
	.section	.rodata
.LC2:
	.string	"ARNDCQEGHILKMFPSTWYV"
	.section	.data.rel.local
	.align 8
	.type	codesStringAA, @object
	.size	codesStringAA, 8
codesStringAA:
	.quad	.LC2
	.globl	codesStringNT
	.section	.rodata
.LC3:
	.string	"ACGT"
	.section	.data.rel.local
	.align 8
	.type	codesStringNT, @object
	.size	codesStringNT, 8
codesStringNT:
	.quad	.LC3
	.globl	codesString
	.bss
	.align 8
	.type	codesString, @object
	.size	codesString, 8
codesString:
	.zero	8
	.globl	matrixBLOSUM45
	.data
	.align 32
	.type	matrixBLOSUM45, @object
	.size	matrixBLOSUM45, 5040
matrixBLOSUM45:
	.long	0
	.long	1067961893
	.long	1065904599
	.long	1067603697
	.long	1063754564
	.long	1065844406
	.long	1065792174
	.long	1061487317
	.long	1067666766
	.long	1064759371
	.long	1065138102
	.long	1065773283
	.long	1065811583
	.long	1067019183
	.long	1064806354
	.long	1060328275
	.long	1063340960
	.long	1066170984
	.long	1067713914
	.long	1061998419
	.long	1067961893
	.long	0
	.long	1062016044
	.long	1064570403
	.long	1068374047
	.long	1059171546
	.long	1061847028
	.long	1066669800
	.long	1061346021
	.long	1069129341
	.long	1066845717
	.long	1053430020
	.long	1065333210
	.long	1066486881
	.long	1066647793
	.long	1065798570
	.long	1065773525
	.long	1065683586
	.long	1064736098
	.long	1067053985
	.long	1065904599
	.long	1062016044
	.long	0
	.long	1056569243
	.long	1066239650
	.long	1062248931
	.long	1062168505
	.long	1061099981
	.long	1058957096
	.long	1066853649
	.long	1069715600
	.long	1062139417
	.long	1067776707
	.long	1066717548
	.long	1066882359
	.long	1059975710
	.long	1062898015
	.long	1071140396
	.long	1067391437
	.long	1069984358
	.long	1067603697
	.long	1064570403
	.long	1056569243
	.long	0
	.long	1068002426
	.long	1061490740
	.long	1056363233
	.long	1063480237
	.long	1060930085
	.long	1071792004
	.long	1069008532
	.long	1061387299
	.long	1069831610
	.long	1071587938
	.long	1063446442
	.long	1062142292
	.long	1065486607
	.long	1070354320
	.long	1066813249
	.long	1069262387
	.long	1063754564
	.long	1068374047
	.long	1066239650
	.long	1068002426
	.long	0
	.long	1068571748
	.long	1068503473
	.long	1067596388
	.long	1068067859
	.long	1067541574
	.long	1065556014
	.long	1068478780
	.long	1066143148
	.long	1065134812
	.long	1070329438
	.long	1063937870
	.long	1063894317
	.long	1072126526
	.long	1068116773
	.long	1062501461
	.long	1065844406
	.long	1059171546
	.long	1062248931
	.long	1061490740
	.long	1068571748
	.long	0
	.long	1057081089
	.long	1066837970
	.long	1058887201
	.long	1066787066
	.long	1067016936
	.long	1059268809
	.long	1062106671
	.long	1072342197
	.long	1064213447
	.long	1062842031
	.long	1065926165
	.long	1065834668
	.long	1065016119
	.long	1069896696
	.long	1065792174
	.long	1061847028
	.long	1062168505
	.long	1056363233
	.long	1068503473
	.long	1057081089
	.long	0
	.long	1066779894
	.long	1061490882
	.long	1069267336
	.long	1066957807
	.long	1059205912
	.long	1067640739
	.long	1069098016
	.long	1060914444
	.long	1062758116
	.long	1065873452
	.long	1068074447
	.long	1067260315
	.long	1069820628
	.long	1061487317
	.long	1066669800
	.long	1061099981
	.long	1063480237
	.long	1067596388
	.long	1066837970
	.long	1066779894
	.long	0
	.long	1066409348
	.long	1071246562
	.long	1068565483
	.long	1066758889
	.long	1066801474
	.long	1068144193
	.long	1065987795
	.long	1061643241
	.long	1067306680
	.long	1064825399
	.long	1068916657
	.long	1068809999
	.long	1067666766
	.long	1061346021
	.long	1058957096
	.long	1060930085
	.long	1068067859
	.long	1058887201
	.long	1061490882
	.long	1066409348
	.long	0
	.long	1068802884
	.long	1066580544
	.long	1064812911
	.long	1061519278
	.long	1066231338
	.long	1066387932
	.long	1065561499
	.long	1067765304
	.long	1067655029
	.long	1055913812
	.long	1069335288
	.long	1064759371
	.long	1069129341
	.long	1066853649
	.long	1071792004
	.long	1067541574
	.long	1066787066
	.long	1069267336
	.long	1071246562
	.long	1068802884
	.long	0
	.long	1054728222
	.long	1069241008
	.long	1055721938
	.long	1059697947
	.long	1065941274
	.long	1067282613
	.long	1064908376
	.long	1064741623
	.long	1060466429
	.long	1051971713
	.long	1065138102
	.long	1066845717
	.long	1069715600
	.long	1069008532
	.long	1065556014
	.long	1067016936
	.long	1066957807
	.long	1068565483
	.long	1066580544
	.long	1054728222
	.long	0
	.long	1069528306
	.long	1056085484
	.long	1057610080
	.long	1068539178
	.long	1070268708
	.long	1065290593
	.long	1065119938
	.long	1060744694
	.long	1058148110
	.long	1065773283
	.long	1053430020
	.long	1062139417
	.long	1061387299
	.long	1068478780
	.long	1059268809
	.long	1059205912
	.long	1066758889
	.long	1064812911
	.long	1069241008
	.long	1069528306
	.long	0
	.long	1065420125
	.long	1069072050
	.long	1064088198
	.long	1065879662
	.long	1065854387
	.long	1065763623
	.long	1064884441
	.long	1067146602
	.long	1065811583
	.long	1065333210
	.long	1067776707
	.long	1069831610
	.long	1066143148
	.long	1062106671
	.long	1067640739
	.long	1066801474
	.long	1061519278
	.long	1055721938
	.long	1056085484
	.long	1065420125
	.long	0
	.long	1060736085
	.long	1066779169
	.long	1068245710
	.long	1065893039
	.long	1065801881
	.long	1061576298
	.long	1058802264
	.long	1067019183
	.long	1066486881
	.long	1066717548
	.long	1071587938
	.long	1065134812
	.long	1072342197
	.long	1069098016
	.long	1068144193
	.long	1066231338
	.long	1059697947
	.long	1057610080
	.long	1069072050
	.long	1060736085
	.long	0
	.long	1068118843
	.long	1067140608
	.long	1064683597
	.long	1056130531
	.long	1051914175
	.long	1060198135
	.long	1064806354
	.long	1066647793
	.long	1066882359
	.long	1063446442
	.long	1070329438
	.long	1064213447
	.long	1060914444
	.long	1065987795
	.long	1066387932
	.long	1065941274
	.long	1068539178
	.long	1064088198
	.long	1066779169
	.long	1068118843
	.long	0
	.long	1065002361
	.long	1064955791
	.long	1067177877
	.long	1068889556
	.long	1068783140
	.long	1060328275
	.long	1065798570
	.long	1059975710
	.long	1062142292
	.long	1063937870
	.long	1062842031
	.long	1062758116
	.long	1061643241
	.long	1065561499
	.long	1067282613
	.long	1070268708
	.long	1065879662
	.long	1068245710
	.long	1067140608
	.long	1065002361
	.long	0
	.long	1057989670
	.long	1071755308
	.long	1067843729
	.long	1065522317
	.long	1063340960
	.long	1065773525
	.long	1062898015
	.long	1065486607
	.long	1063894317
	.long	1065926165
	.long	1065873452
	.long	1067306680
	.long	1067765304
	.long	1064908376
	.long	1065290593
	.long	1065854387
	.long	1065893039
	.long	1064683597
	.long	1064955791
	.long	1057989670
	.long	0
	.long	1068670712
	.long	1065574891
	.long	1062122002
	.long	1066170984
	.long	1065683586
	.long	1071140396
	.long	1070354320
	.long	1072126526
	.long	1065834668
	.long	1068074447
	.long	1064825399
	.long	1067655029
	.long	1064741623
	.long	1065119938
	.long	1065763623
	.long	1065801881
	.long	1056130531
	.long	1067177877
	.long	1071755308
	.long	1068670712
	.long	0
	.long	1050924909
	.long	1067606305
	.long	1067713914
	.long	1064736098
	.long	1067391437
	.long	1066813249
	.long	1068116773
	.long	1065016119
	.long	1067260315
	.long	1068916657
	.long	1055913812
	.long	1060466429
	.long	1060744694
	.long	1064884441
	.long	1061576298
	.long	1051914175
	.long	1068889556
	.long	1067843729
	.long	1065574891
	.long	1050924909
	.long	0
	.long	1064230744
	.long	1061998419
	.long	1067053985
	.long	1069984358
	.long	1069262387
	.long	1062501461
	.long	1069896696
	.long	1069820628
	.long	1068809999
	.long	1069335288
	.long	1051971713
	.long	1058148110
	.long	1067146602
	.long	1058802264
	.long	1060198135
	.long	1068783140
	.long	1065522317
	.long	1062122002
	.long	1067606305
	.long	1064230744
	.long	0
	.long	-1101168464
	.long	-1101244939
	.long	-1101122239
	.long	-1100055823
	.long	-1098772247
	.long	-1101486684
	.long	-1101050191
	.long	-1099539435
	.long	-1101289540
	.long	-1100352077
	.long	-1100703787
	.long	-1101181532
	.long	-1101799783
	.long	-1100682421
	.long	-1099784250
	.long	-1101078433
	.long	-1101458949
	.long	-1099176404
	.long	-1101847840
	.long	-1100406144
	.long	-1112746410
	.long	-1123277173
	.long	1053397849
	.long	-1104543567
	.long	1028467414
	.long	-1098480454
	.long	1022814230
	.long	-1098773514
	.long	-1111556282
	.long	-1096261993
	.long	1045218332
	.long	-1108297057
	.long	1044968780
	.long	-1091980379
	.long	1041146174
	.long	1047983214
	.long	-1113557402
	.long	1052852113
	.long	1038106893
	.long	1040427754
	.long	-1114806695
	.long	1012617318
	.long	-1101706764
	.long	1042618942
	.long	1033286001
	.long	-1096684009
	.long	-1115474029
	.long	-1108359421
	.long	1052294002
	.long	1051491872
	.long	1023945626
	.long	1040721180
	.long	1002637763
	.long	-1105098064
	.long	-1102273877
	.long	1044797028
	.long	1036433200
	.long	1052759700
	.long	-1091253515
	.long	-1099357935
	.long	1039151846
	.long	1050602670
	.long	-1106053838
	.long	1035329801
	.long	1037603407
	.long	-1094751203
	.long	1044487010
	.long	1040741592
	.long	-1101387753
	.long	1050297468
	.long	-1103465331
	.long	-1104815113
	.long	1047186925
	.long	-1097445134
	.long	-1126866271
	.long	-1129149389
	.long	1017514032
	.long	-1104938411
	.long	1054681232
	.long	-1096227147
	.long	1048794002
	.long	1035589205
	.long	1012818366
	.long	1056211574
	.long	-1114310747
	.long	1037064505
	.long	-1105800196
	.long	-1095608399
	.long	-1098717123
	.long	-1103129289
	.long	-1103795585
	.long	-1100523530
	.long	1054358061
	.long	1050923463
	.long	-1115721034
	.long	1034472454
	.long	-1110375489
	.long	1039614069
	.long	-1105159120
	.long	-1107493803
	.long	-1139504013
	.long	-1113138446
	.long	-1113836483
	.long	1030005632
	.long	-1117952696
	.long	-1142468967
	.long	-1096699325
	.long	-1138123119
	.long	-1102623175
	.long	-1130872383
	.long	1056987118
	.long	1053090139
	.long	-1121590213
	.long	1033893032
	.long	1032716149
	.long	1053490220
	.long	-1101990240
	.long	-1101238199
	.long	1043277542
	.long	-1093995502
	.long	1045352835
	.long	1056620597
	.long	991184875
	.long	1036422773
	.long	1034871318
	.long	1034980667
	.long	-1091679616
	.long	-1106926038
	.long	1042906215
	.long	1032969673
	.long	1041244151
	.long	-1096360220
	.long	-1093162677
	.long	-1104712015
	.long	1049236881
	.long	-1109269739
	.long	-1109734442
	.long	1000795339
	.long	1008006976
	.long	1028454128
	.long	1057230597
	.long	-1112333660
	.long	1037207285
	.long	-1116232188
	.long	-1101456820
	.long	-1098577014
	.long	-1110686960
	.long	-1109318303
	.long	1049746748
	.long	-1098888242
	.long	1041339933
	.long	1045917477
	.long	1039355670
	.long	-1126439228
	.long	1009381331
	.long	-1095365804
	.long	1054550109
	.long	-1105577586
	.long	1027479413
	.long	-1106273598
	.long	-1099619524
	.long	-1096710387
	.long	1036859490
	.long	1045074944
	.long	1053669162
	.long	1044939335
	.long	-1093612184
	.long	1018811162
	.long	-1104291103
	.long	1034391355
	.long	-1104082665
	.long	1043541671
	.long	1035070838
	.long	-1102367075
	.long	1043112069
	.long	-1095165848
	.long	1047815551
	.long	1042904900
	.long	1038232874
	.long	-1104303737
	.long	-1096788627
	.long	1037849165
	.long	-1090771001
	.long	1036744336
	.long	-1105706063
	.long	1030424425
	.long	-1102931470
	.long	1048738687
	.long	1040801296
	.long	-1095460959
	.long	1034679222
	.long	-1101732651
	.long	1048708222
	.long	-1109332052
	.long	1036564648
	.long	1045826321
	.long	1053818412
	.long	-1118473365
	.long	1029895792
	.long	1040837076
	.long	-1110261768
	.long	1047623296
	.long	1046120821
	.long	-1098786637
	.long	1008398265
	.long	1048896488
	.long	1042504483
	.long	1034579609
	.long	-1097672310
	.long	1012747327
	.long	1051487119
	.long	-1098179270
	.long	-1121724397
	.long	1035103040
	.long	-1104175270
	.long	-1111265389
	.long	1053389973
	.long	1038406705
	.long	-1099586383
	.long	-1092986135
	.long	-1135195231
	.long	1033596868
	.long	-1104605231
	.long	-1091849422
	.long	1053940956
	.long	-1128231326
	.long	1032797273
	.long	-1104858801
	.long	1046972885
	.long	-1103752113
	.long	-1100983062
	.long	-1142526383
	.long	1042726246
	.long	1049303143
	.long	1055321569
	.long	1034428682
	.long	-1111926989
	.long	-1116704911
	.long	-1111472401
	.long	-1097025962
	.long	1051766759
	.long	-1098648554
	.long	-1097173249
	.long	-1112326573
	.long	1042604158
	.long	1053109368
	.long	1039295554
	.long	-1099463055
	.long	1034577349
	.long	-1113213979
	.long	-1113063922
	.long	-1108561960
	.long	-1098904102
	.long	-1104665751
	.long	-1097247326
	.long	1048774204
	.long	1040458649
	.long	1045473002
	.long	1051849237
	.long	-1109408191
	.long	1030146812
	.long	1033145894
	.long	1050358663
	.long	-1094918792
	.long	-1095786264
	.long	1045682234
	.long	-1093437849
	.long	1033951477
	.long	1037285925
	.long	1049861806
	.long	-1094120663
	.long	1023600457
	.long	1046583994
	.long	-1117330736
	.long	-1112406112
	.long	1051048190
	.long	1036628947
	.long	-1124567939
	.long	1027106475
	.long	-1126796953
	.long	-1098783442
	.long	-1105690823
	.long	1038414920
	.long	1042355946
	.long	-1098241727
	.long	-1100720267
	.long	1038904409
	.long	-1095536884
	.long	-1121467462
	.long	1043481011
	.long	-1106915521
	.long	-1107435332
	.long	-1095498209
	.long	1049634576
	.long	1051608739
	.long	1043895971
	.long	1053257729
	.long	1011295342
	.long	1046215845
	.long	-1115878596
	.long	-1126970170
	.long	1056315490
	.long	-1106422193
	.long	-1106947849
	.long	1037881112
	.long	-1109142555
	.long	-1114949157
	.long	-1103392668
	.long	-1095104080
	.long	-1103341202
	.long	-1101182831
	.long	1057304189
	.long	-1103631037
	.long	1032323999
	.long	-1103715951
	.long	1024471774
	.long	1046821588
	.long	1040413125
	.long	-1177320462
	.long	1046896407
	.long	1042483011
	.long	-1122489238
	.long	-1097421098
	.long	-1112437407
	.long	-1098572152
	.long	1049749287
	.long	1045580020
	.long	-1098652174
	.long	-1098410354
	.long	1050030895
	.long	1036798078
	.long	1041958431
	.long	1042910089
	.long	-1095633758
	.long	1054881653
	.long	-1114366199
	.long	1025201043
	.long	-1117892511
	.long	-1098638531
	.long	1040434386
	.long	1050819243
	.long	-1105353454
	.long	-1106700957
	.long	-1114638350
	.long	-1102091394
	.long	-1104078961
	.long	-1114828216
	.long	1057379646
	.long	-1098180507
	.long	-1108925021
	.long	-1105831160
	.long	-1123004127
	.long	-1101517613
	.long	1036544335
	.long	1049463842
	.long	1019050652
	.long	-1113696115
	.long	1056535393
	.long	-1114219322
	.long	-1108880191
	.long	-1098092761
	.long	1047054928
	.long	-1111004066
	.long	-1138874932
	.long	-1093792663
	.long	1045125680
	.long	1036270047
	.long	-1109452547
	.long	1048698196
	.long	-1117646631
	.long	1019713295
	.long	1044008321
	.long	1035617646
	.long	1031217688
	.long	-1148217272
	.long	-1095628681
	.long	-1098307695
	.long	1053736828
	.long	1051517191
	.long	-1099477450
	.long	-1130269525
	.long	1041172620
	.long	1048642454
	.long	1051657861
	.long	-1113988192
	.long	1046461746
	.long	1049209200
	.long	1041891447
	.long	1040831127
	.long	-1095986728
	.long	-1096790049
	.long	1045354326
	.long	-1101112796
	.long	-1095967516
	.long	1040875478
	.long	1043994428
	.long	-1144145715
	.long	-1102449732
	.long	-1102661718
	.long	-1097127388
	.long	1101157530
	.long	1057041255
	.long	1049481785
	.long	1042208355
	.long	1023706754
	.long	-1121382033
	.long	-1095497088
	.long	-1091526579
	.long	-1089117822
	.long	-1087309379
	.long	-1086814678
	.long	-1085640435
	.long	-1082928512
	.long	-1081330914
	.long	-1078756928
	.long	-1078572161
	.long	-1074272789
	.long	-1073582587
	.long	-1068400122
	.long	-1062231115
	.zero	1760
	.globl	matrixJTT92
	.align 32
	.type	matrixJTT92, @object
	.size	matrixJTT92, 3200
matrixJTT92:
	.long	-1551960663
	.long	-1074530531
	.long	-116273355
	.long	1067885870
	.long	-191864779
	.long	1067783529
	.long	-1244647163
	.long	1068474415
	.long	1993414581
	.long	1067834700
	.long	2129204267
	.long	1067860302
	.long	-1352399302
	.long	1068793719
	.long	1634698913
	.long	1069643997
	.long	-2105564767
	.long	1066734987
	.long	-1531619697
	.long	1067195555
	.long	2069006006
	.long	1066888465
	.long	-1803199070
	.long	1067144351
	.long	-191864779
	.long	1067783529
	.long	-1758393971
	.long	1065839956
	.long	-1427990727
	.long	1069739954
	.long	-1241623506
	.long	1070756540
	.long	1622604285
	.long	1071066793
	.long	-1999187017
	.long	1065098336
	.long	1299072988
	.long	1065430458
	.long	9345849
	.long	1070405230
	.long	-216054035
	.long	1067352321
	.long	1184723779
	.long	-1074763174
	.long	278176442
	.long	1066904236
	.long	1239974238
	.long	1065407641
	.long	534362651
	.long	1068349224
	.long	1668783773
	.long	1069834561
	.long	251513285
	.long	1066303813
	.long	114349209
	.long	1068630880
	.long	298517407
	.long	1069912114
	.long	466742686
	.long	1065821166
	.long	-1294125186
	.long	1066662979
	.long	533263139
	.long	1070939148
	.long	934310006
	.long	1066869809
	.long	-2138824994
	.long	1063586172
	.long	1275708366
	.long	1067677095
	.long	-1694072540
	.long	1068142394
	.long	-1141293070
	.long	1067504759
	.long	-1047009948
	.long	1068536088
	.long	-2138824994
	.long	1065683324
	.long	-72292890
	.long	1065476494
	.long	-355692012
	.long	1066888733
	.long	-778454232
	.long	1066632847
	.long	-553329227
	.long	-1074496204
	.long	438155384
	.long	1070375702
	.long	-827657378
	.long	1066238314
	.long	-2138550116
	.long	1067624515
	.long	1896932436
	.long	1067002483
	.long	923864645
	.long	1067553447
	.long	81638738
	.long	1069888735
	.long	114074331
	.long	1066689689
	.long	1261689593
	.long	1064621058
	.long	-210281599
	.long	1069320020
	.long	-1037938977
	.long	1066010815
	.long	116273355
	.long	1064393425
	.long	-1037938977
	.long	1064962239
	.long	-1814743942
	.long	1070286841
	.long	1896932436
	.long	1069099635
	.long	1682252790
	.long	1064027480
	.long	64871186
	.long	1067343732
	.long	1682252790
	.long	1065076056
	.long	245191093
	.long	1067793764
	.long	271579372
	.long	1065404420
	.long	1406825128
	.long	1070681714
	.long	893902953
	.long	-1074743316
	.long	-128093105
	.long	1064630721
	.long	-248764506
	.long	1067037312
	.long	-1202315965
	.long	1071195109
	.long	1134146244
	.long	1068567378
	.long	942831221
	.long	1068326474
	.long	1542339936
	.long	1064768429
	.long	942831221
	.long	1064132170
	.long	1142667459
	.long	1066091883
	.long	742994982
	.long	1065318185
	.long	2141848651
	.long	1063307536
	.long	742994982
	.long	1065318185
	.long	-1960704110
	.long	1067381044
	.long	-1240523994
	.long	1066659288
	.long	2141848651
	.long	1063307536
	.long	-1172629151
	.long	1066934233
	.long	1862847575
	.long	1066418703
	.long	622048703
	.long	1065783585
	.long	2070930151
	.long	1066845314
	.long	861742238
	.long	1065051897
	.long	-194063802
	.long	1063264049
	.long	-610228953
	.long	-1075701173
	.long	-986536808
	.long	1063060508
	.long	-194063802
	.long	1062215473
	.long	-1699295221
	.long	1065862773
	.long	399672477
	.long	1066126914
	.long	861742238
	.long	1064003321
	.long	-541784355
	.long	1064471002
	.long	2111612081
	.long	1062637454
	.long	1209462791
	.long	1064893520
	.long	-1334257360
	.long	1066364613
	.long	1557183343
	.long	1063686567
	.long	1577524308
	.long	1067874093
	.long	1306494692
	.long	1065413815
	.long	1608860389
	.long	1066871755
	.long	1982419465
	.long	1067781684
	.long	274328151
	.long	1065941962
	.long	-1799075901
	.long	1066902088
	.long	-1586595279
	.long	1069551915
	.long	-62122407
	.long	1067570257
	.long	-126168959
	.long	1066684722
	.long	-1703693267
	.long	1064163845
	.long	-1587419913
	.long	-1074744106
	.long	1130023075
	.long	1069596073
	.long	1032441418
	.long	1065717684
	.long	665204535
	.long	1070526764
	.long	-1703693267
	.long	1064163845
	.long	-768558628
	.long	1067309707
	.long	574494826
	.long	1069434022
	.long	1851577581
	.long	1066521648
	.long	-1052782384
	.long	1062898373
	.long	-834529325
	.long	1068564475
	.long	1418644878
	.long	1066793439
	.long	646237959
	.long	1066739081
	.long	-1703693267
	.long	1065212421
	.long	-512372419
	.long	1065608967
	.long	692967203
	.long	1065391535
	.long	-547556791
	.long	1068532615
	.long	-2057186256
	.long	1066548827
	.long	-2057186256
	.long	1067597403
	.long	70093866
	.long	1071523897
	.long	1896932436
	.long	1063856755
	.long	1840307587
	.long	1070163537
	.long	-811164703
	.long	-1074907122
	.long	-300166674
	.long	1068676899
	.long	-495329988
	.long	1066425145
	.long	780103500
	.long	1065234970
	.long	-1562406023
	.long	1064740243
	.long	376032977
	.long	1069315944
	.long	-1562406023
	.long	1065788819
	.long	1896932436
	.long	1063856755
	.long	-1562406023
	.long	1065788819
	.long	1561306511
	.long	1066590032
	.long	675924773
	.long	1066672509
	.long	26663157
	.long	1064905063
	.long	1979120930
	.long	1064410336
	.long	-1485440209
	.long	1067208507
	.long	-670702093
	.long	1069590343
	.long	-1654215244
	.long	1069121009
	.long	-1590993325
	.long	1068377275
	.long	600608227
	.long	1069035647
	.long	1124800395
	.long	1067840740
	.long	1339480041
	.long	1066621439
	.long	1279556657
	.long	1068901513
	.long	332052512
	.long	-1075528952
	.long	-517595099
	.long	1066475074
	.long	101429948
	.long	1064426711
	.long	101429948
	.long	1064426711
	.long	1958505087
	.long	1066670227
	.long	-1717437163
	.long	1065670439
	.long	-454373180
	.long	1064158476
	.long	101429948
	.long	1066523863
	.long	319408128
	.long	1069724486
	.long	910120750
	.long	1066962889
	.long	-113249698
	.long	1067743163
	.long	758663023
	.long	1064817016
	.long	-2121782564
	.long	1067548078
	.long	995058023
	.long	1064908284
	.long	1401877325
	.long	1068704884
	.long	2060759668
	.long	1068945855
	.long	-1612708680
	.long	1067066706
	.long	1849928314
	.long	1066408838
	.long	-1937889244
	.long	1069640633
	.long	-224575250
	.long	1064847080
	.long	411492227
	.long	1064663471
	.long	-2060209913
	.long	-1074648114
	.long	373559076
	.long	1064165993
	.long	-1145141360
	.long	1066018197
	.long	-1410673418
	.long	1065681579
	.long	-277076930
	.long	1065275503
	.long	1982694343
	.long	1065528571
	.long	375758099
	.long	1067112609
	.long	-1225405709
	.long	1066470041
	.long	1346626866
	.long	1065712181
	.long	373559076
	.long	1063117417
	.long	2037669924
	.long	1069594739
	.long	1062128232
	.long	1063553960
	.long	1953007529
	.long	1066643719
	.long	-1119027959
	.long	1065881966
	.long	599508715
	.long	1067038051
	.long	-1119027959
	.long	1064833390
	.long	807316413
	.long	1065523471
	.long	-1406825128
	.long	1064546701
	.long	1172354273
	.long	1064976735
	.long	1172354273
	.long	1063928159
	.long	-338374703
	.long	1065451798
	.long	2107763790
	.long	-1074503508
	.long	-1183624267
	.long	1069502657
	.long	2030248221
	.long	1065810294
	.long	-1870544157
	.long	1070620716
	.long	-832605180
	.long	1067997036
	.long	884557105
	.long	1064690046
	.long	416989785
	.long	1066787131
	.long	1266087639
	.long	1069596786
	.long	-1406825128
	.long	1064546701
	.long	-338374703
	.long	1066500374
	.long	867514674
	.long	1071672652
	.long	1414246831
	.long	1067191663
	.long	-900225145
	.long	1067566130
	.long	-586589453
	.long	1065775397
	.long	1867245622
	.long	1064971903
	.long	2021177250
	.long	1066762703
	.long	1707541558
	.long	1068553436
	.long	-2119858418
	.long	1065407775
	.long	-586589453
	.long	1064726821
	.long	-46454366
	.long	1068117664
	.long	-1022545814
	.long	1070253127
	.long	172348448
	.long	-1075486363
	.long	1867245622
	.long	1066020479
	.long	-1477743628
	.long	1071033599
	.long	475538779
	.long	1070398670
	.long	987361442
	.long	1069013048
	.long	570646535
	.long	1068209604
	.long	1100611139
	.long	1066885244
	.long	874111744
	.long	1067995124
	.long	-586589453
	.long	1066823973
	.long	2134426947
	.long	1069877779
	.long	1588794302
	.long	1066722572
	.long	-1099511628
	.long	1071127199
	.long	179770151
	.long	1069785186
	.long	1378787581
	.long	1066339112
	.long	412041983
	.long	1064351549
	.long	1019247279
	.long	1069927012
	.long	-1209462791
	.long	1069220783
	.long	-1596765761
	.long	1066409576
	.long	202035262
	.long	1067113817
	.long	-1529420674
	.long	1065947867
	.long	412041983
	.long	1065400125
	.long	470590977
	.long	-1074998576
	.long	-1051957750
	.long	1067673370
	.long	-142661634
	.long	1063459470
	.long	-1529420674
	.long	1065947867
	.long	-75316547
	.long	1067192065
	.long	-1539316279
	.long	1068416735
	.long	-1252068866
	.long	1064821042
	.long	-142661634
	.long	1064508046
	.long	412041983
	.long	1065400125
	.long	1867245622
	.long	1066020479
	.long	-623423093
	.long	1065702651
	.long	-1681428157
	.long	1065162492
	.long	-1681428157
	.long	1064113916
	.long	-809240558
	.long	1065226111
	.long	2023101395
	.long	1065670976
	.long	2053063087
	.long	1064399867
	.long	869163942
	.long	1063986678
	.long	-935134639
	.long	1065353081
	.long	-159978942
	.long	1069352853
	.long	1711389849
	.long	1068991422
	.long	1711389849
	.long	1066369982
	.long	1328759802
	.long	-1074599506
	.long	2023101395
	.long	1065670976
	.long	62947041
	.long	1064241155
	.long	1741351540
	.long	1065098873
	.long	-965096331
	.long	1068197054
	.long	1120952105
	.long	1064781314
	.long	2053063087
	.long	1064399867
	.long	-1723759354
	.long	1068733254
	.long	115448721
	.long	1064861308
	.long	-1169880372
	.long	1063277471
	.long	700388907
	.long	1064326316
	.long	898850756
	.long	1062871530
	.long	1944211436
	.long	1067440167
	.long	898850756
	.long	1062871530
	.long	-1169880372
	.long	1063277471
	.long	-1169880372
	.long	1063277471
	.long	700388907
	.long	1066423468
	.long	1997537750
	.long	1067592437
	.long	-917267575
	.long	1069109248
	.long	898850756
	.long	1062871530
	.long	1565154802
	.long	1066503730
	.long	-2123156953
	.long	-1075551285
	.long	-2058285767
	.long	1065075519
	.long	-1865046599
	.long	1067632568
	.long	951352436
	.long	1064540259
	.long	1740252029
	.long	1066771293
	.long	-351293965
	.long	1070291597
	.long	39582419
	.long	1067012080
	.long	439254895
	.long	1069096498
	.long	738871814
	.long	1067657600
	.long	1585770645
	.long	1065292415
	.long	1585770645
	.long	1065292415
	.long	1992589947
	.long	1065156855
	.long	1734754471
	.long	1068841937
	.long	840576639
	.long	1065526558
	.long	-934310006
	.long	1065933774
	.long	-541234599
	.long	1068353384
	.long	-1990940680
	.long	1064613810
	.long	2076977465
	.long	1068132764
	.long	2100616965
	.long	1065730166
	.long	-622873337
	.long	1065390729
	.long	108851651
	.long	1065458644
	.long	350469331
	.long	-1075361507
	.long	1484890453
	.long	1069708086
	.long	-226224517
	.long	1068404286
	.long	935959273
	.long	1063836891
	.long	-1990940680
	.long	1064613810
	.long	-1666034994
	.long	1065865860
	.long	379606389
	.long	1070630787
	.long	-434032215
	.long	1068608146
	.long	43430709
	.long	1070989010
	.long	1128648686
	.long	1067754438
	.long	-1518150680
	.long	1069777082
	.long	-1520349703
	.long	1067616898
	.long	2122882075
	.long	1066728813
	.long	391151262
	.long	1069650985
	.long	-174822349
	.long	1068075419
	.long	1087142122
	.long	1067187301
	.long	1128648686
	.long	1067754438
	.long	2039319192
	.long	1067479325
	.long	134415296
	.long	1066682911
	.long	-868614186
	.long	1068504983
	.long	-607205296
	.long	1070132440
	.long	1688300104
	.long	-1074320782
	.long	857069314
	.long	1070914498
	.long	1605012099
	.long	1066958057
	.long	-2038219680
	.long	1067846142
	.long	-1954656796
	.long	1067095630
	.long	-895827099
	.long	1070706850
	.long	672351360
	.long	1067651426
	.long	1055806041
	.long	1069631431
	.long	862291994
	.long	1066837127
	.long	-1562680901
	.long	1066993356
	.long	-1043986291
	.long	1067344805
	.long	672351360
	.long	1066602850
	.long	-2081375511
	.long	1066641907
	.long	307313500
	.long	1067149586
	.long	-1388408308
	.long	1069694882
	.long	-2117659395
	.long	1066257239
	.long	1874117570
	.long	1068412910
	.long	973617546
	.long	1069602138
	.long	-905172948
	.long	1065130548
	.long	-1990116046
	.long	1068602375
	.long	-166301134
	.long	1070711732
	.long	-618200413
	.long	-1074438720
	.long	-905172948
	.long	1065130548
	.long	-1562680901
	.long	1065944780
	.long	1183624267
	.long	1068543806
	.long	-749042296
	.long	1062527932
	.long	-1469497291
	.long	1066551377
	.long	981039250
	.long	1062376535
	.long	981039250
	.long	1061327959
	.long	-262508401
	.long	1066446754
	.long	-1303471035
	.long	1063577045
	.long	706985977
	.long	1062680404
	.long	-2110512570
	.long	1065347981
	.long	981039250
	.long	1062376535
	.long	-749042296
	.long	1062527932
	.long	1888960977
	.long	1065233896
	.long	706985977
	.long	1062680404
	.long	-121496035
	.long	1064033385
	.long	1179226221
	.long	1065272014
	.long	432932703
	.long	1061935697
	.long	1830961738
	.long	1064587235
	.long	432932703
	.long	1062984273
	.long	1617656482
	.long	-1076624213
	.long	-1883738296
	.long	1065655004
	.long	-986536808
	.long	1064109084
	.long	129742372
	.long	1064091368
	.long	-971418523
	.long	1064968413
	.long	-1222382052
	.long	1066851622
	.long	-1189946459
	.long	1066274016
	.long	1406275372
	.long	1068568804
	.long	1785332006
	.long	1065310937
	.long	-1088791389
	.long	1063406320
	.long	-1857899773
	.long	1063577582
	.long	2128379633
	.long	1070032121
	.long	1501932884
	.long	1065674600
	.long	1785332006
	.long	1065310937
	.long	-1857899773
	.long	1063577582
	.long	-202310140
	.long	1064797151
	.long	618200413
	.long	1069933119
	.long	898850756
	.long	1063920106
	.long	-1623154041
	.long	1066701768
	.long	-1355972715
	.long	1065054044
	.long	1902704872
	.long	1066873030
	.long	-108851651
	.long	-1075616725
	.long	566798244
	.long	1064625890
	.long	-986536808
	.long	1070138396
	.long	1930467540
	.long	1065801033
	.long	-1632499889
	.long	1065712986
	.long	1348551011
	.long	1066717606
	.long	1348551011
	.long	1067766182
	.long	-265532058
	.long	1066065173
	.long	-883182715
	.long	1067333732
	.long	-1615182581
	.long	1067421779
	.long	1630300866
	.long	1065192557
	.long	1875217081
	.long	1071917834
	.long	1498084593
	.long	1069430918
	.long	766634482
	.long	1065537027
	.long	1662461581
	.long	1070275936
	.long	1348551011
	.long	1067766182
	.long	898301000
	.long	1066329180
	.long	466467808
	.long	1067025703
	.long	-657782831
	.long	1068682704
	.long	-282849366
	.long	1066453532
	.long	-1632499889
	.long	1065712986
	.long	-481586093
	.long	-1074536937
	.globl	statJTT92
	.align 32
	.type	statJTT92, @object
	.size	statJTT92, 160
statJTT92:
	.long	-308918787
	.long	1068737983
	.long	-934430952
	.long	1068136249
	.long	-976938072
	.long	1067832723
	.long	-35140392
	.long	1068131323
	.long	-2126521459
	.long	1066682173
	.long	-1996548189
	.long	1067769200
	.long	-689030952
	.long	1068476458
	.long	-1129319388
	.long	1068677654
	.long	448941593
	.long	1066892961
	.long	748162687
	.long	1068205715
	.long	-1797261707
	.long	1068992259
	.long	634704082
	.long	1068370626
	.long	-1000159757
	.long	1066952147
	.long	1921759408
	.long	1067748193
	.long	586688409
	.long	1068109745
	.long	-1024107120
	.long	1068604053
	.long	-1522031956
	.long	1068366907
	.long	1311618416
	.long	1066218661
	.long	145542354
	.long	1067478955
	.long	-802434581
	.long	1068557748
	.globl	matrixWAG01
	.align 32
	.type	matrixWAG01, @object
	.size	matrixWAG01, 3200
matrixWAG01:
	.long	-1172629151
	.long	-1074667559
	.long	435956360
	.long	1068084446
	.long	605281151
	.long	1067957174
	.long	-1766915186
	.long	1068577595
	.long	1379612215
	.long	1069016957
	.long	2070655273
	.long	1068836283
	.long	-858718581
	.long	1069706131
	.long	1137444779
	.long	1069579430
	.long	575044581
	.long	1067287092
	.long	-2136625971
	.long	1066532788
	.long	-1346626866
	.long	1067615690
	.long	-1235576192
	.long	1068832726
	.long	1565704558
	.long	1068813248
	.long	1886487075
	.long	1066637545
	.long	-1495885570
	.long	1069596081
	.long	-56899727
	.long	1070832918
	.long	2140474261
	.long	1070116653
	.long	-1931841930
	.long	1065685203
	.long	-1261139837
	.long	1066822027
	.long	-1221282541
	.long	1070028866
	.long	571746046
	.long	1067061472
	.long	-247664994
	.long	-1074844260
	.long	5772436
	.long	1067320915
	.long	987361442
	.long	1065080888
	.long	-1422218291
	.long	1066989061
	.long	-1974448006
	.long	1069674070
	.long	1489013622
	.long	1066713311
	.long	1582472110
	.long	1067163947
	.long	1115179668
	.long	1069105071
	.long	-966745599
	.long	1065462804
	.long	1200391820
	.long	1066894505
	.long	799344953
	.long	1070570628
	.long	-1813919308
	.long	1067459662
	.long	263882791
	.long	1064528448
	.long	-521168512
	.long	1067453991
	.long	-1564055291
	.long	1068297449
	.long	1693522785
	.long	1067070263
	.long	-1028868006
	.long	1068204134
	.long	-994508267
	.long	1066534801
	.long	-1492312157
	.long	1065864652
	.long	-2473901
	.long	1066756864
	.long	-1974997761
	.long	1067102408
	.long	-1596490884
	.long	-1074315985
	.long	-281200099
	.long	1070367430
	.long	1357621982
	.long	1065765197
	.long	-1997812628
	.long	1068512835
	.long	-1404076349
	.long	1067705683
	.long	1941462657
	.long	1067951201
	.long	1761142750
	.long	1069860465
	.long	1034090686
	.long	1066879070
	.long	-1200116942
	.long	1064704541
	.long	1071474081
	.long	1069523478
	.long	-1872193424
	.long	1065396098
	.long	-541509477
	.long	1064315041
	.long	2049489674
	.long	1065378784
	.long	1827663203
	.long	1069866639
	.long	-514846320
	.long	1068847624
	.long	817761773
	.long	1063791257
	.long	-1679778889
	.long	1067896742
	.long	-308687889
	.long	1065385226
	.long	1242997895
	.long	1067886374
	.long	615176756
	.long	1065488306
	.long	299067163
	.long	1070910912
	.long	-283124244
	.long	-1074812075
	.long	-1422768046
	.long	1063106679
	.long	-2102541110
	.long	1067640856
	.long	-2138550116
	.long	1071097923
	.long	-965920965
	.long	1068140649
	.long	1703418389
	.long	1068271411
	.long	958774139
	.long	1063475040
	.long	-815562750
	.long	1064618910
	.long	-1916173889
	.long	1067281186
	.long	226224517
	.long	1064923585
	.long	-808415924
	.long	1063709652
	.long	1734204715
	.long	1067056707
	.long	-679223308
	.long	1068526894
	.long	1008252163
	.long	1066859340
	.long	247664994
	.long	1065341539
	.long	-652835029
	.long	1066661838
	.long	-1377138314
	.long	1065528705
	.long	-1384834895
	.long	1066749885
	.long	1472246070
	.long	1065741172
	.long	-1821066134
	.long	1064698904
	.long	-172348448
	.long	1061428890
	.long	1780384203
	.long	-1075892005
	.long	-1864771721
	.long	1063282303
	.long	-690768180
	.long	1060921480
	.long	-328204221
	.long	1064924121
	.long	-534637529
	.long	1064610320
	.long	-409842959
	.long	1064058618
	.long	-447226355
	.long	1065346370
	.long	-1133871366
	.long	1062769524
	.long	-508249250
	.long	1065366704
	.long	-101704826
	.long	1065387105
	.long	-807866169
	.long	1063397730
	.long	1484340697
	.long	1067267496
	.long	1213585959
	.long	1065699833
	.long	-835079081
	.long	1066254957
	.long	1557183343
	.long	1065783719
	.long	-1283130070
	.long	1066715995
	.long	-550030692
	.long	1067576968
	.long	2103365744
	.long	1069413436
	.long	-803743000
	.long	1068398347
	.long	1037664099
	.long	1066948729
	.long	1304845424
	.long	1064252429
	.long	1873292936
	.long	-1074392167
	.long	964821453
	.long	1070267514
	.long	-276527174
	.long	1066012157
	.long	-212205744
	.long	1069887459
	.long	374933465
	.long	1064434764
	.long	1472795825
	.long	1067526402
	.long	-1451355349
	.long	1069758367
	.long	-1107757965
	.long	1068400461
	.long	-1060753843
	.long	1064275514
	.long	1522548727
	.long	1067609013
	.long	-974442180
	.long	1067732560
	.long	284498634
	.long	1067511437
	.long	-1606111610
	.long	1065420794
	.long	-5772436
	.long	1065482668
	.long	2041243337
	.long	1065863310
	.long	-1262789105
	.long	1069068513
	.long	394174919
	.long	1067148982
	.long	-1729531790
	.long	1068338419
	.long	-493680721
	.long	1071125475
	.long	485434384
	.long	1062555850
	.long	-1436237064
	.long	1070945376
	.long	1558832610
	.long	-1074541999
	.long	2002210674
	.long	1067562540
	.long	-1541515302
	.long	1067567271
	.long	1910951209
	.long	1065339928
	.long	-1532444331
	.long	1065566286
	.long	-1721285453
	.long	1069819973
	.long	1746024465
	.long	1066641840
	.long	-453273669
	.long	1064583208
	.long	746018639
	.long	1067796918
	.long	-1603912587
	.long	1067843122
	.long	-455747570
	.long	1068084009
	.long	537386308
	.long	1065585077
	.long	1050583360
	.long	1065910018
	.long	-1316115418
	.long	1067605523
	.long	-406544424
	.long	1069527118
	.long	681697209
	.long	1068115920
	.long	1320788343
	.long	1069100323
	.long	-661081366
	.long	1068719228
	.long	46729244
	.long	1067151398
	.long	1804023703
	.long	1067288501
	.long	192964291
	.long	1068066226
	.long	-1782583227
	.long	-1075848980
	.long	1564605046
	.long	1066815652
	.long	2133877192
	.long	1063636101
	.long	1298523232
	.long	1064693804
	.long	455472692
	.long	1067496975
	.long	336450558
	.long	1066346360
	.long	-452998791
	.long	1064427247
	.long	-671526727
	.long	1066781426
	.long	-842500785
	.long	1069417328
	.long	448600744
	.long	1066677408
	.long	1681977913
	.long	1067329169
	.long	-541784355
	.long	1065519578
	.long	532163628
	.long	1066451184
	.long	2042067971
	.long	1065395427
	.long	1370816122
	.long	1068240541
	.long	526940948
	.long	1069152299
	.long	-766084727
	.long	1066954634
	.long	-210006721
	.long	1064969755
	.long	1579173575
	.long	1069297623
	.long	1341953942
	.long	1066266366
	.long	-1111881134
	.long	1064972708
	.long	42880953
	.long	-1074806460
	.long	-1540965546
	.long	1064109621
	.long	1900505849
	.long	1066023566
	.long	-1791654197
	.long	1066885445
	.long	1354048570
	.long	1065695538
	.long	1764716163
	.long	1066522252
	.long	1422768046
	.long	1066551176
	.long	557727273
	.long	1066626875
	.long	1490388011
	.long	1065933506
	.long	-321057395
	.long	1065063439
	.long	1356797349
	.long	1069116664
	.long	935959273
	.long	1063836891
	.long	589063355
	.long	1065624537
	.long	-811714459
	.long	1065581184
	.long	403245889
	.long	1067245149
	.long	212480622
	.long	1063284451
	.long	936783907
	.long	1065466160
	.long	137713831
	.long	1064811379
	.long	-1052782384
	.long	1064995525
	.long	366687128
	.long	1062822138
	.long	-772132041
	.long	1065142896
	.long	332052512
	.long	-1074545912
	.long	595935302
	.long	1069851976
	.long	892528564
	.long	1066458633
	.long	-1890335366
	.long	1070315572
	.long	-451349523
	.long	1068210073
	.long	1816118331
	.long	1064620521
	.long	-295768628
	.long	1066443667
	.long	475538779
	.long	1068694734
	.long	877135401
	.long	1065755265
	.long	-1540140913
	.long	1066787466
	.long	1376313680
	.long	1071216169
	.long	-1456578029
	.long	1067609818
	.long	-154206506
	.long	1067912680
	.long	-158054796
	.long	1065901830
	.long	1090440657
	.long	1065315769
	.long	198461849
	.long	1067568446
	.long	-835353959
	.long	1068770214
	.long	-731450110
	.long	1066177916
	.long	2037669924
	.long	1064745075
	.long	-935959273
	.long	1067918116
	.long	885656616
	.long	1070750874
	.long	1806772482
	.long	-1075364997
	.long	-610778709
	.long	1066917053
	.long	1849928314
	.long	1071389574
	.long	1050583360
	.long	1070104322
	.long	-2130303779
	.long	1067664277
	.long	-1816668087
	.long	1067446408
	.long	639640889
	.long	1067336417
	.long	-1766640308
	.long	1068421634
	.long	620674314
	.long	1067611966
	.long	1533818721
	.long	1069865364
	.long	1628376721
	.long	1068381436
	.long	191589901
	.long	1071008719
	.long	145410413
	.long	1070143799
	.long	-848273221
	.long	1067449629
	.long	-438430262
	.long	1064549922
	.long	1432938529
	.long	1070611019
	.long	-1109956988
	.long	1069910293
	.long	1991215558
	.long	1066985236
	.long	-1031891663
	.long	1068346841
	.long	-163277477
	.long	1066767937
	.long	1385934407
	.long	1066478430
	.long	-1726233256
	.long	-1074659769
	.long	466742686
	.long	1068442606
	.long	1039588244
	.long	1064808426
	.long	1622329407
	.long	1067618274
	.long	-2064333081
	.long	1068506661
	.long	1662461581
	.long	1068965216
	.long	434032215
	.long	1065506157
	.long	-900225145
	.long	1065468978
	.long	-1495610692
	.long	1066687608
	.long	-408743448
	.long	1066580502
	.long	2107214035
	.long	1066181406
	.long	-1524747750
	.long	1064345106
	.long	-785601058
	.long	1063347801
	.long	1288077872
	.long	1065377442
	.long	557177517
	.long	1067463085
	.long	-1326285901
	.long	1064987472
	.long	-299067163
	.long	1064120895
	.long	197637215
	.long	1065414889
	.long	-283948878
	.long	1068912384
	.long	-2068181372
	.long	1069117251
	.long	-832055424
	.long	1066636538
	.long	998356558
	.long	-1074452656
	.long	67345087
	.long	1066988659
	.long	1238599849
	.long	1064090294
	.long	53051436
	.long	1065661447
	.long	1617106727
	.long	1067435805
	.long	1446407546
	.long	1065721442
	.long	1103085041
	.long	1065481595
	.long	-500552669
	.long	1067815540
	.long	-2101441599
	.long	1065444148
	.long	404620279
	.long	1064368192
	.long	1149539407
	.long	1064290010
	.long	1452729738
	.long	1063182915
	.long	-1277082756
	.long	1066430581
	.long	-482410727
	.long	1064337858
	.long	2125905732
	.long	1063964666
	.long	72018012
	.long	1063288746
	.long	392250773
	.long	1067192133
	.long	416989785
	.long	1067835707
	.long	786150814
	.long	1068881716
	.long	2051688697
	.long	1064131096
	.long	181969174
	.long	1068013210
	.long	1592092837
	.long	-1075390880
	.long	-1333707604
	.long	1065004115
	.long	795771541
	.long	1066830953
	.long	1940912901
	.long	1065117395
	.long	1484065820
	.long	1068472033
	.long	-1937339488
	.long	1070639431
	.long	-1494511180
	.long	1067112340
	.long	1751796901
	.long	1068609539
	.long	-479661948
	.long	1067496840
	.long	478287558
	.long	1065562260
	.long	-401596622
	.long	1066719820
	.long	1379887093
	.long	1064666692
	.long	-1579998209
	.long	1067906003
	.long	1717712040
	.long	1067501471
	.long	-76690936
	.long	1065874718
	.long	417539541
	.long	1067523785
	.long	-1059379453
	.long	1064544285
	.long	1463175099
	.long	1066693581
	.long	-921665622
	.long	1067148176
	.long	-1358446616
	.long	1065409117
	.long	-2036570413
	.long	1065337512
	.long	1201216453
	.long	-1075617538
	.long	-839477128
	.long	1068750333
	.long	1766365430
	.long	1067683638
	.long	1623154041
	.long	1065053239
	.long	625896994
	.long	1065697283
	.long	-351019087
	.long	1066334548
	.long	-2013205790
	.long	1070561979
	.long	-1711664727
	.long	1068948858
	.long	1665760116
	.long	1070763700
	.long	783127157
	.long	1068762279
	.long	1781758593
	.long	1069173438
	.long	2131403290
	.long	1068709766
	.long	-1947235093
	.long	1068127563
	.long	-1420843901
	.long	1069092840
	.long	-37383395
	.long	1068213831
	.long	791923250
	.long	1066917255
	.long	632768942
	.long	1067041138
	.long	-363388593
	.long	1068634201
	.long	-184168198
	.long	1067610925
	.long	-1799625657
	.long	1067738298
	.long	898850756
	.long	1069425130
	.long	1725133744
	.long	-1074379108
	.long	-953551459
	.long	1070887268
	.long	-190765267
	.long	1067683973
	.long	-296318384
	.long	1068328453
	.long	-1633874279
	.long	1066492791
	.long	-410667593
	.long	1069638309
	.long	-470590977
	.long	1067593007
	.long	-295768628
	.long	1069589395
	.long	736397913
	.long	1066964097
	.long	-75866302
	.long	1067503987
	.long	1186922802
	.long	1068245138
	.long	1073398227
	.long	1068169607
	.long	-1869994401
	.long	1066245562
	.long	1933216320
	.long	1067387151
	.long	1868894889
	.long	1069016873
	.long	-470041221
	.long	1066756797
	.long	-1452454860
	.long	1068940419
	.long	1979670686
	.long	1069079150
	.long	-1074497738
	.long	1065782108
	.long	-961248041
	.long	1068110752
	.long	1622054529
	.long	1070723355
	.long	-135514808
	.long	-1074627900
	.long	1297698599
	.long	1065161687
	.long	-1926069494
	.long	1066604326
	.long	-691043058
	.long	1068941761
	.long	152007483
	.long	1062992863
	.long	288072046
	.long	1066532520
	.long	-1628376721
	.long	1062324995
	.long	500827546
	.long	1063259218
	.long	529689727
	.long	1065757681
	.long	-1888136343
	.long	1063956076
	.long	-704512075
	.long	1063476650
	.long	-1717437163
	.long	1064621863
	.long	633868453
	.long	1064320142
	.long	-490931942
	.long	1063929769
	.long	333976657
	.long	1065652857
	.long	57174605
	.long	1063322032
	.long	1977471663
	.long	1065346102
	.long	919466599
	.long	1066903095
	.long	1158610378
	.long	1063337601
	.long	-888955151
	.long	1065366033
	.long	-801543977
	.long	1062956355
	.long	-2100342087
	.long	-1075978672
	.long	261134012
	.long	1067660922
	.long	-106102872
	.long	1064736753
	.long	1683352302
	.long	1065500788
	.long	1752346657
	.long	1066200465
	.long	-263882791
	.long	1067750847
	.long	1564330168
	.long	1065923037
	.long	-1035465075
	.long	1066704318
	.long	1920022180
	.long	1065436095
	.long	1970324837
	.long	1065206784
	.long	-779828622
	.long	1064266924
	.long	-1675105965
	.long	1069701853
	.long	-1034915320
	.long	1066392396
	.long	51951924
	.long	1066285291
	.long	-1976097273
	.long	1064580524
	.long	-1323262244
	.long	1066417629
	.long	692967203
	.long	1070503343
	.long	1668783773
	.long	1065378113
	.long	-1062403110
	.long	1067308432
	.long	-471965366
	.long	1065751372
	.long	1809796139
	.long	1068994056
	.long	295493750
	.long	-1075364443
	.long	-143211390
	.long	1065868544
	.long	1037114343
	.long	1069751019
	.long	10720238
	.long	1066610769
	.long	1134970878
	.long	1066264487
	.long	-228148663
	.long	1065825997
	.long	476913169
	.long	1068701361
	.long	1736403738
	.long	1066857595
	.long	-456297326
	.long	1067871643
	.long	1659987680
	.long	1066174561
	.long	-2016504325
	.long	1065486695
	.long	-855969802
	.long	1071816537
	.long	1603087953
	.long	1069622648
	.long	185817465
	.long	1066878332
	.long	-1761417628
	.long	1069783751
	.long	488732919
	.long	1068024350
	.long	-1826838570
	.long	1066925509
	.long	849922488
	.long	1066515340
	.long	-119022134
	.long	1069183336
	.long	-1818042477
	.long	1067177637
	.long	1619855506
	.long	1066924771
	.long	-1647068418
	.long	-1074700761
	.globl	statWAG01
	.align 32
	.type	statWAG01, @object
	.size	statWAG01, 160
statWAG01:
	.long	-43265783
	.long	1068903742
	.long	2078351854
	.long	1067877247
	.long	-1656909047
	.long	1067713414
	.long	-305444330
	.long	1068315907
	.long	-2042947580
	.long	1066648940
	.long	-2001715894
	.long	1067634182
	.long	1769718940
	.long	1068349925
	.long	1851082801
	.long	1068847101
	.long	2147181282
	.long	1066992779
	.long	435131727
	.long	1068028041
	.long	60748017
	.long	1068896715
	.long	1893029170
	.long	1068483126
	.long	180100005
	.long	1066662020
	.long	-1824584571
	.long	1067691352
	.long	-742775080
	.long	1067937346
	.long	-755199562
	.long	1068616684
	.long	2118648956
	.long	1068449038
	.long	-802148708
	.long	1066235482
	.long	-1094124021
	.long	1067585397
	.long	-881973252
	.long	1068639798
	.section	.rodata
.LC6:
	.string	"SSE3"
.LC7:
	.string	"2.1.7"
	.align 8
.LC8:
	.string	"Usage for FastTree version %s %s%s:\n%s"
.LC9:
	.string	"-makematrix"
.LC10:
	.string	"-logdist"
	.align 8
.LC11:
	.string	"Warning: logdist is now on by default and obsolete\n"
.LC12:
	.string	"-rawdist"
.LC13:
	.string	"-verbose"
.LC14:
	.string	"-quiet"
.LC15:
	.string	"-nopr"
.LC16:
	.string	"-slow"
.LC17:
	.string	"-fastest"
.LC19:
	.string	"-2nd"
.LC20:
	.string	"-no2nd"
.LC21:
	.string	"-slownni"
.LC22:
	.string	"-matrix"
.LC23:
	.string	"-nomatrix"
.LC24:
	.string	"-n"
	.align 8
.LC25:
	.string	"-n argument for #input alignments must be > 0 not %s\n"
.LC26:
	.string	"-quote"
.LC27:
	.string	"-nt"
.LC28:
	.string	"-intree"
.LC29:
	.string	"-intree1"
.LC30:
	.string	"-nj"
.LC31:
	.string	"-bionj"
.LC32:
	.string	"-boot"
.LC33:
	.string	"-noboot"
.LC34:
	.string	"-nosupport"
.LC35:
	.string	"-seed"
.LC36:
	.string	"-top"
.LC38:
	.string	"-notop"
.LC40:
	.string	"-topm"
.LC41:
	.string	"-close"
	.align 8
.LC42:
	.string	"Cannot use -close unless -top is set above 0\n"
	.align 8
.LC43:
	.string	"-close argument must be between 0 and 1\n"
.LC44:
	.string	"-refresh"
	.align 8
.LC45:
	.string	"Cannot use -refresh unless -top is set above 0\n"
	.align 8
.LC46:
	.string	"-refresh argument must be between 0 and 1\n"
.LC47:
	.string	"-nni"
.LC48:
	.string	"-spr"
.LC49:
	.string	"-sprlength"
.LC50:
	.string	"-mlnni"
.LC51:
	.string	"-noml"
.LC52:
	.string	"-mllen"
.LC53:
	.string	"-nome"
.LC54:
	.string	"-help"
.LC55:
	.string	"FastTree %s %s%s:\n%s"
.LC56:
	.string	"-expert"
	.align 8
.LC57:
	.string	"Detailed usage for FastTree %s %s%s:\n%s"
.LC58:
	.string	"-pseudo"
	.align 8
.LC59:
	.string	"Illegal argument to -pseudo: %s\n"
.LC60:
	.string	"-constraints"
.LC61:
	.string	"-constraintWeight"
	.align 8
.LC62:
	.string	"Illegal argument to -constraintWeight (must be greater than zero): %s\n"
.LC63:
	.string	"-mlacc"
.LC64:
	.string	"Illlegal -mlacc argument: %s\n"
.LC65:
	.string	"-exactml"
.LC66:
	.string	"-mlexact"
	.align 8
.LC67:
	.string	"-exactml is not required -- exact posteriors is the default now\n"
.LC68:
	.string	"-approxml"
.LC69:
	.string	"-mlapprox"
.LC70:
	.string	"-cat"
	.align 8
.LC71:
	.string	"Illlegal argument to -ncat (must be greater than zero): %s\n"
.LC72:
	.string	"-nocat"
.LC73:
	.string	"-wag"
.LC74:
	.string	"-gtr"
.LC75:
	.string	"-gtrrates"
	.align 8
.LC77:
	.string	"Illegal or too small value of GTR rate: %s\n"
.LC78:
	.string	"-gtrfreq"
	.align 8
.LC79:
	.string	"Illegal or too small value of GTR frequency: %s\n"
	.align 8
.LC81:
	.string	"-gtrfreq values do not sum to 1\n"
.LC82:
	.string	"-log"
.LC83:
	.string	"-gamma"
.LC84:
	.string	"-out"
.LC85:
	.string	"w"
.LC86:
	.string	"Cannot write to %s\n"
	.align 8
.LC87:
	.string	"Unknown or incorrect use of option %s\n%s"
	.align 8
.LC88:
	.string	"Cannot be both slow and fastest\n"
.LC89:
	.string	"Cannot write to: %s\n"
.LC90:
	.string	"Command:"
.LC91:
	.string	" %s"
.LC92:
	.string	"%.2f"
	.align 8
.LC93:
	.string	"%.2f*sqrtN close=%s refresh=%.2f"
.LC94:
	.string	"SH-like %d"
.LC95:
	.string	"Local boot %d"
.LC96:
	.string	"+NNI (%d rounds)"
.LC97:
	.string	"+SPR (%d rounds range %d)"
.LC98:
	.string	"+ML-NNI (%d rounds)"
.LC99:
	.string	"+ML-NNI"
.LC100:
	.string	"+ML branch lengths"
.LC101:
	.string	" opt-each=%d"
.LC102:
	.string	"standard input"
	.align 8
.LC103:
	.string	"FastTree Version %s %s%s\nAlignment: %s"
.LC104:
	.string	" (%d alignments)"
.LC105:
	.string	"weighted"
.LC106:
	.string	"balanced"
.LC107:
	.string	"BLOSUM45"
.LC108:
	.string	"Jukes-Cantor"
.LC109:
	.string	"%different"
.LC110:
	.string	"Amino acid"
.LC111:
	.string	"Nucleotide"
	.align 8
.LC112:
	.string	"\n%s distances: %s Joins: %s Support: %s\n"
.LC113:
	.string	"+2nd"
.LC114:
	.string	""
.LC115:
	.string	"Fastest"
.LC116:
	.string	"Normal"
.LC117:
	.string	"Exhaustive (slow)"
	.align 8
.LC118:
	.string	"Search: %s%s %s %s %s\nTopHits: %s\n"
.LC119:
	.string	"Start at tree from %s %s %s\n"
.LC120:
	.string	"Generalized Time-Reversible"
.LC121:
	.string	"Whelan-And-Goldman"
.LC122:
	.string	"Jones-Taylor-Thorton"
.LC123:
	.string	"ML Model: %s,"
	.align 8
.LC124:
	.string	" No rate variation across sites"
	.align 8
.LC125:
	.string	" CAT approximation with %d rate categories"
	.align 8
.LC126:
	.string	"GTR rates(ac ag at cg ct gt) %.4f %.4f %.4f %.4f %.4f %.4f\n"
	.align 8
.LC127:
	.string	"GTR frequencies(A C G T) %.4f %.4f %.4f %.4f\n"
.LC128:
	.string	"Constraints: %s Weight: %.3f\n"
	.align 8
.LC129:
	.string	"Pseudocount weight for comparing sequences with little overlap: %.3lf\n"
	.align 8
.LC130:
	.string	"Cannot use both -matrix and -nomatrix arguments!"
.LC131:
	.string	"the_stack_data/857736.c"
.LC132:
	.string	"nCodes==20"
.LC133:
	.string	"r"
.LC134:
	.string	"Cannot read %s\n"
.LC135:
	.string	"No alignment sequences\n"
	.align 8
.LC136:
	.string	"Read %d sequences, %d positions\n"
.LC137:
	.string	"Read alignment"
	.align 8
.LC138:
	.string	"Non-unique name '%s' in the alignment\n"
.LC139:
	.string	"Hashed the names"
.LC140:
	.string	"   %d\n"
.LC141:
	.string	"%s"
.LC143:
	.string	" %f"
.LC144:
	.string	"Identified unique sequences"
	.align 8
.LC145:
	.string	"Warning: constraints file with less than 4 sequences ignored:\nalignment #%d in %s\n"
.LC146:
	.string	"Read the constraints"
	.align 8
.LC147:
	.string	"read %s seqs %d (%d unique) positions %d nameLast %s seqLast %s\n"
.LC148:
	.string	"Read tree from %s\n"
.LC149:
	.string	"NJ"
	.align 8
.LC152:
	.string	"Initial topology in %.2f seconds\n"
	.align 8
.LC153:
	.string	"Refining topology: %d rounds ME-NNIs, %d rounds ME-SPRs, %d rounds ML-NNIs\n"
.LC154:
	.string	"ME_NNI%d"
	.align 8
.LC155:
	.string	"Min_evolution NNIs converged at round %d -- skipping some rounds\n"
.LC156:
	.string	"ME_SPR%d"
.LC157:
	.string	"ME_Lengths"
	.align 8
.LC159:
	.string	"Total branch-length %.3f after %.2f sec\n"
.LC161:
	.string	"ML_Lengths"
.LC163:
	.string	" (converged)"
.LC164:
	.string	"~"
	.align 8
.LC165:
	.string	"%d rounds ML lengths: LogLk %s= %.3lf Max-change %.4lf%s Time %.2f\n"
	.align 8
.LC166:
	.string	"TreeLogLk\tLength%d\t%.4lf\tMaxChange\t%.4lf\n"
.LC167:
	.string	"ML_Lengths%d"
.LC168:
	.string	"ML_NNI%d"
.LC169:
	.string	" (final)"
	.align 8
.LC170:
	.string	"ML-NNI round %d: LogLk %s= %.3f NNIs %d max delta %.2f Time %.2f%s\n"
	.align 8
.LC171:
	.string	"TreeLogLk\tML_NNI%d\t%.4lf\tMaxChange\t%.4lf\n"
	.align 8
.LC172:
	.string	"Turning off heuristics for final round of ML NNIs%s\n"
	.align 8
.LC173:
	.string	"Optimize all lengths: LogLk %s= %.3f Time %.2f\n"
.LC174:
	.string	"TreeLogLk\tML_Lengths%d\t%.4f\n"
	.align 8
.LC175:
	.string	"Total time: %.2f seconds Unique: %d/%d Bad splits: %d/%d"
.LC176:
	.string	"LogLk"
.LC177:
	.string	"Len"
.LC178:
	.string	"unconstrained "
.LC179:
	.string	" Worst %sdelta-%s %.3f"
	.align 8
.LC180:
	.string	"Violating constraints: %d both bad: %d"
	.align 8
.LC181:
	.string	" Worst delta-%s due to constraints: %.3f"
	.align 8
.LC182:
	.string	"Dist/N**2: by-profile %.3f (out %.3f) by-leaf %.3f avg-prof %.3f\n"
	.align 8
.LC183:
	.string	"Top hits: close neighbors %ld/%d 2nd-level %ld refreshes %ld"
	.align 8
.LC184:
	.string	" Hill-climb: %ld Update-best: %ld\n"
	.align 8
.LC185:
	.string	"NNI: %ld SPR: %ld ML-NNI: %ld\n"
	.align 8
.LC186:
	.string	"Max-lk operations: lk %ld posterior %ld"
	.align 8
.LC188:
	.string	" approximate-posteriors %.2f%%"
.LC189:
	.string	" star-only %ld"
.LC190:
	.string	"TreeCompleted\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB505:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 1296
	.cfi_offset 14, -24
	.cfi_offset 13, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	mov	DWORD PTR -1316[rbp], edi
	mov	QWORD PTR -1328[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -1284[rbp], 1
	mov	QWORD PTR -1160[rbp], 0
	mov	QWORD PTR -1152[rbp], 0
	mov	BYTE PTR -1297[rbp], 0
	mov	QWORD PTR -1144[rbp], 0
	mov	QWORD PTR -1136[rbp], 0
	mov	BYTE PTR -1296[rbp], 0
	mov	DWORD PTR -1276[rbp], -1
	mov	DWORD PTR -1272[rbp], 2
	mov	DWORD PTR -1268[rbp], 10
	mov	DWORD PTR -1264[rbp], -1
	mov	BYTE PTR -1295[rbp], 0
	mov	DWORD PTR -1260[rbp], 1000
	mov	DWORD PTR -1256[rbp], 20
	mov	QWORD PTR -1128[rbp], 0
	mov	BYTE PTR -1294[rbp], 0
	mov	BYTE PTR -1293[rbp], 0
	mov	BYTE PTR -1292[rbp], 0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -752[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -744[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -736[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -728[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -720[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -712[rbp], xmm0
	mov	BYTE PTR -1291[rbp], 0
	movsd	xmm0, QWORD PTR .LC5[rip]
	movsd	QWORD PTR -784[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC5[rip]
	movsd	QWORD PTR -776[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC5[rip]
	movsd	QWORD PTR -768[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC5[rip]
	movsd	QWORD PTR -760[rbp], xmm0
	mov	BYTE PTR -1290[rbp], 0
	mov	rax, QWORD PTR stdout[rip]
	mov	QWORD PTR -1120[rbp], rax
	mov	edi, 0
	call	isatty@PLT
	test	eax, eax
	je	.L2
	cmp	DWORD PTR -1316[rbp], 1
	jne	.L2
	mov	rbx, QWORD PTR usage[rip]
	call	OpenMPString
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	mov	r9, rbx
	mov	r8, rdx
	lea	rcx, .LC6[rip]
	lea	rdx, .LC7[rip]
	lea	rsi, .LC8[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L2:
	mov	DWORD PTR -1280[rbp], 1
	jmp	.L3
.L96:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L4
	mov	BYTE PTR -1297[rbp], 1
	jmp	.L5
.L4:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC10[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L6
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 51
	mov	esi, 1
	lea	rdi, .LC11[rip]
	call	fwrite@PLT
	jmp	.L5
.L6:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L7
	mov	BYTE PTR logdist[rip], 0
	jmp	.L5
.L7:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC13[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L8
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L8
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR verbose[rip], eax
	jmp	.L5
.L8:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L9
	mov	DWORD PTR verbose[rip], 0
	mov	DWORD PTR showProgress[rip], 0
	jmp	.L5
.L9:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L10
	mov	DWORD PTR showProgress[rip], 0
	jmp	.L5
.L10:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L11
	mov	DWORD PTR slow[rip], 1
	jmp	.L5
.L11:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC17[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L12
	mov	DWORD PTR fastest[rip], 1
	movsd	xmm0, QWORD PTR .LC18[rip]
	movsd	QWORD PTR tophitsRefresh[rip], xmm0
	mov	BYTE PTR useTopHits2nd[rip], 1
	jmp	.L5
.L12:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC19[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L13
	mov	BYTE PTR useTopHits2nd[rip], 1
	jmp	.L5
.L13:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L14
	mov	BYTE PTR useTopHits2nd[rip], 0
	jmp	.L5
.L14:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC21[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L15
	mov	BYTE PTR fastNNI[rip], 0
	jmp	.L5
.L15:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC22[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L16
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L16
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1160[rbp], rax
	jmp	.L5
.L16:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC23[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L17
	mov	BYTE PTR useMatrix[rip], 0
	jmp	.L5
.L17:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC24[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L18
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L18
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -1284[rbp], eax
	cmp	DWORD PTR -1284[rbp], 0
	jg	.L5
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L18:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC26[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L20
	mov	BYTE PTR -1290[rbp], 1
	jmp	.L5
.L20:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC27[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L21
	mov	DWORD PTR nCodes[rip], 4
	jmp	.L5
.L21:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC28[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L22
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L22
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1136[rbp], rax
	jmp	.L5
.L22:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC29[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L23
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L23
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1136[rbp], rax
	mov	BYTE PTR -1296[rbp], 1
	jmp	.L5
.L23:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC30[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L24
	mov	DWORD PTR bionj[rip], 0
	jmp	.L5
.L24:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC31[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L25
	mov	DWORD PTR bionj[rip], 1
	jmp	.L5
.L25:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC32[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L26
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L26
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -1260[rbp], eax
	jmp	.L5
.L26:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC33[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L27
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC34[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L28
.L27:
	mov	DWORD PTR -1260[rbp], 0
	jmp	.L5
.L28:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC35[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L29
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L29
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atol@PLT
	mov	QWORD PTR -1016[rbp], rax
	mov	rax, QWORD PTR -1016[rbp]
	mov	rdi, rax
	call	ran_start
	jmp	.L5
.L29:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC36[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L30
	movsd	xmm1, QWORD PTR tophitsMult[rip]
	movsd	xmm0, QWORD PTR .LC37[rip]
	comisd	xmm0, xmm1
	jbe	.L5
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR tophitsMult[rip], xmm0
	jmp	.L5
.L30:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L32
	pxor	xmm0, xmm0
	movsd	QWORD PTR tophitsMult[rip], xmm0
	jmp	.L5
.L32:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L33
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L33
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	QWORD PTR tophitsMult[rip], rax
	jmp	.L5
.L33:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC41[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L34
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L34
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	QWORD PTR tophitsClose[rip], rax
	movsd	xmm1, QWORD PTR tophitsMult[rip]
	pxor	xmm0, xmm0
	comisd	xmm0, xmm1
	jb	.L345
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 45
	mov	esi, 1
	lea	rdi, .LC42[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L345:
	movsd	xmm1, QWORD PTR tophitsClose[rip]
	pxor	xmm0, xmm0
	comisd	xmm0, xmm1
	jnb	.L37
	movsd	xmm0, QWORD PTR tophitsClose[rip]
	movsd	xmm1, QWORD PTR .LC4[rip]
	comisd	xmm0, xmm1
	jnb	.L37
	jmp	.L5
.L37:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 40
	mov	esi, 1
	lea	rdi, .LC43[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L34:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC44[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L40
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L40
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	QWORD PTR tophitsRefresh[rip], rax
	movsd	xmm1, QWORD PTR tophitsMult[rip]
	pxor	xmm0, xmm0
	comisd	xmm0, xmm1
	jb	.L346
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 47
	mov	esi, 1
	lea	rdi, .LC45[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L346:
	movsd	xmm1, QWORD PTR tophitsRefresh[rip]
	pxor	xmm0, xmm0
	comisd	xmm0, xmm1
	jnb	.L43
	movsd	xmm0, QWORD PTR tophitsRefresh[rip]
	movsd	xmm1, QWORD PTR .LC4[rip]
	comisd	xmm0, xmm1
	jnb	.L43
	jmp	.L5
.L43:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 42
	mov	esi, 1
	lea	rdi, .LC46[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L40:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC47[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L46
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L46
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -1276[rbp], eax
	cmp	DWORD PTR -1276[rbp], 0
	jne	.L5
	mov	DWORD PTR -1272[rbp], 0
	jmp	.L5
.L46:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC48[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L48
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L48
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -1272[rbp], eax
	jmp	.L5
.L48:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC49[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L49
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L49
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -1268[rbp], eax
	jmp	.L5
.L49:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC50[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L50
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L50
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -1264[rbp], eax
	jmp	.L5
.L50:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC51[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L51
	mov	DWORD PTR -1264[rbp], 0
	jmp	.L5
.L51:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC52[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L52
	mov	DWORD PTR -1264[rbp], 0
	mov	BYTE PTR -1295[rbp], 1
	jmp	.L5
.L52:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L53
	mov	DWORD PTR -1272[rbp], 0
	mov	DWORD PTR -1276[rbp], 0
	jmp	.L5
.L53:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L54
	mov	rbx, QWORD PTR usage[rip]
	call	OpenMPString
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	mov	r9, rbx
	mov	r8, rdx
	lea	rcx, .LC6[rip]
	lea	rdx, .LC7[rip]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L54:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC56[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L55
	mov	rbx, QWORD PTR expertUsage[rip]
	call	OpenMPString
	mov	rdx, rax
	mov	rax, QWORD PTR stderr[rip]
	mov	r9, rbx
	mov	r8, rdx
	lea	rcx, .LC6[rip]
	lea	rdx, .LC7[rip]
	lea	rsi, .LC57[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L55:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC58[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L56
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L57
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	add	rax, 1
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	je	.L57
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	QWORD PTR pseudoWeight[rip], rax
	movsd	xmm1, QWORD PTR pseudoWeight[rip]
	pxor	xmm0, xmm0
	comisd	xmm0, xmm1
	jbe	.L5
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC59[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L57:
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR pseudoWeight[rip], xmm0
	jmp	.L5
.L56:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC60[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L61
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L61
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1144[rbp], rax
	jmp	.L5
.L61:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC61[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L62
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L62
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	QWORD PTR constraintWeight[rip], rax
	movsd	xmm1, QWORD PTR constraintWeight[rip]
	pxor	xmm0, xmm0
	comisd	xmm0, xmm1
	jb	.L5
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC62[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L62:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC63[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L65
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L65
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR mlAccuracy[rip], eax
	mov	eax, DWORD PTR mlAccuracy[rip]
	test	eax, eax
	jg	.L5
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC64[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L65:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC65[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L67
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC66[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L68
.L67:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 64
	mov	esi, 1
	lea	rdi, .LC67[rip]
	call	fwrite@PLT
	jmp	.L5
.L68:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC68[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L69
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC69[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L70
.L69:
	mov	BYTE PTR exactML[rip], 0
	jmp	.L5
.L70:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC70[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L71
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L71
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -1256[rbp], eax
	cmp	DWORD PTR -1256[rbp], 0
	jg	.L5
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC71[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L71:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC72[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L73
	mov	DWORD PTR -1256[rbp], 1
	jmp	.L5
.L73:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC73[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L74
	mov	BYTE PTR -1293[rbp], 1
	jmp	.L5
.L74:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC74[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L75
	mov	BYTE PTR -1294[rbp], 1
	jmp	.L5
.L75:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC75[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L76
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 6
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L76
	mov	BYTE PTR -1294[rbp], 1
	mov	BYTE PTR -1292[rbp], 1
	mov	DWORD PTR -1252[rbp], 0
	jmp	.L77
.L80:
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	edx, DWORD PTR -1252[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -752[rbp+rdx*8], rax
	mov	eax, DWORD PTR -1252[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -752[rbp+rax*8]
	movsd	xmm0, QWORD PTR .LC76[rip]
	comisd	xmm0, xmm1
	jbe	.L347
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC77[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L347:
	add	DWORD PTR -1252[rbp], 1
.L77:
	cmp	DWORD PTR -1252[rbp], 5
	jle	.L80
	jmp	.L5
.L76:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC78[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L81
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 4
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L81
	mov	BYTE PTR -1294[rbp], 1
	mov	BYTE PTR -1291[rbp], 1
	pxor	xmm0, xmm0
	movsd	QWORD PTR -1112[rbp], xmm0
	mov	DWORD PTR -1248[rbp], 0
	jmp	.L82
.L85:
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	edx, DWORD PTR -1248[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -784[rbp+rdx*8], rax
	mov	eax, DWORD PTR -1248[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -784[rbp+rax*8]
	movsd	xmm1, QWORD PTR -1112[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -1112[rbp], xmm0
	mov	eax, DWORD PTR -1248[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -784[rbp+rax*8]
	movsd	xmm0, QWORD PTR .LC76[rip]
	comisd	xmm0, xmm1
	jbe	.L348
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC79[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L348:
	add	DWORD PTR -1248[rbp], 1
.L82:
	cmp	DWORD PTR -1248[rbp], 3
	jle	.L85
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, QWORD PTR -1112[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	comisd	xmm0, QWORD PTR .LC37[rip]
	jbe	.L349
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 32
	mov	esi, 1
	lea	rdi, .LC81[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L349:
	mov	DWORD PTR -1248[rbp], 0
	jmp	.L88
.L89:
	mov	eax, DWORD PTR -1248[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -784[rbp+rax*8]
	divsd	xmm0, QWORD PTR -1112[rbp]
	mov	eax, DWORD PTR -1248[rbp]
	cdqe
	movsd	QWORD PTR -784[rbp+rax*8], xmm0
	add	DWORD PTR -1248[rbp], 1
.L88:
	cmp	DWORD PTR -1248[rbp], 3
	jle	.L89
	jmp	.L5
.L81:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC82[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L90
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L90
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1128[rbp], rax
	jmp	.L5
.L90:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC83[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L91
	mov	BYTE PTR gammaLogLk[rip], 1
	jmp	.L5
.L91:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC84[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L92
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L92
	add	DWORD PTR -1280[rbp], 1
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC85[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -1120[rbp], rax
	cmp	QWORD PTR -1120[rbp], 0
	jne	.L5
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC86[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L92:
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	jne	.L351
	mov	rcx, QWORD PTR usage[rip]
	mov	eax, DWORD PTR -1280[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC87[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L5:
	add	DWORD PTR -1280[rbp], 1
.L3:
	mov	eax, DWORD PTR -1280[rbp]
	cmp	eax, DWORD PTR -1316[rbp]
	jl	.L96
	jmp	.L95
.L351:
	nop
.L95:
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jge	.L97
	mov	rax, QWORD PTR usage[rip]
	mov	rdx, QWORD PTR stderr[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	fputs@PLT
	mov	edi, 1
	call	exit@PLT
.L97:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 20
	jne	.L98
	mov	rax, QWORD PTR codesStringAA[rip]
	jmp	.L99
.L98:
	mov	rax, QWORD PTR codesStringNT[rip]
.L99:
	mov	QWORD PTR codesString[rip], rax
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L100
	cmp	QWORD PTR -1160[rbp], 0
	jne	.L100
	mov	BYTE PTR useMatrix[rip], 0
.L100:
	mov	eax, DWORD PTR -1316[rbp]
	sub	eax, 1
	cmp	DWORD PTR -1280[rbp], eax
	jne	.L101
	mov	eax, DWORD PTR -1316[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	jmp	.L102
.L101:
	mov	eax, 0
.L102:
	mov	QWORD PTR -1008[rbp], rax
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	je	.L103
	mov	eax, DWORD PTR fastest[rip]
	test	eax, eax
	je	.L103
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 32
	mov	esi, 1
	lea	rdi, .LC88[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L103:
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	je	.L104
	movsd	xmm0, QWORD PTR tophitsMult[rip]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L104
	pxor	xmm0, xmm0
	movsd	QWORD PTR tophitsMult[rip], xmm0
.L104:
	mov	QWORD PTR -1104[rbp], 0
	cmp	QWORD PTR -1128[rbp], 0
	je	.L106
	mov	rax, QWORD PTR -1128[rbp]
	lea	rsi, .LC85[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -1104[rbp], rax
	cmp	QWORD PTR -1104[rbp], 0
	jne	.L107
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -1128[rbp]
	lea	rsi, .LC89[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L107:
	mov	rax, QWORD PTR -1104[rbp]
	mov	rcx, rax
	mov	edx, 8
	mov	esi, 1
	lea	rdi, .LC90[rip]
	call	fwrite@PLT
	mov	DWORD PTR -1244[rbp], 0
	jmp	.L108
.L109:
	mov	eax, DWORD PTR -1244[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -1104[rbp]
	lea	rsi, .LC91[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	DWORD PTR -1244[rbp], 1
.L108:
	mov	eax, DWORD PTR -1244[rbp]
	cmp	eax, DWORD PTR -1316[rbp]
	jl	.L109
	mov	rax, QWORD PTR -1104[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	rax, QWORD PTR -1104[rbp]
	mov	rdi, rax
	call	fflush@PLT
.L106:
	mov	QWORD PTR -800[rbp], 0
	mov	QWORD PTR -792[rbp], 0
	mov	DWORD PTR -1236[rbp], 0
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L110
	mov	eax, DWORD PTR -1236[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1236[rbp], edx
	mov	rdx, QWORD PTR stderr[rip]
	cdqe
	mov	QWORD PTR -800[rbp+rax*8], rdx
.L110:
	cmp	QWORD PTR -1104[rbp], 0
	je	.L111
	mov	eax, DWORD PTR -1236[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1236[rbp], edx
	cdqe
	mov	rdx, QWORD PTR -1104[rbp]
	mov	QWORD PTR -800[rbp+rax*8], rdx
.L111:
	movzx	eax, BYTE PTR -1297[rbp]
	xor	eax, 1
	test	al, al
	je	.L112
	mov	QWORD PTR -704[rbp], 28526
	mov	QWORD PTR -696[rbp], 0
	mov	QWORD PTR -688[rbp], 0
	mov	QWORD PTR -680[rbp], 0
	mov	QWORD PTR -672[rbp], 0
	mov	QWORD PTR -664[rbp], 0
	mov	QWORD PTR -656[rbp], 0
	mov	QWORD PTR -648[rbp], 0
	mov	QWORD PTR -640[rbp], 0
	mov	QWORD PTR -632[rbp], 0
	mov	QWORD PTR -624[rbp], 0
	mov	QWORD PTR -616[rbp], 0
	mov	DWORD PTR -608[rbp], 0
	movabs	rax, 32770348699510116
	mov	edx, 0
	mov	QWORD PTR -592[rbp], rax
	mov	QWORD PTR -584[rbp], rdx
	mov	QWORD PTR -576[rbp], 0
	mov	QWORD PTR -568[rbp], 0
	mov	QWORD PTR -560[rbp], 0
	mov	QWORD PTR -552[rbp], 0
	mov	QWORD PTR -544[rbp], 0
	mov	QWORD PTR -536[rbp], 0
	mov	QWORD PTR -528[rbp], 0
	mov	QWORD PTR -520[rbp], 0
	mov	QWORD PTR -512[rbp], 0
	mov	QWORD PTR -504[rbp], 0
	mov	DWORD PTR -496[rbp], 0
	movsd	xmm0, QWORD PTR tophitsClose[rip]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L113
	mov	rdx, QWORD PTR tophitsClose[rip]
	lea	rax, -592[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC92[rip]
	mov	rdi, rax
	mov	eax, 1
	call	sprintf@PLT
.L113:
	movsd	xmm0, QWORD PTR tophitsMult[rip]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L115
	movsd	xmm0, QWORD PTR tophitsRefresh[rip]
	mov	rcx, QWORD PTR tophitsMult[rip]
	lea	rdx, -592[rbp]
	lea	rax, -704[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC93[rip]
	mov	rdi, rax
	mov	eax, 2
	call	sprintf@PLT
.L115:
	mov	QWORD PTR -480[rbp], 1701736302
	mov	QWORD PTR -472[rbp], 0
	mov	QWORD PTR -464[rbp], 0
	mov	QWORD PTR -456[rbp], 0
	mov	QWORD PTR -448[rbp], 0
	mov	QWORD PTR -440[rbp], 0
	mov	QWORD PTR -432[rbp], 0
	mov	QWORD PTR -424[rbp], 0
	mov	QWORD PTR -416[rbp], 0
	mov	QWORD PTR -408[rbp], 0
	mov	QWORD PTR -400[rbp], 0
	mov	QWORD PTR -392[rbp], 0
	mov	DWORD PTR -384[rbp], 0
	cmp	DWORD PTR -1260[rbp], 0
	jle	.L117
	cmp	DWORD PTR -1264[rbp], 0
	jne	.L118
	cmp	BYTE PTR -1295[rbp], 0
	je	.L119
.L118:
	mov	edx, DWORD PTR -1260[rbp]
	lea	rax, -480[rbp]
	lea	rsi, .LC94[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	jmp	.L117
.L119:
	mov	edx, DWORD PTR -1260[rbp]
	lea	rax, -480[rbp]
	lea	rsi, .LC95[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
.L117:
	movabs	rax, 2974995126313512488
	mov	edx, 0
	mov	QWORD PTR -368[rbp], rax
	mov	QWORD PTR -360[rbp], rdx
	mov	QWORD PTR -352[rbp], 0
	mov	QWORD PTR -344[rbp], 0
	mov	QWORD PTR -336[rbp], 0
	mov	QWORD PTR -328[rbp], 0
	mov	QWORD PTR -320[rbp], 0
	mov	QWORD PTR -312[rbp], 0
	mov	QWORD PTR -304[rbp], 0
	mov	QWORD PTR -296[rbp], 0
	mov	QWORD PTR -288[rbp], 0
	mov	QWORD PTR -280[rbp], 0
	mov	DWORD PTR -272[rbp], 0
	cmp	DWORD PTR -1276[rbp], 0
	jle	.L120
	mov	edx, DWORD PTR -1276[rbp]
	lea	rax, -368[rbp]
	lea	rsi, .LC96[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
.L120:
	cmp	DWORD PTR -1276[rbp], -1
	jne	.L121
	lea	rax, -368[rbp]
	mov	DWORD PTR [rax], 1229868587
	mov	BYTE PTR 4[rax], 0
.L121:
	movabs	rax, 2977530621602000424
	mov	edx, 0
	mov	QWORD PTR -256[rbp], rax
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -240[rbp], 0
	mov	QWORD PTR -232[rbp], 0
	mov	QWORD PTR -224[rbp], 0
	mov	QWORD PTR -216[rbp], 0
	mov	QWORD PTR -208[rbp], 0
	mov	QWORD PTR -200[rbp], 0
	mov	QWORD PTR -192[rbp], 0
	mov	QWORD PTR -184[rbp], 0
	mov	QWORD PTR -176[rbp], 0
	mov	QWORD PTR -168[rbp], 0
	mov	DWORD PTR -160[rbp], 0
	cmp	DWORD PTR -1272[rbp], 0
	jle	.L122
	mov	ecx, DWORD PTR -1268[rbp]
	mov	edx, DWORD PTR -1272[rbp]
	lea	rax, -256[rbp]
	lea	rsi, .LC97[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
.L122:
	movabs	rax, 5633242603050724904
	mov	edx, 2705742
	mov	QWORD PTR -144[rbp], rax
	mov	QWORD PTR -136[rbp], rdx
	mov	QWORD PTR -128[rbp], 0
	mov	QWORD PTR -120[rbp], 0
	mov	QWORD PTR -112[rbp], 0
	mov	QWORD PTR -104[rbp], 0
	mov	QWORD PTR -96[rbp], 0
	mov	QWORD PTR -88[rbp], 0
	mov	QWORD PTR -80[rbp], 0
	mov	QWORD PTR -72[rbp], 0
	mov	QWORD PTR -64[rbp], 0
	mov	QWORD PTR -56[rbp], 0
	mov	DWORD PTR -48[rbp], 0
	cmp	DWORD PTR -1264[rbp], 0
	jle	.L123
	mov	edx, DWORD PTR -1264[rbp]
	lea	rax, -144[rbp]
	lea	rsi, .LC98[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	jmp	.L124
.L123:
	cmp	DWORD PTR -1264[rbp], -1
	jne	.L125
	lea	rax, -144[rbp]
	lea	rsi, .LC99[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	jmp	.L124
.L125:
	cmp	BYTE PTR -1295[rbp], 0
	je	.L124
	lea	rax, -144[rbp]
	lea	rsi, .LC100[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
.L124:
	cmp	BYTE PTR -1295[rbp], 0
	jne	.L126
	cmp	DWORD PTR -1264[rbp], 0
	je	.L127
.L126:
	movzx	eax, BYTE PTR exactML[rip]
	xor	eax, 1
	test	al, al
	je	.L127
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -144[rbp]
	add	rax, rdx
	movabs	rbx, 33899534508646688
	mov	QWORD PTR [rax], rbx
.L127:
	cmp	DWORD PTR -1264[rbp], 0
	je	.L128
	mov	ebx, DWORD PTR mlAccuracy[rip]
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	strlen@PLT
	lea	rdx, -144[rbp]
	add	rax, rdx
	mov	edx, ebx
	lea	rsi, .LC101[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
.L128:
	mov	DWORD PTR -1240[rbp], 0
	jmp	.L129
.L165:
	mov	eax, DWORD PTR -1240[rbp]
	cdqe
	mov	rax, QWORD PTR -800[rbp+rax*8]
	mov	QWORD PTR -1000[rbp], rax
	cmp	QWORD PTR -1008[rbp], 0
	je	.L130
	mov	rbx, QWORD PTR -1008[rbp]
	jmp	.L131
.L130:
	lea	rbx, .LC102[rip]
.L131:
	call	OpenMPString
	mov	rdx, rax
	mov	rax, QWORD PTR -1000[rbp]
	mov	r9, rbx
	mov	r8, rdx
	lea	rcx, .LC6[rip]
	lea	rdx, .LC7[rip]
	lea	rsi, .LC103[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	cmp	DWORD PTR -1284[rbp], 1
	jle	.L132
	mov	edx, DWORD PTR -1284[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	lea	rsi, .LC104[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L132:
	mov	eax, DWORD PTR bionj[rip]
	test	eax, eax
	je	.L133
	lea	rcx, .LC105[rip]
	jmp	.L134
.L133:
	lea	rcx, .LC106[rip]
.L134:
	cmp	QWORD PTR -1160[rbp], 0
	jne	.L135
	movzx	eax, BYTE PTR useMatrix[rip]
	test	al, al
	je	.L136
	lea	rax, .LC107[rip]
	jmp	.L140
.L136:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L138
	movzx	eax, BYTE PTR logdist[rip]
	test	al, al
	je	.L138
	lea	rax, .LC108[rip]
	jmp	.L140
.L138:
	lea	rax, .LC109[rip]
	jmp	.L140
.L135:
	mov	rax, QWORD PTR -1160[rbp]
.L140:
	mov	edx, DWORD PTR nCodes[rip]
	cmp	edx, 20
	jne	.L141
	lea	rdx, .LC110[rip]
	jmp	.L142
.L141:
	lea	rdx, .LC111[rip]
.L142:
	lea	rsi, -480[rbp]
	mov	rdi, QWORD PTR -1000[rbp]
	mov	r9, rsi
	mov	r8, rcx
	mov	rcx, rax
	lea	rsi, .LC112[rip]
	mov	eax, 0
	call	fprintf@PLT
	cmp	QWORD PTR -1136[rbp], 0
	jne	.L143
	movzx	eax, BYTE PTR useTopHits2nd[rip]
	test	al, al
	je	.L144
	lea	rdx, .LC113[rip]
	jmp	.L145
.L144:
	lea	rdx, .LC114[rip]
.L145:
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	jne	.L146
	mov	eax, DWORD PTR fastest[rip]
	test	eax, eax
	je	.L147
	lea	rax, .LC115[rip]
	jmp	.L149
.L147:
	lea	rax, .LC116[rip]
	jmp	.L149
.L146:
	lea	rax, .LC117[rip]
.L149:
	lea	r8, -256[rbp]
	lea	rsi, -368[rbp]
	mov	rdi, QWORD PTR -1000[rbp]
	lea	rcx, -704[rbp]
	push	rcx
	lea	rcx, -144[rbp]
	push	rcx
	mov	r9, r8
	mov	r8, rsi
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC118[rip]
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 16
	jmp	.L150
.L143:
	lea	rsi, -256[rbp]
	lea	rcx, -368[rbp]
	mov	rdx, QWORD PTR -1136[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	mov	r8, rsi
	lea	rsi, .LC119[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L150:
	cmp	DWORD PTR -1264[rbp], 0
	jne	.L151
	cmp	BYTE PTR -1295[rbp], 0
	je	.L152
.L151:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L153
	cmp	BYTE PTR -1294[rbp], 0
	je	.L154
	lea	rax, .LC120[rip]
	jmp	.L156
.L154:
	lea	rax, .LC108[rip]
	jmp	.L156
.L153:
	cmp	BYTE PTR -1293[rbp], 0
	je	.L157
	lea	rax, .LC121[rip]
	jmp	.L156
.L157:
	lea	rax, .LC122[rip]
.L156:
	mov	rcx, QWORD PTR -1000[rbp]
	mov	rdx, rax
	lea	rsi, .LC123[rip]
	mov	rdi, rcx
	mov	eax, 0
	call	fprintf@PLT
	cmp	DWORD PTR -1256[rbp], 1
	jne	.L159
	mov	rax, QWORD PTR -1000[rbp]
	mov	rcx, rax
	mov	edx, 31
	mov	esi, 1
	lea	rdi, .LC124[rip]
	call	fwrite@PLT
	jmp	.L160
.L159:
	mov	edx, DWORD PTR -1256[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	lea	rsi, .LC125[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L160:
	mov	rax, QWORD PTR -1000[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L161
	cmp	BYTE PTR -1292[rbp], 0
	je	.L161
	movsd	xmm4, QWORD PTR -712[rbp]
	movsd	xmm3, QWORD PTR -720[rbp]
	movsd	xmm2, QWORD PTR -728[rbp]
	movsd	xmm1, QWORD PTR -736[rbp]
	movsd	xmm0, QWORD PTR -744[rbp]
	mov	rdx, QWORD PTR -752[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	movapd	xmm5, xmm4
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC126[rip]
	mov	rdi, rax
	mov	eax, 6
	call	fprintf@PLT
.L161:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L152
	cmp	BYTE PTR -1291[rbp], 0
	je	.L152
	movsd	xmm2, QWORD PTR -760[rbp]
	movsd	xmm1, QWORD PTR -768[rbp]
	movsd	xmm0, QWORD PTR -776[rbp]
	mov	rdx, QWORD PTR -784[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC127[rip]
	mov	rdi, rax
	mov	eax, 4
	call	fprintf@PLT
.L152:
	cmp	QWORD PTR -1144[rbp], 0
	je	.L162
	mov	rcx, QWORD PTR constraintWeight[rip]
	mov	rdx, QWORD PTR -1144[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	movq	xmm0, rcx
	lea	rsi, .LC128[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L162:
	movsd	xmm0, QWORD PTR pseudoWeight[rip]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L163
	mov	rdx, QWORD PTR pseudoWeight[rip]
	mov	rax, QWORD PTR -1000[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC129[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L163:
	mov	rax, QWORD PTR -1000[rbp]
	mov	rdi, rax
	call	fflush@PLT
	add	DWORD PTR -1240[rbp], 1
.L129:
	mov	eax, DWORD PTR -1240[rbp]
	cmp	eax, DWORD PTR -1236[rbp]
	jl	.L165
.L112:
	cmp	QWORD PTR -1160[rbp], 0
	je	.L166
	movzx	eax, BYTE PTR useMatrix[rip]
	xor	eax, 1
	test	al, al
	je	.L167
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 48
	mov	esi, 1
	lea	rdi, .LC130[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L167:
	mov	rax, QWORD PTR -1160[rbp]
	mov	rdi, rax
	call	ReadDistanceMatrix
	mov	QWORD PTR -1152[rbp], rax
	jmp	.L168
.L166:
	movzx	eax, BYTE PTR useMatrix[rip]
	test	al, al
	je	.L169
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 20
	je	.L170
	lea	rcx, __PRETTY_FUNCTION__.76[rip]
	mov	edx, 2002
	lea	rsi, .LC131[rip]
	lea	rdi, .LC132[rip]
	call	__assert_fail@PLT
.L170:
	lea	rax, matrixBLOSUM45[rip]
	mov	QWORD PTR -1152[rbp], rax
	mov	rax, QWORD PTR -1152[rbp]
	mov	rdi, rax
	call	SetupDistanceMatrix
	jmp	.L168
.L169:
	mov	QWORD PTR -1152[rbp], 0
.L168:
	cmp	QWORD PTR -1008[rbp], 0
	je	.L171
	mov	rax, QWORD PTR -1008[rbp]
	lea	rsi, .LC133[rip]
	mov	rdi, rax
	call	fopen@PLT
	jmp	.L172
.L171:
	mov	rax, QWORD PTR stdin[rip]
.L172:
	mov	QWORD PTR -992[rbp], rax
	cmp	QWORD PTR -992[rbp], 0
	jne	.L173
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -1008[rbp]
	lea	rsi, .LC134[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L173:
	mov	QWORD PTR -1096[rbp], 0
	cmp	QWORD PTR -1144[rbp], 0
	je	.L174
	mov	rax, QWORD PTR -1144[rbp]
	lea	rsi, .LC133[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -1096[rbp], rax
	cmp	QWORD PTR -1096[rbp], 0
	jne	.L174
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -1144[rbp]
	lea	rsi, .LC134[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L174:
	mov	QWORD PTR -1088[rbp], 0
	cmp	QWORD PTR -1136[rbp], 0
	je	.L175
	mov	rax, QWORD PTR -1136[rbp]
	lea	rsi, .LC133[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -1088[rbp], rax
	cmp	QWORD PTR -1088[rbp], 0
	jne	.L175
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -1136[rbp]
	lea	rsi, .LC134[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L175:
	mov	DWORD PTR -1232[rbp], 0
	jmp	.L176
.L325:
	movzx	edx, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -992[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	ReadAlignment
	mov	QWORD PTR -984[rbp], rax
	mov	rax, QWORD PTR -984[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jg	.L177
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 23
	mov	esi, 1
	lea	rdi, .LC135[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L177:
	cmp	QWORD PTR -1104[rbp], 0
	je	.L178
	mov	rax, QWORD PTR -984[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -984[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -1104[rbp]
	lea	rsi, .LC136[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -1104[rbp]
	mov	rdi, rax
	call	fflush@PLT
.L178:
	lea	rax, -848[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	gettimeofday@PLT
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	lea	rdi, .LC137[rip]
	call	ProgressReport
	mov	rax, QWORD PTR -984[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -984[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	esi, edx
	mov	rdi, rax
	call	MakeHashtable
	mov	QWORD PTR -976[rbp], rax
	mov	DWORD PTR -1228[rbp], 0
	jmp	.L179
.L181:
	mov	rax, QWORD PTR -984[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1228[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -976[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FindMatch
	mov	DWORD PTR -1172[rbp], eax
	mov	edx, DWORD PTR -1172[rbp]
	mov	rax, QWORD PTR -976[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	HashCount
	cmp	eax, 1
	je	.L180
	mov	rax, QWORD PTR -984[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1228[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC138[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L180:
	add	DWORD PTR -1228[rbp], 1
.L179:
	mov	rax, QWORD PTR -984[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1228[rbp], eax
	jl	.L181
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	lea	rdi, .LC139[rip]
	call	ProgressReport
	cmp	BYTE PTR -1297[rbp], 0
	je	.L182
	mov	rax, QWORD PTR -984[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -984[rbp]
	mov	esi, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -984[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR -1152[rbp]
	sub	rsp, 8
	push	0
	mov	r9, rcx
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	InitNJ
	add	rsp, 16
	mov	QWORD PTR -856[rbp], rax
	mov	rax, QWORD PTR -984[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	esi, eax
	lea	rdi, .LC140[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR -1224[rbp], 0
	jmp	.L183
.L190:
	mov	rax, QWORD PTR -984[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1224[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC141[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR -1220[rbp], 0
	jmp	.L184
.L189:
	mov	rax, QWORD PTR -856[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -856[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -856[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -1220[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rax, QWORD PTR [rax]
	mov	rsi, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -856[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -1224[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 8[rax]
	lea	rdi, -832[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	SeqDist
	movzx	eax, BYTE PTR logdist[rip]
	test	al, al
	je	.L185
	movss	xmm0, DWORD PTR -820[rbp]
	pxor	xmm6, xmm6
	cvtss2sd	xmm6, xmm0
	movq	rax, xmm6
	movq	xmm0, rax
	call	LogCorrect
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR -820[rbp], xmm0
.L185:
	movss	xmm1, DWORD PTR -820[rbp]
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jb	.L350
	mov	rax, QWORD PTR .LC39[rip]
	jmp	.L188
.L350:
	movss	xmm0, DWORD PTR -820[rbp]
	pxor	xmm7, xmm7
	cvtss2sd	xmm7, xmm0
	movq	rax, xmm7
.L188:
	movq	xmm0, rax
	lea	rdi, .LC143[rip]
	mov	eax, 1
	call	printf@PLT
	add	DWORD PTR -1220[rbp], 1
.L184:
	mov	rax, QWORD PTR -856[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -1220[rbp], eax
	jl	.L189
	mov	edi, 10
	call	putchar@PLT
	add	DWORD PTR -1224[rbp], 1
.L183:
	mov	rax, QWORD PTR -856[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -1224[rbp], eax
	jl	.L190
	jmp	.L191
.L182:
	mov	QWORD PTR profileOps[rip], 0
	mov	QWORD PTR outprofileOps[rip], 0
	mov	QWORD PTR seqOps[rip], 0
	mov	QWORD PTR profileAvgOps[rip], 0
	mov	QWORD PTR nHillBetter[rip], 0
	mov	QWORD PTR nCloseUsed[rip], 0
	mov	QWORD PTR nClose2Used[rip], 0
	mov	QWORD PTR nRefreshTopHits[rip], 0
	mov	QWORD PTR nVisibleUpdate[rip], 0
	mov	QWORD PTR nNNI[rip], 0
	mov	QWORD PTR nML_NNI[rip], 0
	mov	QWORD PTR nProfileFreqAlloc[rip], 0
	mov	QWORD PTR nProfileFreqAvoid[rip], 0
	mov	QWORD PTR szAllAlloc[rip], 0
	mov	QWORD PTR mymallocUsed[rip], 0
	mov	QWORD PTR maxmallocHeap[rip], 0
	mov	QWORD PTR nLkCompute[rip], 0
	mov	QWORD PTR nPosteriorCompute[rip], 0
	mov	QWORD PTR nAAPosteriorExact[rip], 0
	mov	QWORD PTR nAAPosteriorRough[rip], 0
	mov	QWORD PTR nStarTests[rip], 0
	mov	rax, QWORD PTR -984[rbp]
	mov	rdi, rax
	call	UniquifyAln
	mov	QWORD PTR -968[rbp], rax
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	lea	rdi, .LC144[rip]
	call	ProgressReport
	mov	QWORD PTR -1080[rbp], 0
	mov	QWORD PTR -1072[rbp], 0
	cmp	QWORD PTR -1144[rbp], 0
	je	.L192
	movzx	edx, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -1096[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	ReadAlignment
	mov	QWORD PTR -1080[rbp], rax
	mov	rax, QWORD PTR -1080[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 3
	jg	.L193
	mov	eax, DWORD PTR -1232[rbp]
	lea	esi, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -1144[rbp]
	mov	rcx, rdx
	mov	edx, esi
	lea	rsi, .LC145[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -1080[rbp]
	mov	rdi, rax
	call	FreeAlignment
	mov	QWORD PTR -1080[rbp], rax
	jmp	.L192
.L193:
	mov	rdx, QWORD PTR -976[rbp]
	mov	rcx, QWORD PTR -968[rbp]
	mov	rax, QWORD PTR -1080[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	AlnToConstraints
	mov	QWORD PTR -1072[rbp], rax
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	lea	rdi, .LC146[rip]
	call	ProgressReport
.L192:
	mov	QWORD PTR -1064[rbp], 0
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 20
	jne	.L194
	cmp	BYTE PTR -1293[rbp], 0
	je	.L195
	lea	rsi, statWAG01[rip]
	lea	rdi, matrixWAG01[rip]
	call	CreateTransitionMatrix
	jmp	.L196
.L195:
	lea	rsi, statJTT92[rip]
	lea	rdi, matrixJTT92[rip]
	call	CreateTransitionMatrix
.L196:
	mov	QWORD PTR -1064[rbp], rax
	jmp	.L197
.L194:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L197
	cmp	BYTE PTR -1294[rbp], 0
	je	.L197
	cmp	BYTE PTR -1292[rbp], 0
	jne	.L198
	cmp	BYTE PTR -1291[rbp], 0
	je	.L197
.L198:
	lea	rdx, -784[rbp]
	lea	rax, -752[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	CreateGTR
	mov	QWORD PTR -1064[rbp], rax
.L197:
	cmp	QWORD PTR -1072[rbp], 0
	je	.L199
	mov	rax, QWORD PTR -1080[rbp]
	mov	edi, DWORD PTR [rax]
	jmp	.L200
.L199:
	mov	edi, 0
.L200:
	mov	rax, QWORD PTR -984[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -968[rbp]
	mov	esi, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -968[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	r8, QWORD PTR -1152[rbp]
	mov	rcx, QWORD PTR -1072[rbp]
	sub	rsp, 8
	push	QWORD PTR -1064[rbp]
	mov	r9, r8
	mov	r8d, edi
	mov	rdi, rax
	call	InitNJ
	add	rsp, 16
	mov	QWORD PTR -960[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L201
	mov	rax, QWORD PTR -984[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -984[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -984[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -984[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -984[rbp]
	mov	r9d, DWORD PTR [rax]
	mov	rax, QWORD PTR -968[rbp]
	mov	r8d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -984[rbp]
	mov	edx, DWORD PTR 4[rax]
	cmp	QWORD PTR -1008[rbp], 0
	je	.L202
	mov	rax, QWORD PTR -1008[rbp]
	jmp	.L203
.L202:
	lea	rax, .LC102[rip]
.L203:
	mov	rdi, QWORD PTR stderr[rip]
	push	rsi
	push	rcx
	mov	ecx, edx
	mov	rdx, rax
	lea	rsi, .LC147[rip]
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 16
.L201:
	mov	rax, QWORD PTR -984[rbp]
	mov	rdi, rax
	call	FreeAlignmentSeqs
	cmp	QWORD PTR -1088[rbp], 0
	je	.L204
	cmp	BYTE PTR -1296[rbp], 0
	je	.L205
	mov	rax, QWORD PTR -1088[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	fseek@PLT
.L205:
	mov	rcx, QWORD PTR -1088[rbp]
	mov	rdx, QWORD PTR -976[rbp]
	mov	rsi, QWORD PTR -968[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	ReadTree
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L206
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -1136[rbp]
	lea	rsi, .LC148[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L206:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L207
	movzx	edi, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -968[rbp]
	mov	rsi, QWORD PTR -960[rbp]
	mov	r9d, edi
	mov	r8d, 0
	mov	rdi, rax
	call	PrintNJ
	jmp	.L207
.L204:
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	FastNJ
.L207:
	movzx	ecx, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rsi, QWORD PTR 8[rax]
	mov	rdi, QWORD PTR -968[rbp]
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	sub	rsp, 8
	push	rcx
	mov	r9, rdi
	mov	r8, rsi
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	lea	rdi, .LC149[rip]
	call	LogTree
	add	rsp, 16
	cmp	DWORD PTR -1276[rbp], -1
	jne	.L208
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm5, xmm5
	cvtsi2sd	xmm5, eax
	movq	rax, xmm5
	movq	xmm0, rax
	call	log@PLT
	movsd	xmm1, QWORD PTR .LC150[rip]
	mulsd	xmm0, xmm1
	movsd	xmm2, QWORD PTR .LC151[rip]
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L209
.L208:
	mov	eax, DWORD PTR -1276[rbp]
.L209:
	mov	DWORD PTR -1192[rbp], eax
	mov	eax, DWORD PTR -1272[rbp]
	mov	DWORD PTR -1216[rbp], eax
	cmp	DWORD PTR -1264[rbp], -1
	jne	.L210
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm6, xmm6
	cvtsi2sd	xmm6, eax
	movq	rax, xmm6
	movq	xmm0, rax
	call	log@PLT
	addsd	xmm0, xmm0
	movsd	xmm2, QWORD PTR .LC151[rip]
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L211
.L210:
	mov	eax, DWORD PTR -1264[rbp]
.L211:
	mov	DWORD PTR -1188[rbp], eax
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	jle	.L212
	cmp	QWORD PTR -1088[rbp], 0
	jne	.L213
	lea	rax, -848[rbp]
	mov	rdi, rax
	call	clockDiff
	movq	rax, xmm0
	mov	rdx, QWORD PTR stderr[rip]
	movq	xmm0, rax
	lea	rsi, .LC152[rip]
	mov	rdi, rdx
	mov	eax, 1
	call	fprintf@PLT
.L213:
	cmp	DWORD PTR -1272[rbp], 0
	jg	.L214
	cmp	DWORD PTR -1192[rbp], 0
	jg	.L214
	cmp	DWORD PTR -1188[rbp], 0
	jle	.L212
.L214:
	mov	rax, QWORD PTR stderr[rip]
	mov	esi, DWORD PTR -1188[rbp]
	mov	ecx, DWORD PTR -1272[rbp]
	mov	edx, DWORD PTR -1192[rbp]
	mov	r8d, esi
	lea	rsi, .LC153[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L212:
	cmp	DWORD PTR -1192[rbp], 0
	jle	.L221
	mov	BYTE PTR -1289[rbp], 0
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	InitNNIStats
	mov	QWORD PTR -1056[rbp], rax
	mov	DWORD PTR -1212[rbp], 0
	jmp	.L216
.L220:
	movzx	eax, BYTE PTR -1289[rbp]
	xor	eax, 1
	test	al, al
	je	.L217
	lea	rdi, -832[rbp]
	mov	rcx, QWORD PTR -1056[rbp]
	mov	edx, DWORD PTR -1192[rbp]
	mov	esi, DWORD PTR -1212[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	NNI
	mov	DWORD PTR -1184[rbp], eax
	movzx	ecx, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rdi, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1212[rbp]
	lea	esi, 1[rax]
	mov	r8, QWORD PTR -968[rbp]
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	sub	rsp, 8
	push	rcx
	mov	r9, r8
	mov	r8, rdi
	mov	rcx, rdx
	mov	rdx, rax
	lea	rdi, .LC154[rip]
	call	LogTree
	add	rsp, 16
	cmp	DWORD PTR -1184[rbp], 0
	jne	.L217
	mov	BYTE PTR -1289[rbp], 1
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jle	.L218
	mov	eax, DWORD PTR -1212[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC155[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L218:
	cmp	QWORD PTR -1104[rbp], 0
	je	.L217
	mov	eax, DWORD PTR -1212[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1104[rbp]
	lea	rsi, .LC155[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L217:
	cmp	DWORD PTR -1216[rbp], 0
	jle	.L219
	mov	eax, DWORD PTR -1272[rbp]
	lea	ebx, 1[rax]
	mov	eax, DWORD PTR -1192[rbp]
	cdq
	idiv	ebx
	test	eax, eax
	jle	.L219
	mov	eax, DWORD PTR -1212[rbp]
	lea	ecx, 1[rax]
	mov	eax, DWORD PTR -1272[rbp]
	lea	ebx, 1[rax]
	mov	eax, DWORD PTR -1192[rbp]
	cdq
	idiv	ebx
	mov	esi, eax
	mov	eax, ecx
	cdq
	idiv	esi
	mov	eax, edx
	test	eax, eax
	jne	.L219
	mov	eax, DWORD PTR -1272[rbp]
	sub	eax, DWORD PTR -1216[rbp]
	mov	edx, eax
	mov	ecx, DWORD PTR -1272[rbp]
	mov	esi, DWORD PTR -1268[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	SPR
	movzx	ecx, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rdi, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1272[rbp]
	sub	eax, DWORD PTR -1216[rbp]
	lea	esi, 1[rax]
	mov	r8, QWORD PTR -968[rbp]
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	sub	rsp, 8
	push	rcx
	mov	r9, r8
	mov	r8, rdi
	mov	rcx, rdx
	mov	rdx, rax
	lea	rdi, .LC156[rip]
	call	LogTree
	add	rsp, 16
	sub	DWORD PTR -1216[rbp], 1
	mov	BYTE PTR -1289[rbp], 0
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1056[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeNNIStats
	mov	QWORD PTR -1056[rbp], rax
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	InitNNIStats
	mov	QWORD PTR -1056[rbp], rax
.L219:
	add	DWORD PTR -1212[rbp], 1
.L216:
	mov	eax, DWORD PTR -1212[rbp]
	cmp	eax, DWORD PTR -1192[rbp]
	jl	.L220
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1056[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeNNIStats
	mov	QWORD PTR -1056[rbp], rax
	jmp	.L221
.L222:
	mov	eax, DWORD PTR -1272[rbp]
	sub	eax, DWORD PTR -1216[rbp]
	mov	edx, eax
	mov	ecx, DWORD PTR -1272[rbp]
	mov	esi, DWORD PTR -1268[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	SPR
	movzx	ecx, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rdi, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1272[rbp]
	sub	eax, DWORD PTR -1216[rbp]
	lea	esi, 1[rax]
	mov	r8, QWORD PTR -968[rbp]
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	sub	rsp, 8
	push	rcx
	mov	r9, r8
	mov	r8, rdi
	mov	rcx, rdx
	mov	rdx, rax
	lea	rdi, .LC156[rip]
	call	LogTree
	add	rsp, 16
	sub	DWORD PTR -1216[rbp], 1
.L221:
	cmp	DWORD PTR -1216[rbp], 0
	jg	.L222
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	UpdateBranchLengths
	movzx	ecx, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rsi, QWORD PTR 8[rax]
	mov	rdi, QWORD PTR -968[rbp]
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	sub	rsp, 8
	push	rcx
	mov	r9, rdi
	mov	r8, rsi
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	lea	rdi, .LC157[rip]
	call	LogTree
	add	rsp, 16
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	jg	.L223
	cmp	QWORD PTR -1104[rbp], 0
	je	.L224
.L223:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -1048[rbp], xmm0
	mov	DWORD PTR -1208[rbp], 0
	jmp	.L225
.L226:
	mov	rax, QWORD PTR -960[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -1208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR .LC158[rip]
	andps	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -1048[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -1048[rbp], xmm0
	add	DWORD PTR -1208[rbp], 1
.L225:
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -1208[rbp], eax
	jl	.L226
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	jle	.L227
	lea	rax, -848[rbp]
	mov	rdi, rax
	call	clockDiff
	movq	rcx, xmm0
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -1048[rbp]
	movq	xmm1, rcx
	movq	xmm0, rdx
	lea	rsi, .LC159[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rdi, rax
	call	fflush@PLT
.L227:
	cmp	QWORD PTR -1104[rbp], 0
	je	.L224
	lea	rax, -848[rbp]
	mov	rdi, rax
	call	clockDiff
	movq	rcx, xmm0
	mov	rdx, QWORD PTR -1048[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	movq	xmm1, rcx
	movq	xmm0, rdx
	lea	rsi, .LC159[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rdi, rax
	call	fflush@PLT
.L224:
	mov	DWORD PTR -832[rbp], 0
	mov	DWORD PTR -828[rbp], 0
	mov	DWORD PTR -824[rbp], 0
	mov	DWORD PTR -820[rbp], 0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -816[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -808[rbp], xmm0
	cmp	DWORD PTR -1188[rbp], 0
	jg	.L228
	cmp	BYTE PTR -1295[rbp], 0
	je	.L229
.L228:
	mov	rax, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	TransMatToDistanceMat
	mov	QWORD PTR -952[rbp], rax
	mov	rdx, QWORD PTR -952[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	RecomputeProfiles
	mov	rax, QWORD PTR -952[rbp]
	mov	esi, 5040
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -952[rbp], rax
	movsd	xmm0, QWORD PTR .LC160[rip]
	movsd	QWORD PTR -1040[rbp], xmm0
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	InitNNIStats
	mov	QWORD PTR -1032[rbp], rax
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L230
	cmp	BYTE PTR -1294[rbp], 0
	je	.L230
	movzx	eax, BYTE PTR -1292[rbp]
	xor	eax, 1
	test	al, al
	je	.L230
	mov	eax, 1
	jmp	.L231
.L230:
	mov	eax, 0
.L231:
	mov	BYTE PTR -1287[rbp], al
	and	BYTE PTR -1287[rbp], 1
	cmp	BYTE PTR -1295[rbp], 0
	je	.L232
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm7, xmm7
	cvtsi2sd	xmm7, eax
	movq	rax, xmm7
	movq	xmm0, rax
	call	log@PLT
	movq	rax, xmm0
	movsd	xmm0, QWORD PTR .LC151[rip]
	movq	xmm1, rax
	divsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	mov	DWORD PTR -1180[rbp], eax
	movsd	xmm0, QWORD PTR .LC160[rip]
	movsd	QWORD PTR -944[rbp], xmm0
	mov	DWORD PTR -1204[rbp], 1
	jmp	.L233
.L256:
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -936[rbp], rax
	mov	DWORD PTR -1200[rbp], 0
	jmp	.L234
.L235:
	mov	rax, QWORD PTR -960[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -1200[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -1200[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -936[rbp]
	add	rax, rcx
	movss	xmm0, DWORD PTR [rdx]
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -1200[rbp], 1
.L234:
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -1200[rbp], eax
	jl	.L235
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	OptimizeAllBranchLengths
	movzx	esi, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rdi, QWORD PTR 8[rax]
	mov	r8, QWORD PTR -968[rbp]
	mov	rcx, QWORD PTR -960[rbp]
	mov	rdx, QWORD PTR -1104[rbp]
	mov	eax, DWORD PTR -1204[rbp]
	sub	rsp, 8
	push	rsi
	mov	r9, r8
	mov	r8, rdi
	mov	esi, eax
	lea	rdi, .LC161[rip]
	call	LogTree
	add	rsp, 16
	pxor	xmm0, xmm0
	movsd	QWORD PTR -1024[rbp], xmm0
	mov	DWORD PTR -1200[rbp], 0
	jmp	.L236
.L239:
	mov	eax, DWORD PTR -1200[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -936[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -960[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -1200[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	xmm1, DWORD PTR .LC158[rip]
	andps	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -920[rbp], xmm0
	movsd	xmm0, QWORD PTR -920[rbp]
	comisd	xmm0, QWORD PTR -1024[rbp]
	jbe	.L237
	movsd	xmm0, QWORD PTR -920[rbp]
	movsd	QWORD PTR -1024[rbp], xmm0
.L237:
	add	DWORD PTR -1200[rbp], 1
.L236:
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -1200[rbp], eax
	jl	.L239
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -936[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -936[rbp], rax
	mov	rax, QWORD PTR -960[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	TreeLogLk
	movq	rax, xmm0
	mov	QWORD PTR -928[rbp], rax
	cmp	DWORD PTR -1204[rbp], 1
	jle	.L240
	movsd	xmm0, QWORD PTR .LC162[rip]
	comisd	xmm0, QWORD PTR -1024[rbp]
	ja	.L241
	movsd	xmm0, QWORD PTR treeLogLkDelta[rip]
	addsd	xmm0, QWORD PTR -944[rbp]
	comisd	xmm0, QWORD PTR -928[rbp]
	jbe	.L240
.L241:
	mov	eax, 1
	jmp	.L243
.L240:
	mov	eax, 0
.L243:
	mov	BYTE PTR -1286[rbp], al
	and	BYTE PTR -1286[rbp], 1
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L244
	lea	rax, -848[rbp]
	mov	rdi, rax
	call	clockDiff
	movq	r8, xmm0
	cmp	BYTE PTR -1286[rbp], 0
	je	.L245
	lea	rdx, .LC163[rip]
	jmp	.L246
.L245:
	lea	rdx, .LC114[rip]
.L246:
	movzx	eax, BYTE PTR exactML[rip]
	test	al, al
	jne	.L247
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 20
	je	.L248
.L247:
	lea	rax, .LC114[rip]
	jmp	.L249
.L248:
	lea	rax, .LC164[rip]
.L249:
	mov	rdi, QWORD PTR stderr[rip]
	movsd	xmm0, QWORD PTR -1024[rbp]
	mov	rcx, QWORD PTR -928[rbp]
	mov	esi, DWORD PTR -1204[rbp]
	movq	xmm2, r8
	mov	r8, rdx
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	mov	rcx, rax
	mov	edx, esi
	lea	rsi, .LC165[rip]
	mov	eax, 3
	call	fprintf@PLT
.L244:
	cmp	QWORD PTR -1104[rbp], 0
	je	.L250
	movsd	xmm0, QWORD PTR -1024[rbp]
	mov	rcx, QWORD PTR -928[rbp]
	mov	edx, DWORD PTR -1204[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC166[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L250:
	cmp	DWORD PTR -1204[rbp], 1
	jne	.L251
	cmp	BYTE PTR -1287[rbp], 0
	je	.L252
	cmp	BYTE PTR -1291[rbp], 0
	je	.L253
	lea	rax, -784[rbp]
	jmp	.L254
.L253:
	mov	eax, 0
.L254:
	mov	rdx, QWORD PTR -1104[rbp]
	mov	rcx, QWORD PTR -960[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	SetMLGtr
.L252:
	mov	edx, DWORD PTR -1256[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	SetMLRates
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	LogMLRates
.L251:
	cmp	BYTE PTR -1286[rbp], 0
	jne	.L352
	add	DWORD PTR -1204[rbp], 1
.L233:
	mov	eax, DWORD PTR -1204[rbp]
	cmp	eax, DWORD PTR -1180[rbp]
	jle	.L256
	jmp	.L232
.L352:
	nop
.L232:
	cmp	DWORD PTR -1188[rbp], 0
	jle	.L257
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	OptimizeAllBranchLengths
	movzx	ecx, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rsi, QWORD PTR 8[rax]
	mov	rdi, QWORD PTR -968[rbp]
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	sub	rsp, 8
	push	rcx
	mov	r9, rdi
	mov	r8, rsi
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	lea	rdi, .LC167[rip]
	call	LogTree
	add	rsp, 16
.L257:
	mov	BYTE PTR -1288[rbp], 0
	mov	DWORD PTR -1196[rbp], 0
	jmp	.L258
.L284:
	lea	rdi, -1168[rbp]
	mov	rcx, QWORD PTR -1032[rbp]
	mov	edx, DWORD PTR -1188[rbp]
	mov	esi, DWORD PTR -1196[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	ecx, 1
	mov	rdi, rax
	call	NNI
	mov	DWORD PTR -1176[rbp], eax
	movzx	ecx, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rdi, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1196[rbp]
	lea	esi, 1[rax]
	mov	r8, QWORD PTR -968[rbp]
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	sub	rsp, 8
	push	rcx
	mov	r9, r8
	mov	r8, rdi
	mov	rcx, rdx
	mov	rdx, rax
	lea	rdi, .LC168[rip]
	call	LogTree
	add	rsp, 16
	mov	rax, QWORD PTR -960[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	TreeLogLk
	movq	rax, xmm0
	mov	QWORD PTR -912[rbp], rax
	cmp	DWORD PTR -1196[rbp], 0
	jle	.L259
	movsd	xmm0, QWORD PTR treeLogLkDelta[rip]
	addsd	xmm0, QWORD PTR -1040[rbp]
	comisd	xmm0, QWORD PTR -912[rbp]
	ja	.L260
	movsd	xmm1, QWORD PTR -1168[rbp]
	movsd	xmm0, QWORD PTR treeLogLkDelta[rip]
	comisd	xmm0, xmm1
	jbe	.L259
.L260:
	mov	eax, 1
	jmp	.L262
.L259:
	mov	eax, 0
.L262:
	mov	BYTE PTR -1285[rbp], al
	and	BYTE PTR -1285[rbp], 1
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L263
	cmp	BYTE PTR -1288[rbp], 0
	je	.L264
	lea	rbx, .LC169[rip]
	jmp	.L265
.L264:
	lea	rbx, .LC114[rip]
.L265:
	lea	rax, -848[rbp]
	mov	rdi, rax
	call	clockDiff
	movq	rcx, xmm0
	movsd	xmm0, QWORD PTR -1168[rbp]
	movzx	eax, BYTE PTR exactML[rip]
	test	al, al
	jne	.L266
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 20
	je	.L267
.L266:
	lea	rax, .LC114[rip]
	jmp	.L268
.L267:
	lea	rax, .LC164[rip]
.L268:
	mov	edx, DWORD PTR -1196[rbp]
	lea	esi, 1[rdx]
	mov	rdi, QWORD PTR stderr[rip]
	mov	r8d, DWORD PTR -1176[rbp]
	mov	rdx, QWORD PTR -912[rbp]
	mov	r9, rbx
	movq	xmm2, rcx
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	mov	rcx, rax
	mov	edx, esi
	lea	rsi, .LC170[rip]
	mov	eax, 3
	call	fprintf@PLT
.L263:
	cmp	QWORD PTR -1104[rbp], 0
	je	.L269
	movsd	xmm0, QWORD PTR -1168[rbp]
	mov	eax, DWORD PTR -1196[rbp]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	mov	edx, ecx
	lea	rsi, .LC171[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L269:
	cmp	BYTE PTR -1288[rbp], 0
	jne	.L353
	cmp	BYTE PTR -1285[rbp], 0
	je	.L272
	mov	BYTE PTR -1288[rbp], 1
.L272:
	cmp	BYTE PTR -1288[rbp], 0
	jne	.L273
	mov	eax, DWORD PTR -1188[rbp]
	sub	eax, 2
	cmp	DWORD PTR -1196[rbp], eax
	jne	.L274
.L273:
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1032[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeNNIStats
	mov	QWORD PTR -1032[rbp], rax
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	InitNNIStats
	mov	QWORD PTR -1032[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L275
	cmp	BYTE PTR -1285[rbp], 0
	je	.L276
	lea	rax, .LC163[rip]
	jmp	.L277
.L276:
	lea	rax, .LC114[rip]
.L277:
	mov	rcx, QWORD PTR stderr[rip]
	mov	rdx, rax
	lea	rsi, .LC172[rip]
	mov	rdi, rcx
	mov	eax, 0
	call	fprintf@PLT
.L275:
	cmp	QWORD PTR -1104[rbp], 0
	je	.L274
	cmp	BYTE PTR -1285[rbp], 0
	je	.L278
	lea	rax, .LC163[rip]
	jmp	.L279
.L278:
	lea	rax, .LC114[rip]
.L279:
	mov	rcx, QWORD PTR -1104[rbp]
	mov	rdx, rax
	lea	rsi, .LC172[rip]
	mov	rdi, rcx
	mov	eax, 0
	call	fprintf@PLT
.L274:
	movsd	xmm0, QWORD PTR -912[rbp]
	movsd	QWORD PTR -1040[rbp], xmm0
	cmp	DWORD PTR -1196[rbp], 0
	jne	.L280
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR 168[rax]
	cmp	eax, 1
	jne	.L280
	cmp	BYTE PTR -1287[rbp], 0
	je	.L281
	cmp	BYTE PTR -1291[rbp], 0
	je	.L282
	lea	rax, -784[rbp]
	jmp	.L283
.L282:
	mov	eax, 0
.L283:
	mov	rdx, QWORD PTR -1104[rbp]
	mov	rcx, QWORD PTR -960[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	SetMLGtr
.L281:
	mov	edx, DWORD PTR -1256[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	SetMLRates
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	LogMLRates
.L280:
	add	DWORD PTR -1196[rbp], 1
.L258:
	mov	eax, DWORD PTR -1196[rbp]
	cmp	eax, DWORD PTR -1188[rbp]
	jl	.L284
	jmp	.L271
.L353:
	nop
.L271:
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1032[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeNNIStats
	mov	QWORD PTR -1032[rbp], rax
	cmp	DWORD PTR -1188[rbp], 0
	jle	.L285
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	OptimizeAllBranchLengths
	movzx	ecx, BYTE PTR -1290[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rsi, QWORD PTR 8[rax]
	mov	rdi, QWORD PTR -968[rbp]
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	sub	rsp, 8
	push	rcx
	mov	r9, rdi
	mov	r8, rsi
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 2
	lea	rdi, .LC167[rip]
	call	LogTree
	add	rsp, 16
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	jne	.L286
	cmp	QWORD PTR -1104[rbp], 0
	je	.L285
.L286:
	mov	rax, QWORD PTR -960[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	TreeLogLk
	movq	rax, xmm0
	mov	QWORD PTR -904[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L287
	lea	rax, -848[rbp]
	mov	rdi, rax
	call	clockDiff
	movq	rsi, xmm0
	movzx	eax, BYTE PTR exactML[rip]
	test	al, al
	jne	.L288
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 20
	je	.L289
.L288:
	lea	rax, .LC114[rip]
	jmp	.L290
.L289:
	lea	rax, .LC164[rip]
.L290:
	mov	rcx, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -904[rbp]
	movq	xmm1, rsi
	movq	xmm0, rdx
	mov	rdx, rax
	lea	rsi, .LC173[rip]
	mov	rdi, rcx
	mov	eax, 2
	call	fprintf@PLT
.L287:
	cmp	QWORD PTR -1104[rbp], 0
	je	.L285
	mov	rdx, QWORD PTR -904[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	movq	xmm0, rdx
	mov	edx, 2
	lea	rsi, .LC174[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	mov	rax, QWORD PTR -1104[rbp]
	mov	rdi, rax
	call	fflush@PLT
.L285:
	cmp	DWORD PTR -1188[rbp], 0
	jle	.L291
	mov	eax, DWORD PTR fastest[rip]
	test	eax, eax
	je	.L292
.L291:
	cmp	DWORD PTR -1260[rbp], 0
	jle	.L293
.L292:
	mov	edx, DWORD PTR -1260[rbp]
	lea	rcx, -832[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	TestSplitsML
.L293:
	movzx	eax, BYTE PTR gammaLogLk[rip]
	test	al, al
	je	.L354
	cmp	DWORD PTR -1256[rbp], 1
	jle	.L354
	mov	eax, DWORD PTR -1256[rbp]
	mov	edi, eax
	call	MLSiteRates
	mov	QWORD PTR -896[rbp], rax
	mov	edx, DWORD PTR -1256[rbp]
	mov	rcx, QWORD PTR -896[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	MLSiteLikelihoodsByRate
	mov	QWORD PTR -888[rbp], rax
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	rdi, QWORD PTR -1104[rbp]
	mov	rcx, QWORD PTR -888[rbp]
	mov	rdx, QWORD PTR -896[rbp]
	mov	esi, DWORD PTR -1256[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	RescaleGammaLogLk
	movq	rax, xmm0
	mov	QWORD PTR -880[rbp], rax
	mov	eax, DWORD PTR -1256[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -896[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -896[rbp], rax
	mov	eax, DWORD PTR -1256[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	imul	rax, rdx
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -888[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -888[rbp], rax
	mov	DWORD PTR -1228[rbp], 0
	jmp	.L295
.L296:
	mov	rax, QWORD PTR -960[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -1228[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -880[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -1228[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -1228[rbp], 1
.L295:
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -1228[rbp], eax
	jl	.L296
	jmp	.L354
.L229:
	lea	rdx, -832[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	TestSplitsMinEvo
	cmp	DWORD PTR -1260[rbp], 0
	jle	.L297
	mov	edx, DWORD PTR -1260[rbp]
	mov	rax, QWORD PTR -960[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	ReliabilityNJ
	jmp	.L297
.L354:
	nop
.L297:
	mov	DWORD PTR -1228[rbp], 0
	jmp	.L298
.L322:
	mov	eax, DWORD PTR -1228[rbp]
	cdqe
	mov	rax, QWORD PTR -800[rbp+rax*8]
	mov	QWORD PTR -872[rbp], rax
	mov	r14d, DWORD PTR -820[rbp]
	mov	r13d, DWORD PTR -832[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	r12d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -960[rbp]
	mov	ebx, DWORD PTR [rax]
	lea	rax, -848[rbp]
	mov	rdi, rax
	call	clockDiff
	movq	rax, xmm0
	mov	rdi, QWORD PTR -872[rbp]
	mov	r9d, r14d
	mov	r8d, r13d
	mov	ecx, r12d
	mov	edx, ebx
	movq	xmm0, rax
	lea	rsi, .LC175[rip]
	mov	eax, 1
	call	fprintf@PLT
	movsd	xmm0, QWORD PTR -816[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L299
	mov	rcx, QWORD PTR -816[rbp]
	cmp	DWORD PTR -1188[rbp], 0
	jg	.L301
	cmp	BYTE PTR -1295[rbp], 0
	je	.L302
.L301:
	lea	rdx, .LC176[rip]
	jmp	.L303
.L302:
	lea	rdx, .LC177[rip]
.L303:
	cmp	QWORD PTR -1072[rbp], 0
	je	.L304
	lea	rax, .LC178[rip]
	jmp	.L305
.L304:
	lea	rax, .LC114[rip]
.L305:
	mov	rdi, QWORD PTR -872[rbp]
	movq	xmm0, rcx
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC179[rip]
	mov	eax, 1
	call	fprintf@PLT
.L299:
	mov	rax, QWORD PTR -872[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jle	.L306
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR 32[rax]
	test	eax, eax
	jle	.L306
	mov	ecx, DWORD PTR -824[rbp]
	mov	edx, DWORD PTR -828[rbp]
	mov	rax, QWORD PTR -872[rbp]
	lea	rsi, .LC180[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	movsd	xmm0, QWORD PTR -808[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L307
	mov	rdx, QWORD PTR -808[rbp]
	cmp	DWORD PTR -1188[rbp], 0
	jg	.L309
	cmp	BYTE PTR -1295[rbp], 0
	je	.L310
.L309:
	lea	rax, .LC176[rip]
	jmp	.L311
.L310:
	lea	rax, .LC177[rip]
.L311:
	mov	rcx, QWORD PTR -872[rbp]
	movq	xmm0, rdx
	mov	rdx, rax
	lea	rsi, .LC181[rip]
	mov	rdi, rcx
	mov	eax, 1
	call	fprintf@PLT
.L307:
	mov	rax, QWORD PTR -872[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L306:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jg	.L312
	mov	rax, QWORD PTR -872[rbp]
	cmp	rax, QWORD PTR -1104[rbp]
	jne	.L313
.L312:
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	mov	rax, QWORD PTR -960[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -864[rbp], xmm0
	mov	rax, QWORD PTR profileAvgOps[rip]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	movapd	xmm3, xmm0
	divsd	xmm3, QWORD PTR -864[rbp]
	mov	rax, QWORD PTR seqOps[rip]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	movapd	xmm2, xmm0
	divsd	xmm2, QWORD PTR -864[rbp]
	mov	rax, QWORD PTR outprofileOps[rip]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	movapd	xmm1, xmm0
	divsd	xmm1, QWORD PTR -864[rbp]
	mov	rax, QWORD PTR profileOps[rip]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	divsd	xmm0, QWORD PTR -864[rbp]
	movq	rdx, xmm0
	mov	rax, QWORD PTR -872[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC182[rip]
	mov	rdi, rax
	mov	eax, 4
	call	fprintf@PLT
	mov	rax, QWORD PTR nCloseUsed[rip]
	test	rax, rax
	jg	.L314
	mov	rax, QWORD PTR nClose2Used[rip]
	test	rax, rax
	jg	.L314
	mov	rax, QWORD PTR nRefreshTopHits[rip]
	test	rax, rax
	jle	.L315
.L314:
	mov	rdi, QWORD PTR nRefreshTopHits[rip]
	mov	rsi, QWORD PTR nClose2Used[rip]
	mov	rax, QWORD PTR -960[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rdx, QWORD PTR nCloseUsed[rip]
	mov	rax, QWORD PTR -872[rbp]
	mov	r9, rdi
	mov	r8, rsi
	lea	rsi, .LC183[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L315:
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	jne	.L316
	mov	rcx, QWORD PTR nVisibleUpdate[rip]
	mov	rdx, QWORD PTR nHillBetter[rip]
	mov	rax, QWORD PTR -872[rbp]
	lea	rsi, .LC184[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L316:
	cmp	DWORD PTR -1192[rbp], 0
	jg	.L317
	cmp	DWORD PTR -1272[rbp], 0
	jg	.L317
	cmp	DWORD PTR -1188[rbp], 0
	jle	.L318
.L317:
	mov	rsi, QWORD PTR nML_NNI[rip]
	mov	rcx, QWORD PTR nSPR[rip]
	mov	rdx, QWORD PTR nNNI[rip]
	mov	rax, QWORD PTR -872[rbp]
	mov	r8, rsi
	lea	rsi, .LC185[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L318:
	cmp	DWORD PTR -1188[rbp], 0
	jle	.L313
	mov	rcx, QWORD PTR nPosteriorCompute[rip]
	mov	rdx, QWORD PTR nLkCompute[rip]
	mov	rax, QWORD PTR -872[rbp]
	lea	rsi, .LC186[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR nAAPosteriorExact[rip]
	test	rax, rax
	jg	.L319
	mov	rax, QWORD PTR nAAPosteriorRough[rip]
	test	rax, rax
	jle	.L320
.L319:
	mov	rax, QWORD PTR nAAPosteriorRough[rip]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	movsd	xmm0, QWORD PTR .LC187[rip]
	mulsd	xmm0, xmm1
	mov	rdx, QWORD PTR nAAPosteriorExact[rip]
	mov	rax, QWORD PTR nAAPosteriorRough[rip]
	add	rax, rdx
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	divsd	xmm0, xmm1
	movq	rdx, xmm0
	mov	rax, QWORD PTR -872[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC188[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L320:
	mov	eax, DWORD PTR mlAccuracy[rip]
	cmp	eax, 1
	jg	.L321
	mov	rdx, QWORD PTR nStarTests[rip]
	mov	rax, QWORD PTR -872[rbp]
	lea	rsi, .LC189[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L321:
	mov	rax, QWORD PTR -872[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L313:
	mov	rax, QWORD PTR -872[rbp]
	mov	rdi, rax
	call	fflush@PLT
	add	DWORD PTR -1228[rbp], 1
.L298:
	mov	eax, DWORD PTR -1228[rbp]
	cmp	eax, DWORD PTR -1236[rbp]
	jl	.L322
	movzx	r8d, BYTE PTR -1290[rbp]
	cmp	DWORD PTR -1260[rbp], 0
	setg	al
	movzx	edi, al
	mov	rax, QWORD PTR -984[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -968[rbp]
	mov	rsi, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -1120[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	PrintNJ
	mov	rax, QWORD PTR -1120[rbp]
	mov	rdi, rax
	call	fflush@PLT
	cmp	QWORD PTR -1104[rbp], 0
	je	.L323
	mov	rax, QWORD PTR -1104[rbp]
	mov	rcx, rax
	mov	edx, 14
	mov	esi, 1
	lea	rdi, .LC190[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -1104[rbp]
	mov	rdi, rax
	call	fflush@PLT
.L323:
	mov	rax, QWORD PTR -960[rbp]
	mov	rdi, rax
	call	FreeNJ
	cmp	QWORD PTR -1072[rbp], 0
	je	.L324
	mov	rax, QWORD PTR -968[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1072[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -1072[rbp], rax
.L324:
	mov	rax, QWORD PTR -1080[rbp]
	mov	rdi, rax
	call	FreeAlignment
	mov	QWORD PTR -1080[rbp], rax
	mov	rax, QWORD PTR -968[rbp]
	mov	rdi, rax
	call	FreeUniquify
	mov	QWORD PTR -968[rbp], rax
.L191:
	mov	rax, QWORD PTR -976[rbp]
	mov	rdi, rax
	call	FreeHashtable
	mov	QWORD PTR -976[rbp], rax
	mov	rax, QWORD PTR -984[rbp]
	mov	rdi, rax
	call	FreeAlignment
	mov	QWORD PTR -984[rbp], rax
	add	DWORD PTR -1232[rbp], 1
.L176:
	mov	eax, DWORD PTR -1232[rbp]
	cmp	eax, DWORD PTR -1284[rbp]
	jl	.L325
	cmp	QWORD PTR -1104[rbp], 0
	je	.L326
	mov	rax, QWORD PTR -1104[rbp]
	mov	rdi, rax
	call	fclose@PLT
.L326:
	mov	rax, QWORD PTR stdout[rip]
	cmp	QWORD PTR -1120[rbp], rax
	je	.L327
	mov	rax, QWORD PTR -1120[rbp]
	mov	rdi, rax
	call	fclose@PLT
.L327:
	mov	edi, 0
	call	exit@PLT
	.cfi_endproc
.LFE505:
	.size	main, .-main
	.section	.rodata
.LC191:
	.string	"%7i.%2.2i seconds: "
.LC192:
	.string	"   \r"
	.text
	.globl	ProgressReport
	.type	ProgressReport, @function
ProgressReport:
.LFB506:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	mov	DWORD PTR -20[rbp], ecx
	mov	DWORD PTR -24[rbp], r8d
	mov	eax, DWORD PTR showProgress[rip]
	test	eax, eax
	je	.L363
	mov	esi, 0
	lea	rdi, time_now.75[rip]
	call	gettimeofday@PLT
	movzx	eax, BYTE PTR time_set.74[rip]
	xor	eax, 1
	test	al, al
	je	.L358
	mov	rax, QWORD PTR time_now.75[rip]
	mov	rdx, QWORD PTR time_now.75[rip+8]
	mov	QWORD PTR time_last.73[rip], rax
	mov	QWORD PTR time_last.73[rip+8], rdx
	mov	rax, QWORD PTR time_last.73[rip]
	mov	rdx, QWORD PTR time_last.73[rip+8]
	mov	QWORD PTR time_begin.72[rip], rax
	mov	QWORD PTR time_begin.72[rip+8], rdx
	mov	BYTE PTR time_set.74[rip], 1
.L358:
	lea	rdx, time_last.73[rip]
	lea	rsi, time_now.75[rip]
	lea	rdi, elapsed.71[rip]
	call	timeval_subtract
	mov	rax, QWORD PTR elapsed.71[rip]
	cmp	rax, 1
	jg	.L359
	mov	rax, QWORD PTR elapsed.71[rip+8]
	cmp	rax, 100000
	jg	.L359
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jle	.L355
.L359:
	lea	rdx, time_begin.72[rip]
	lea	rsi, time_now.75[rip]
	lea	rdi, elapsed.71[rip]
	call	timeval_subtract
	mov	rcx, QWORD PTR elapsed.71[rip+8]
	movabs	rdx, 3777893186295716171
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 11
	sar	rcx, 63
	mov	rdx, rcx
	sub	rax, rdx
	mov	ecx, eax
	mov	rax, QWORD PTR elapsed.71[rip]
	mov	edx, eax
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC191[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, DWORD PTR -24[rbp]
	mov	edi, DWORD PTR -20[rbp]
	mov	ecx, DWORD PTR -16[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jg	.L360
	mov	edi, 2
	call	isatty@PLT
	test	eax, eax
	jne	.L361
.L360:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	jmp	.L362
.L361:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 4
	mov	esi, 1
	lea	rdi, .LC192[rip]
	call	fwrite@PLT
.L362:
	mov	rax, QWORD PTR stderr[rip]
	mov	rdi, rax
	call	fflush@PLT
	mov	rax, QWORD PTR time_now.75[rip]
	mov	rdx, QWORD PTR time_now.75[rip+8]
	mov	QWORD PTR time_last.73[rip], rax
	mov	QWORD PTR time_last.73[rip+8], rdx
	jmp	.L355
.L363:
	nop
.L355:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE506:
	.size	ProgressReport, .-ProgressReport
	.section	.rodata
.LC193:
	.string	"NCategories\t%d\nRates"
.LC194:
	.string	"rates->nRateCategories > 0"
.LC195:
	.string	"\nSiteCategories"
.LC196:
	.string	" %d"
	.text
	.globl	LogMLRates
	.type	LogMLRates, @function
LogMLRates:
.LFB507:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	cmp	QWORD PTR -24[rbp], 0
	je	.L371
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 168
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC193[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jg	.L366
	lea	rcx, __PRETTY_FUNCTION__.70[rip]
	mov	edx, 2489
	lea	rsi, .LC131[rip]
	lea	rdi, .LC194[rip]
	call	__assert_fail@PLT
.L366:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L367
.L368:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movq	rdx, xmm1
	mov	rax, QWORD PTR -24[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC143[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -16[rbp], 1
.L367:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L368
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, rax
	mov	edx, 15
	mov	esi, 1
	lea	rdi, .LC195[rip]
	call	fwrite@PLT
	mov	DWORD PTR -12[rbp], 0
	jmp	.L369
.L370:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC196[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	DWORD PTR -12[rbp], 1
.L369:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L370
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	fflush@PLT
.L371:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE507:
	.size	LogMLRates, .-LogMLRates
	.globl	LogTree
	.type	LogTree, @function
LogTree:
.LFB508:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	QWORD PTR -40[rbp], r8
	mov	QWORD PTR -48[rbp], r9
	mov	eax, DWORD PTR 16[rbp]
	mov	BYTE PTR -16[rbp], al
	cmp	QWORD PTR -24[rbp], 0
	je	.L374
	mov	edx, DWORD PTR -12[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	mov	edi, 9
	call	fputc@PLT
	movzx	edi, BYTE PTR -16[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r9d, edi
	mov	r8d, 0
	mov	rdi, rax
	call	PrintNJ
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	fflush@PLT
.L374:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE508:
	.size	LogTree, .-LogTree
	.section	.rodata
	.align 8
.LC197:
	.string	"Ignored unknown character %c (seen %lu times)\n"
	.align 8
.LC199:
	.string	"WARNING! ONLY %.1f%% NUCLEOTIDE CHARACTERS -- IS THIS REALLY A NUCLEOTIDE ALIGNMENT?\n"
	.align 8
.LC200:
	.string	"WARNING! %.1f%% NUCLEOTIDE CHARACTERS -- IS THIS REALLY A PROTEIN ALIGNMENT?\n"
.LC201:
	.string	"Made sequence profiles\n"
.LC202:
	.string	"Made out-profile\n"
.LC203:
	.string	"Node %d outdist %f\n"
	.text
	.globl	InitNJ
	.type	InitNJ, @function
InitNJ:
.LFB509:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 2168
	.cfi_offset 3, -24
	mov	QWORD PTR -2136[rbp], rdi
	mov	DWORD PTR -2140[rbp], esi
	mov	DWORD PTR -2144[rbp], edx
	mov	QWORD PTR -2152[rbp], rcx
	mov	DWORD PTR -2156[rbp], r8d
	mov	QWORD PTR -2168[rbp], r9
	mov	rax, QWORD PTR 16[rbp]
	mov	QWORD PTR -2176[rbp], rax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	edi, 192
	call	mymalloc
	mov	QWORD PTR -2096[rbp], rax
	mov	rax, QWORD PTR -2096[rbp]
	mov	DWORD PTR 128[rax], -1
	mov	rax, QWORD PTR -2096[rbp]
	mov	edx, DWORD PTR -2140[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -2096[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	DWORD PTR 48[rax], edx
	mov	rax, QWORD PTR -2096[rbp]
	mov	edx, DWORD PTR -2144[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	eax, DWORD PTR -2140[rbp]
	lea	edx, [rax+rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	DWORD PTR 52[rax], edx
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR -2136[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR -2168[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR -2176[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -2096[rbp]
	mov	edx, DWORD PTR -2156[rbp]
	mov	DWORD PTR 32[rax], edx
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR -2152[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	DWORD PTR -2116[rbp], 0
	jmp	.L376
.L377:
	mov	eax, DWORD PTR -2116[rbp]
	cdqe
	mov	QWORD PTR -2080[rbp+rax*8], 0
	add	DWORD PTR -2116[rbp], 1
.L376:
	cmp	DWORD PTR -2116[rbp], 255
	jle	.L377
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L378
.L381:
	cmp	QWORD PTR -2152[rbp], 0
	je	.L379
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2152[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	jmp	.L380
.L379:
	mov	eax, 0
.L380:
	mov	rdx, QWORD PTR -2096[rbp]
	mov	rcx, QWORD PTR 8[rdx]
	mov	edx, DWORD PTR -2120[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	mov	rsi, QWORD PTR [rdx]
	mov	rdx, QWORD PTR -2096[rbp]
	mov	rcx, QWORD PTR 56[rdx]
	mov	edx, DWORD PTR -2120[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	r9d, DWORD PTR -2120[rbp]
	mov	r8d, DWORD PTR -2156[rbp]
	mov	edx, DWORD PTR -2144[rbp]
	mov	rdi, QWORD PTR -2096[rbp]
	sub	rsp, 8
	lea	rcx, -2080[rbp]
	push	rcx
	mov	rcx, rax
	call	SeqToProfile
	add	rsp, 16
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -2120[rbp], 1
.L378:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L381
	mov	QWORD PTR -2112[rbp], 0
	mov	DWORD PTR -2116[rbp], 0
	jmp	.L382
.L383:
	mov	eax, DWORD PTR -2116[rbp]
	cdqe
	mov	rax, QWORD PTR -2080[rbp+rax*8]
	add	QWORD PTR -2112[rbp], rax
	add	DWORD PTR -2116[rbp], 1
.L382:
	cmp	DWORD PTR -2116[rbp], 255
	jle	.L383
	mov	DWORD PTR -2116[rbp], 0
	jmp	.L384
.L393:
	mov	eax, DWORD PTR -2116[rbp]
	cdqe
	mov	rax, QWORD PTR -2080[rbp+rax*8]
	test	rax, rax
	je	.L433
	cmp	DWORD PTR -2116[rbp], 46
	je	.L433
	cmp	DWORD PTR -2116[rbp], 45
	je	.L433
	mov	BYTE PTR -2121[rbp], 0
	mov	rax, QWORD PTR codesString[rip]
	mov	QWORD PTR -2104[rbp], rax
	jmp	.L388
.L392:
	mov	rax, QWORD PTR -2104[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -2116[rbp], eax
	je	.L389
	mov	rax, QWORD PTR -2104[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	tolower@PLT
	cmp	DWORD PTR -2116[rbp], eax
	jne	.L390
.L389:
	mov	BYTE PTR -2121[rbp], 1
	jmp	.L391
.L390:
	add	QWORD PTR -2104[rbp], 1
.L388:
	mov	rax, QWORD PTR -2104[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L392
.L391:
	movzx	eax, BYTE PTR -2121[rbp]
	xor	eax, 1
	test	al, al
	je	.L387
	mov	eax, DWORD PTR -2116[rbp]
	cdqe
	mov	rcx, QWORD PTR -2080[rbp+rax*8]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -2116[rbp]
	lea	rsi, .LC197[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L387
.L433:
	nop
.L387:
	add	DWORD PTR -2116[rbp], 1
.L384:
	cmp	DWORD PTR -2116[rbp], 255
	jle	.L393
	mov	rdx, QWORD PTR -1560[rbp]
	mov	rax, QWORD PTR -1544[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -1512[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -1408[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -1400[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -1456[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -1304[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -1288[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -1256[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -1152[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -1144[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, rdx
	test	rax, rax
	js	.L394
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L395
.L394:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L395:
	mov	rdx, QWORD PTR -1720[rbp]
	mov	rax, QWORD PTR -2112[rbp]
	sub	rax, rdx
	mov	rdx, QWORD PTR -1712[rbp]
	sub	rax, rdx
	test	rax, rax
	js	.L396
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	jmp	.L397
.L396:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rdx
	addsd	xmm1, xmm1
.L397:
	divsd	xmm0, xmm1
	movsd	QWORD PTR -2088[rbp], xmm0
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L398
	movsd	xmm0, QWORD PTR .LC198[rip]
	comisd	xmm0, QWORD PTR -2088[rbp]
	jbe	.L398
	movsd	xmm1, QWORD PTR -2088[rbp]
	movsd	xmm0, QWORD PTR .LC187[rip]
	mulsd	xmm1, xmm0
	movq	rdx, xmm1
	mov	rax, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	lea	rsi, .LC199[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	jmp	.L400
.L398:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 20
	jne	.L400
	movsd	xmm0, QWORD PTR -2088[rbp]
	comisd	xmm0, QWORD PTR .LC198[rip]
	jb	.L400
	movsd	xmm1, QWORD PTR -2088[rbp]
	movsd	xmm0, QWORD PTR .LC187[rip]
	mulsd	xmm1, xmm0
	movq	rdx, xmm1
	mov	rax, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	lea	rsi, .LC200[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L400:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 10
	jle	.L402
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 23
	mov	esi, 1
	lea	rdi, .LC201[rip]
	call	fwrite@PLT
.L402:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2120[rbp], eax
	jmp	.L403
.L404:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	QWORD PTR [rax], 0
	add	DWORD PTR -2120[rbp], 1
.L403:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L404
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	r8, rdi
	mov	rdi, rax
	call	OutProfile
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 96[rdx], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 10
	jle	.L405
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 17
	mov	esi, 1
	lea	rdi, .LC202[rip]
	call	fwrite@PLT
.L405:
	mov	rax, QWORD PTR -2096[rbp]
	pxor	xmm0, xmm0
	movsd	QWORD PTR 104[rax], xmm0
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 64[rdx], rax
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L406
.L407:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2120[rbp], 1
.L406:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L407
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 72[rdx], rax
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L408
.L409:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2120[rbp], 1
.L408:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L409
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 80[rdx], rax
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L410
.L411:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2120[rbp], 1
.L410:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L411
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 88[rdx], rax
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L412
.L413:
	mov	rax, QWORD PTR -2096[rbp]
	mov	ebx, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -2120[rbp]
	mov	rax, QWORD PTR -2096[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	NGaps
	sub	ebx, eax
	mov	ecx, ebx
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, ecx
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2120[rbp], 1
.L412:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L413
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 112[rdx], rax
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 120[rdx], rax
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L414
.L415:
	mov	rax, QWORD PTR -2096[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	rcx, QWORD PTR 120[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 2
	add	rcx, rax
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	add	eax, eax
	mov	DWORD PTR [rcx], eax
	add	DWORD PTR -2120[rbp], 1
.L414:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L415
	mov	rax, QWORD PTR -2096[rbp]
	mov	QWORD PTR 136[rax], 0
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L416
.L417:
	mov	rax, QWORD PTR -2096[rbp]
	mov	edx, DWORD PTR [rax]
	mov	ecx, DWORD PTR -2120[rbp]
	mov	rax, QWORD PTR -2096[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetOutDistance
	add	DWORD PTR -2120[rbp], 1
.L416:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L417
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L418
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L419
.L420:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 112[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	movq	rcx, xmm2
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -2120[rbp]
	movq	xmm0, rcx
	lea	rsi, .LC203[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -2120[rbp], 1
.L419:
	cmp	DWORD PTR -2120[rbp], 3
	jg	.L418
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L420
.L418:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 136[rdx], rax
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L421
.L422:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	add	DWORD PTR -2120[rbp], 1
.L421:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L422
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 152[rdx], rax
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L423
.L424:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2120[rbp], 1
.L423:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L424
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 160[rdx], rax
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L425
.L426:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR .LC204[rip]
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2120[rbp], 1
.L425:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L426
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 4
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 144[rdx], rax
	mov	DWORD PTR -2120[rbp], 0
	jmp	.L427
.L428:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -2120[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	add	DWORD PTR -2120[rbp], 1
.L427:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -2120[rbp], eax
	jl	.L428
	mov	rax, QWORD PTR -2096[rbp]
	mov	DWORD PTR 168[rax], 0
	mov	rax, QWORD PTR -2096[rbp]
	mov	QWORD PTR 176[rax], 0
	mov	rax, QWORD PTR -2096[rbp]
	mov	QWORD PTR 184[rax], 0
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	rdx, QWORD PTR -2096[rbp]
	lea	rcx, 168[rdx]
	mov	edx, eax
	mov	esi, 1
	mov	rdi, rcx
	call	AllocRateCategories
	mov	rax, QWORD PTR -2096[rbp]
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L430
	call	__stack_chk_fail@PLT
.L430:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE509:
	.size	InitNJ, .-InitNJ
	.globl	FreeNJ
	.type	FreeNJ, @function
FreeNJ:
.LFB510:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	cmp	QWORD PTR -40[rbp], 0
	jne	.L435
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L436
.L435:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L437
.L438:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rax, QWORD PTR [rax]
	mov	rsi, QWORD PTR -40[rbp]
	mov	rdi, QWORD PTR 56[rsi]
	mov	esi, DWORD PTR -20[rbp]
	movsx	rsi, esi
	sal	rsi, 3
	lea	rbx, [rdi+rsi]
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -20[rbp], 1
.L437:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L438
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 96[rax]
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 96[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 64[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 72[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 80[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 88[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 112[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 112[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 120[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 136[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 136[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 152[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 152[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 160[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 144[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 144[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	esi, 16880
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	rdx, QWORD PTR -40[rbp]
	lea	rcx, 168[rdx]
	mov	edx, eax
	mov	esi, 0
	mov	rdi, rcx
	call	AllocRateCategories
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 192
	mov	rdi, rax
	call	myfree
.L436:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE510:
	.size	FreeNJ, .-FreeNJ
	.section	.rodata
.LC205:
	.string	"nRateCategories >= 0"
	.text
	.globl	AllocRateCategories
	.type	AllocRateCategories, @function
AllocRateCategories:
.LFB511:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	cmp	DWORD PTR -28[rbp], 0
	jns	.L440
	lea	rcx, __PRETTY_FUNCTION__.69[rip]
	mov	edx, 2660
	lea	rsi, .LC131[rip]
	lea	rdi, .LC205[rip]
	call	__assert_fail@PLT
.L440:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jle	.L446
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	DWORD PTR -4[rbp], 0
	jmp	.L442
.L443:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR .LC206[rip]
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -4[rbp], 1
.L442:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L443
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	DWORD PTR -4[rbp], 0
	jmp	.L444
.L445:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	add	DWORD PTR -4[rbp], 1
.L444:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	jl	.L445
.L446:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE511:
	.size	AllocRateCategories, .-AllocRateCategories
	.section	.rodata
.LC207:
	.string	"NJ->nSeq >= 1"
.LC208:
	.string	"NJ->nSeq == 2"
	.align 8
.LC210:
	.string	"Too few leaves, turning off top-hits\n"
.LC211:
	.string	"Top-hit-list size = %d of %d\n"
.LC212:
	.string	"!(slow && m>0)"
.LC213:
	.string	"Joined %6d of %6d"
	.align 8
.LC214:
	.string	"Constraint violation during neighbor-joining %d %d into %d penalty %.3f\n"
	.align 8
.LC215:
	.string	"Constraint %d piece %d %d/%d %d/%d %d/%d\n"
	.align 8
.LC216:
	.string	"NJ->nOutDistActive[join.i] == nActive"
	.align 8
.LC217:
	.string	"NJ->nOutDistActive[join.j] == nActive"
	.align 8
.LC219:
	.string	"dVarO %f dVarDiam %f varIJ %f from dist %f weight %f (pos %d) bionjWeight %f %f\n"
	.align 8
.LC220:
	.string	"deltaProfileVar actual %.6f estimated %.6f lambda actual %.3f estimated %.3f\n"
	.align 8
.LC221:
	.string	"Join\t%d\t%d\t%.6f\tlambda\t%.6f\tselfw\t%.3f\t%.3f\tnew\t%d\n"
.LC223:
	.string	"nSaved < nActive-1"
.LC224:
	.string	"nSaved==nActive-1"
.LC225:
	.string	"Recomputing outprofile %d %d\n"
.LC226:
	.string	"Visible %d %d %f %f\n"
.LC227:
	.string	"iOldVisible>=0"
.LC228:
	.string	"visible[iNode].i == iNode"
	.align 8
.LC229:
	.string	"Visible %d reset from %d to %d (%f vs. %f)\n"
.LC230:
	.string	"nTop <= 2"
.LC231:
	.string	"nTop==3"
	.align 8
.LC232:
	.string	"Roundoff error in outprofile@end: WeightError %f FreqError %f\n"
	.text
	.globl	FastNJ
	.type	FastNJ, @function
FastNJ:
.LFB512:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 472
	.cfi_offset 3, -24
	mov	QWORD PTR -472[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jg	.L448
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2678
	lea	rsi, .LC131[rip]
	lea	rdi, .LC207[rip]
	call	__assert_fail@PLT
.L448:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jg	.L449
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 48[rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -472[rbp]
	mov	DWORD PTR 48[rdx], ecx
	mov	rdx, QWORD PTR -472[rbp]
	mov	DWORD PTR 128[rdx], eax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 128[rax]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	mov	DWORD PTR -456[rbp], 0
	jmp	.L450
.L451:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 128[rax]
	cdqe
	sal	rax, 4
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	mov	edx, DWORD PTR -456[rbp]
	mov	DWORD PTR 4[rcx+rax*4], edx
	add	DWORD PTR -456[rbp], 1
.L450:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -456[rbp], eax
	jl	.L451
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L452
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 152[rax]
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	jmp	.L447
.L452:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	je	.L454
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2689
	lea	rsi, .LC131[rip]
	lea	rdi, .LC208[rip]
	call	__assert_fail@PLT
.L454:
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 56[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rsi, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 8[rax]
	lea	rdi, -80[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	SeqDist
	movss	xmm0, DWORD PTR -68[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 152[rax]
	movss	xmm1, DWORD PTR .LC209[rip]
	divss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -68[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 152[rax]
	add	rax, 4
	movss	xmm1, DWORD PTR .LC209[rip]
	divss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	jmp	.L447
.L449:
	mov	QWORD PTR -400[rbp], 0
	mov	QWORD PTR -392[rbp], 0
	mov	QWORD PTR -384[rbp], 0
	mov	DWORD PTR -452[rbp], 0
	movsd	xmm0, QWORD PTR tophitsMult[rip]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L456
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm7, xmm7
	cvtsi2sd	xmm7, eax
	movq	rax, xmm7
	movq	xmm0, rax
	call	sqrt@PLT
	movsd	xmm1, QWORD PTR tophitsMult[rip]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	mov	DWORD PTR -452[rbp], eax
	cmp	DWORD PTR -452[rbp], 3
	jle	.L458
	mov	eax, DWORD PTR -452[rbp]
	lea	edx, [rax+rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jl	.L459
.L458:
	mov	DWORD PTR -452[rbp], 0
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jle	.L456
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 37
	mov	esi, 1
	lea	rdi, .LC210[rip]
	call	fwrite@PLT
	jmp	.L456
.L459:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L456
	mov	rax, QWORD PTR -472[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -452[rbp]
	lea	rsi, .LC211[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L456:
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	je	.L461
	cmp	DWORD PTR -452[rbp], 0
	jle	.L461
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2717
	lea	rsi, .LC131[rip]
	lea	rdi, .LC212[rip]
	call	__assert_fail@PLT
.L461:
	cmp	DWORD PTR -452[rbp], 0
	jle	.L462
	mov	edx, DWORD PTR -452[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	InitTopHits
	mov	QWORD PTR -384[rbp], rax
	mov	rdx, QWORD PTR -384[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	SetAllLeafTopHits
	mov	rax, QWORD PTR -472[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rdx, QWORD PTR -384[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	ResetTopVisible
	jmp	.L463
.L462:
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	jne	.L463
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 52[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 52[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -392[rbp], rax
	mov	DWORD PTR -456[rbp], 0
	jmp	.L464
.L465:
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rsi, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR -456[rbp]
	mov	r8d, 0
	mov	edi, eax
	call	SetBestHit
	add	DWORD PTR -456[rbp], 1
.L464:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -456[rbp], eax
	jl	.L465
.L463:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -448[rbp], eax
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -444[rbp], eax
	jmp	.L466
.L532:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	sub	eax, DWORD PTR -444[rbp]
	mov	DWORD PTR -420[rbp], eax
	cmp	DWORD PTR -420[rbp], 0
	jle	.L467
	mov	edx, DWORD PTR -420[rbp]
	movsx	rax, edx
	imul	rax, rax, 1374389535
	shr	rax, 32
	sar	eax, 5
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 100
	mov	eax, edx
	sub	eax, ecx
	test	eax, eax
	jne	.L467
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, -3[rax]
	mov	eax, DWORD PTR -420[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	esi, eax
	lea	rdi, .LC213[rip]
	call	ProgressReport
.L467:
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	je	.L468
	lea	rdx, -208[rbp]
	mov	ecx, DWORD PTR -444[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	ExhaustiveNJSearch
	jmp	.L469
.L468:
	cmp	DWORD PTR -452[rbp], 0
	jle	.L470
	lea	rcx, -208[rbp]
	mov	rdx, QWORD PTR -384[rbp]
	mov	esi, DWORD PTR -444[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, rax
	call	TopHitNJSearch
	jmp	.L469
.L470:
	lea	rcx, -208[rbp]
	mov	rdx, QWORD PTR -400[rbp]
	mov	esi, DWORD PTR -444[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, rax
	call	FastNJSearch
.L469:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L471
	mov	edx, DWORD PTR -204[rbp]
	mov	ecx, DWORD PTR -208[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	JoinConstraintPenalty
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR constraintWeight[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -304[rbp], xmm0
	movsd	xmm0, QWORD PTR -304[rbp]
	comisd	xmm0, QWORD PTR .LC162[rip]
	jbe	.L471
	mov	rax, QWORD PTR -472[rbp]
	mov	edi, DWORD PTR 48[rax]
	mov	ecx, DWORD PTR -204[rbp]
	mov	edx, DWORD PTR -208[rbp]
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, QWORD PTR -304[rbp]
	movq	xmm0, rsi
	mov	r8d, edi
	lea	rsi, .LC214[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	mov	DWORD PTR -440[rbp], 0
	jmp	.L473
.L475:
	mov	edx, DWORD PTR -204[rbp]
	mov	esi, DWORD PTR -208[rbp]
	mov	ecx, DWORD PTR -440[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, rax
	call	JoinConstraintPenaltyPiece
	mov	DWORD PTR -416[rbp], eax
	cmp	DWORD PTR -416[rbp], 0
	jle	.L474
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 96[rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -440[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -440[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	sub	edx, eax
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -440[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	sub	edx, eax
	mov	r9d, edx
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 96[rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -440[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -440[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	sub	edx, eax
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -440[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	sub	edx, eax
	mov	r8d, edx
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -440[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -440[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -440[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r11d, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -440[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r10d, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -416[rbp]
	mov	edx, DWORD PTR -440[rbp]
	push	r9
	push	r8
	push	rdi
	push	rsi
	mov	r9d, r11d
	mov	r8d, r10d
	lea	rsi, .LC215[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 32
.L474:
	add	DWORD PTR -440[rbp], 1
.L473:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -440[rbp], eax
	jl	.L475
.L471:
	mov	ecx, DWORD PTR -208[rbp]
	mov	edx, DWORD PTR -444[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetOutDistance
	mov	ecx, DWORD PTR -204[rbp]
	mov	edx, DWORD PTR -444[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetOutDistance
	lea	rdx, -208[rbp]
	mov	ecx, DWORD PTR -444[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetDistCriterion
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -444[rbp], eax
	je	.L476
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2774
	lea	rsi, .LC131[rip]
	lea	rdi, .LC216[rip]
	call	__assert_fail@PLT
.L476:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -444[rbp], eax
	je	.L477
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2775
	lea	rsi, .LC131[rip]
	lea	rdi, .LC217[rip]
	call	__assert_fail@PLT
.L477:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 48[rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -472[rbp]
	mov	DWORD PTR 48[rdx], ecx
	mov	DWORD PTR -412[rbp], eax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -412[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -412[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -412[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	DWORD PTR [rax], 2
	mov	edx, DWORD PTR -204[rbp]
	mov	eax, DWORD PTR -208[rbp]
	mov	rcx, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 144[rcx]
	mov	ecx, DWORD PTR -412[rbp]
	movsx	rcx, ecx
	sal	rcx, 4
	add	rcx, rsi
	cmp	edx, eax
	cmovle	eax, edx
	mov	DWORD PTR 4[rcx], eax
	mov	edx, DWORD PTR -204[rbp]
	mov	eax, DWORD PTR -208[rbp]
	mov	rcx, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 144[rcx]
	mov	ecx, DWORD PTR -412[rbp]
	movsx	rcx, ecx
	sal	rcx, 4
	add	rcx, rsi
	cmp	edx, eax
	cmovge	eax, edx
	mov	DWORD PTR 8[rcx], eax
	movss	xmm1, DWORD PTR -196[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	addss	xmm1, xmm0
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -296[rbp], xmm0
	movss	xmm0, DWORD PTR -196[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -288[rbp], xmm0
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 112[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 112[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	mov	eax, DWORD PTR -444[rbp]
	sub	eax, 2
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	divsd	xmm0, xmm1
	movsd	QWORD PTR -280[rbp], xmm0
	movsd	xmm0, QWORD PTR -288[rbp]
	addsd	xmm0, QWORD PTR -280[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -288[rbp]
	subsd	xmm0, QWORD PTR -280[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	movsd	QWORD PTR -376[rbp], xmm0
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -296[rbp]
	subsd	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	cvtss2sd	xmm1, xmm1
	subsd	xmm0, xmm1
	movsd	QWORD PTR -272[rbp], xmm0
	mov	eax, DWORD PTR bionj[rip]
	test	eax, eax
	je	.L478
	movss	xmm0, DWORD PTR -200[rbp]
	cvtss2sd	xmm0, xmm0
	comisd	xmm0, QWORD PTR .LC37[rip]
	jbe	.L478
	movsd	xmm0, QWORD PTR -272[rbp]
	comisd	xmm0, QWORD PTR .LC162[rip]
	jbe	.L478
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 96[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -176[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 96[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -144[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	mov	rax, QWORD PTR outprofileOps[rip]
	add	rax, 2
	mov	QWORD PTR outprofileOps[rip], rax
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -444[rbp]
	movss	xmm0, DWORD PTR -168[rbp]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	xmm1, DWORD PTR -200[rbp]
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -264[rbp], xmm0
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -444[rbp]
	movss	xmm0, DWORD PTR -136[rbp]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	xmm1, DWORD PTR -200[rbp]
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -256[rbp], xmm0
	movss	xmm1, DWORD PTR -164[rbp]
	movss	xmm0, DWORD PTR -168[rbp]
	mulss	xmm1, xmm0
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -444[rbp]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movss	xmm1, DWORD PTR -200[rbp]
	cvtss2sd	xmm1, xmm1
	mulsd	xmm1, QWORD PTR -296[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -248[rbp], xmm0
	movss	xmm1, DWORD PTR -132[rbp]
	movss	xmm0, DWORD PTR -136[rbp]
	mulss	xmm1, xmm0
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -444[rbp]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movss	xmm1, DWORD PTR -200[rbp]
	cvtss2sd	xmm1, xmm1
	mulsd	xmm1, QWORD PTR -296[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -240[rbp], xmm0
	mov	eax, DWORD PTR -444[rbp]
	sub	eax, 2
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, eax
	movsd	xmm0, QWORD PTR -240[rbp]
	divsd	xmm0, QWORD PTR -256[rbp]
	movsd	xmm1, QWORD PTR -248[rbp]
	divsd	xmm1, QWORD PTR -264[rbp]
	subsd	xmm0, xmm1
	mulsd	xmm0, xmm2
	movsd	QWORD PTR -232[rbp], xmm0
	mov	eax, DWORD PTR -444[rbp]
	sub	eax, 2
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	subss	xmm0, xmm2
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -224[rbp], xmm0
	movsd	xmm0, QWORD PTR -256[rbp]
	comisd	xmm0, QWORD PTR .LC37[rip]
	jbe	.L481
	movsd	xmm0, QWORD PTR -264[rbp]
	comisd	xmm0, QWORD PTR .LC37[rip]
	jbe	.L481
	movsd	xmm0, QWORD PTR -232[rbp]
	addsd	xmm0, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR -444[rbp]
	sub	eax, 2
	add	eax, eax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movapd	xmm2, xmm1
	mulsd	xmm2, QWORD PTR -272[rbp]
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -376[rbp], xmm0
.L481:
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -376[rbp]
	jbe	.L484
	pxor	xmm0, xmm0
	movsd	QWORD PTR -376[rbp], xmm0
.L484:
	movsd	xmm0, QWORD PTR -376[rbp]
	movsd	xmm1, QWORD PTR .LC4[rip]
	comisd	xmm0, xmm1
	jbe	.L486
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -376[rbp], xmm0
.L486:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L488
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm5, xmm0
	subsd	xmm5, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	movss	xmm0, DWORD PTR -200[rbp]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movss	xmm0, DWORD PTR -196[rbp]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm4, QWORD PTR -376[rbp]
	movsd	xmm1, QWORD PTR -272[rbp]
	movsd	xmm0, QWORD PTR -224[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	movapd	xmm6, xmm5
	movapd	xmm5, xmm4
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC219[rip]
	mov	rdi, rax
	mov	eax, 7
	call	fprintf@PLT
.L488:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L478
	mov	edx, DWORD PTR -412[rbp]
	movsx	rax, edx
	imul	rax, rax, 1717986919
	shr	rax, 32
	sar	eax
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	mov	ecx, eax
	sal	ecx, 2
	add	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	test	eax, eax
	jne	.L478
	pxor	xmm0, xmm0
	movsd	QWORD PTR -368[rbp], xmm0
	mov	DWORD PTR -456[rbp], 0
	jmp	.L490
.L492:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L491
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -112[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -80[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	movss	xmm0, DWORD PTR -68[rbp]
	movss	xmm1, DWORD PTR -100[rbp]
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -368[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -368[rbp], xmm0
.L491:
	add	DWORD PTR -456[rbp], 1
.L490:
	mov	eax, DWORD PTR -456[rbp]
	cmp	eax, DWORD PTR -412[rbp]
	jl	.L492
	movsd	xmm0, QWORD PTR -368[rbp]
	addsd	xmm0, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR -444[rbp]
	sub	eax, 2
	add	eax, eax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movapd	xmm2, xmm1
	mulsd	xmm2, QWORD PTR -272[rbp]
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -360[rbp], xmm0
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -360[rbp]
	jbe	.L493
	pxor	xmm0, xmm0
	movsd	QWORD PTR -360[rbp], xmm0
.L493:
	movsd	xmm0, QWORD PTR -360[rbp]
	movsd	xmm1, QWORD PTR .LC4[rip]
	comisd	xmm0, xmm1
	jbe	.L495
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -360[rbp], xmm0
.L495:
	movsd	xmm0, QWORD PTR -376[rbp]
	subsd	xmm0, QWORD PTR -360[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	comisd	xmm0, QWORD PTR .LC37[rip]
	ja	.L497
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 4
	jle	.L478
.L497:
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm2, QWORD PTR -376[rbp]
	movsd	xmm1, QWORD PTR -360[rbp]
	movsd	xmm0, QWORD PTR -232[rbp]
	mov	rdx, QWORD PTR -368[rbp]
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC220[rip]
	mov	rdi, rax
	mov	eax, 4
	call	fprintf@PLT
.L478:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L498
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 88[rax]
	mov	edx, DWORD PTR -208[rbp]
	mov	eax, DWORD PTR -204[rbp]
	cmp	edx, eax
	jge	.L499
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	jmp	.L500
.L499:
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
.L500:
	add	rax, rcx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 88[rax]
	mov	edx, DWORD PTR -208[rbp]
	mov	eax, DWORD PTR -204[rbp]
	cmp	edx, eax
	jge	.L501
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	jmp	.L502
.L501:
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
.L502:
	add	rax, rcx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movss	xmm0, DWORD PTR -192[rbp]
	pxor	xmm6, xmm6
	cvtss2sd	xmm6, xmm0
	movq	rsi, xmm6
	mov	edx, DWORD PTR -208[rbp]
	mov	eax, DWORD PTR -204[rbp]
	cmp	edx, eax
	cmovge	eax, edx
	mov	ecx, eax
	mov	edx, DWORD PTR -204[rbp]
	mov	eax, DWORD PTR -208[rbp]
	cmp	edx, eax
	cmovg	edx, eax
	mov	rax, QWORD PTR stderr[rip]
	mov	edi, DWORD PTR -412[rbp]
	movsd	xmm0, QWORD PTR -376[rbp]
	mov	r8d, edi
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	lea	rsi, .LC221[rip]
	mov	rdi, rax
	mov	eax, 4
	call	fprintf@PLT
.L498:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -376[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm3, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm3
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -412[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -376[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, QWORD PTR -376[rbp]
	mulsd	xmm0, QWORD PTR -376[rbp]
	mulsd	xmm0, QWORD PTR -272[rbp]
	addsd	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -412[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR bionj[rip]
	test	eax, eax
	je	.L503
	mov	rax, QWORD PTR -376[rbp]
	jmp	.L504
.L503:
	mov	rax, QWORD PTR .LC222[rip]
.L504:
	mov	rdx, QWORD PTR -472[rbp]
	mov	r9, QWORD PTR 16[rdx]
	mov	rdx, QWORD PTR -472[rbp]
	mov	ecx, DWORD PTR 32[rdx]
	mov	rdx, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rdx]
	mov	rsi, QWORD PTR -472[rbp]
	mov	rdi, QWORD PTR 56[rsi]
	mov	esi, DWORD PTR -204[rbp]
	movsx	rsi, esi
	sal	rsi, 3
	add	rsi, rdi
	mov	rsi, QWORD PTR [rsi]
	mov	rdi, QWORD PTR -472[rbp]
	mov	r8, QWORD PTR 56[rdi]
	mov	edi, DWORD PTR -208[rbp]
	movsx	rdi, edi
	sal	rdi, 3
	add	rdi, r8
	mov	rdi, QWORD PTR [rdi]
	mov	r8, QWORD PTR -472[rbp]
	mov	r10, QWORD PTR 56[r8]
	mov	r8d, DWORD PTR -412[rbp]
	movsx	r8, r8d
	sal	r8, 3
	lea	rbx, [r10+r8]
	movq	xmm0, rax
	mov	r8, r9
	call	AverageProfile
	mov	QWORD PTR [rbx], rax
	mov	eax, DWORD PTR -444[rbp]
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -448[rbp]
	sub	eax, edx
	mov	DWORD PTR -408[rbp], eax
	mov	eax, DWORD PTR nResetOutProfile[rip]
	cmp	DWORD PTR -408[rbp], eax
	jl	.L505
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -408[rbp]
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, DWORD PTR -448[rbp]
	movsd	xmm1, QWORD PTR fResetOutProfile[rip]
	mulsd	xmm1, xmm2
	comisd	xmm0, xmm1
	jb	.L505
	mov	eax, DWORD PTR -444[rbp]
	sub	eax, 1
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -216[rbp], rax
	mov	DWORD PTR -436[rbp], 0
	mov	rax, QWORD PTR -472[rbp]
	pxor	xmm0, xmm0
	movsd	QWORD PTR 104[rax], xmm0
	mov	DWORD PTR -456[rbp], 0
	jmp	.L507
.L510:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L508
	mov	eax, DWORD PTR -444[rbp]
	sub	eax, 1
	cmp	DWORD PTR -436[rbp], eax
	jl	.L509
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2888
	lea	rsi, .LC131[rip]
	lea	rdi, .LC223[rip]
	call	__assert_fail@PLT
.L509:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -436[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -436[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -216[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR [rcx]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -472[rbp]
	movsd	xmm1, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	addsd	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	movsd	QWORD PTR 104[rax], xmm0
.L508:
	add	DWORD PTR -456[rbp], 1
.L507:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -456[rbp], eax
	jl	.L510
	mov	eax, DWORD PTR -444[rbp]
	sub	eax, 1
	cmp	DWORD PTR -436[rbp], eax
	je	.L511
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2893
	lea	rsi, .LC131[rip]
	lea	rdi, .LC224[rip]
	call	__assert_fail@PLT
.L511:
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 96[rax]
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L512
	mov	eax, DWORD PTR -444[rbp]
	lea	ecx, -1[rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -448[rbp]
	lea	rsi, .LC225[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L512:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	esi, DWORD PTR -436[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	OutProfile
	mov	rdx, QWORD PTR -472[rbp]
	mov	QWORD PTR 96[rdx], rax
	mov	eax, DWORD PTR -444[rbp]
	sub	eax, 1
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -216[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -216[rbp], rax
	mov	eax, DWORD PTR -444[rbp]
	sub	eax, 1
	mov	DWORD PTR -448[rbp], eax
	jmp	.L513
.L505:
	mov	rax, QWORD PTR -472[rbp]
	mov	r8, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edi, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	r9d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -412[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 96[rax]
	mov	r10d, DWORD PTR -444[rbp]
	push	r8
	push	rdi
	mov	r8d, r10d
	mov	rdi, rax
	call	UpdateOutProfile
	add	rsp, 16
	mov	rax, QWORD PTR -472[rbp]
	movsd	xmm1, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -412[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	subss	xmm0, xmm2
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	subss	xmm0, xmm2
	cvtss2sd	xmm0, xmm0
	addsd	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	movsd	QWORD PTR 104[rax], xmm0
.L513:
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -412[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -412[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -80[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	eax, DWORD PTR -412[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR -68[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -412[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR -72[rbp]
	movss	DWORD PTR [rax], xmm0
	cmp	DWORD PTR -452[rbp], 0
	jle	.L514
	mov	eax, DWORD PTR -444[rbp]
	lea	edi, -1[rax]
	mov	rdx, QWORD PTR -384[rbp]
	mov	rsi, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR -412[rbp]
	mov	rcx, rdx
	mov	edx, edi
	mov	edi, eax
	call	TopHitJoin
	jmp	.L515
.L514:
	mov	DWORD PTR -456[rbp], 0
	jmp	.L516
.L518:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L517
	mov	eax, DWORD PTR -444[rbp]
	lea	edx, -1[rax]
	mov	ecx, DWORD PTR -456[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetOutDistance
.L517:
	add	DWORD PTR -456[rbp], 1
.L516:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -456[rbp], eax
	jl	.L518
	cmp	QWORD PTR -400[rbp], 0
	je	.L515
	mov	eax, DWORD PTR -412[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -444[rbp]
	lea	edx, -1[rax]
	mov	rdi, QWORD PTR -392[rbp]
	mov	rsi, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR -412[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	SetBestHit
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L519
	mov	eax, DWORD PTR -412[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 16[rax]
	cvtss2sd	xmm0, xmm0
	mov	eax, DWORD PTR -412[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR 12[rax]
	pxor	xmm7, xmm7
	cvtss2sd	xmm7, xmm1
	movq	rsi, xmm7
	mov	eax, DWORD PTR -412[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	mov	ecx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -412[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	lea	rsi, .LC226[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L519:
	cmp	QWORD PTR -392[rbp], 0
	je	.L515
	mov	DWORD PTR -456[rbp], 0
	jmp	.L520
.L531:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L560
	mov	eax, DWORD PTR -456[rbp]
	cmp	eax, DWORD PTR -412[rbp]
	je	.L560
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -404[rbp], eax
	cmp	DWORD PTR -404[rbp], 0
	jns	.L524
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2940
	lea	rsi, .LC131[rip]
	lea	rdi, .LC227[rip]
	call	__assert_fail@PLT
.L524:
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -456[rbp], eax
	je	.L525
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2941
	lea	rsi, .LC131[rip]
	lea	rdi, .LC228[rip]
	call	__assert_fail@PLT
.L525:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -404[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L526
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -444[rbp]
	lea	ecx, -1[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
.L526:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -404[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L527
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -392[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR 16[rax]
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 16[rax]
	comiss	xmm0, xmm1
	jbe	.L523
.L527:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L529
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -392[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 16[rax]
	cvtss2sd	xmm0, xmm0
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR 16[rax]
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm1
	movq	rsi, xmm4
	mov	rax, QWORD PTR stderr[rip]
	mov	edi, DWORD PTR -412[rbp]
	mov	ecx, DWORD PTR -404[rbp]
	mov	edx, DWORD PTR -456[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	mov	r8d, edi
	lea	rsi, .LC229[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L529:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -404[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L530
	mov	rax, QWORD PTR nVisibleUpdate[rip]
	add	rax, 1
	mov	QWORD PTR nVisibleUpdate[rip], rax
.L530:
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -412[rbp]
	mov	DWORD PTR 4[rdx], eax
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -392[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 12[rcx]
	movss	DWORD PTR 12[rax], xmm0
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -392[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -456[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 16[rcx]
	movss	DWORD PTR 16[rax], xmm0
	jmp	.L523
.L560:
	nop
.L523:
	add	DWORD PTR -456[rbp], 1
.L520:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -456[rbp], eax
	jl	.L531
.L515:
	sub	DWORD PTR -444[rbp], 1
.L466:
	cmp	DWORD PTR -444[rbp], 3
	jg	.L532
	cmp	QWORD PTR -400[rbp], 0
	je	.L533
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 52[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -400[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -400[rbp], rax
.L533:
	cmp	QWORD PTR -392[rbp], 0
	je	.L534
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 52[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -392[rbp], rax
.L534:
	mov	rax, QWORD PTR -384[rbp]
	mov	rdi, rax
	call	FreeTopHits
	mov	QWORD PTR -384[rbp], rax
	mov	DWORD PTR -432[rbp], 0
	mov	DWORD PTR -456[rbp], 0
	jmp	.L535
.L538:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -456[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L536
	cmp	DWORD PTR -432[rbp], 2
	jle	.L537
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2982
	lea	rsi, .LC131[rip]
	lea	rdi, .LC230[rip]
	call	__assert_fail@PLT
.L537:
	mov	eax, DWORD PTR -432[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -432[rbp], edx
	cdqe
	mov	edx, DWORD PTR -456[rbp]
	mov	DWORD PTR -60[rbp+rax*4], edx
.L536:
	add	DWORD PTR -456[rbp], 1
.L535:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -456[rbp], eax
	jl	.L538
	cmp	DWORD PTR -432[rbp], 3
	je	.L539
	lea	rcx, __PRETTY_FUNCTION__.68[rip]
	mov	edx, 2986
	lea	rsi, .LC131[rip]
	lea	rdi, .LC231[rip]
	call	__assert_fail@PLT
.L539:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 48[rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -472[rbp]
	mov	DWORD PTR 48[rdx], ecx
	mov	rdx, QWORD PTR -472[rbp]
	mov	DWORD PTR 128[rdx], eax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 128[rax]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	DWORD PTR [rax], 3
	mov	DWORD PTR -432[rbp], 0
	jmp	.L540
.L541:
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -432[rbp]
	cdqe
	mov	eax, DWORD PTR -60[rbp+rax*4]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 128[rax]
	cdqe
	sal	rax, 4
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -432[rbp]
	cdqe
	mov	edx, DWORD PTR -60[rbp+rax*4]
	mov	eax, DWORD PTR -432[rbp]
	cdqe
	mov	DWORD PTR 4[rcx+rax*4], edx
	add	DWORD PTR -432[rbp], 1
.L540:
	cmp	DWORD PTR -432[rbp], 2
	jle	.L541
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -144[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -112[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	mov	rax, QWORD PTR -472[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -80[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	movss	xmm0, DWORD PTR -132[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -336[rbp], xmm0
	movss	xmm0, DWORD PTR -100[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -328[rbp], xmm0
	movss	xmm0, DWORD PTR -68[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -320[rbp], xmm0
	movsd	xmm0, QWORD PTR -336[rbp]
	addsd	xmm0, QWORD PTR -328[rbp]
	subsd	xmm0, QWORD PTR -320[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -336[rbp]
	addsd	xmm0, QWORD PTR -320[rbp]
	subsd	xmm0, QWORD PTR -328[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -328[rbp]
	addsd	xmm0, QWORD PTR -320[rbp]
	subsd	xmm0, QWORD PTR -336[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L561
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	mov	rsi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 4[rax]
	lea	rax, -48[rbp]
	mov	r8, rsi
	mov	esi, 3
	mov	rdi, rax
	call	OutProfile
	mov	QWORD PTR -312[rbp], rax
	pxor	xmm0, xmm0
	movsd	QWORD PTR -352[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -344[rbp], xmm0
	mov	DWORD PTR -428[rbp], 0
	jmp	.L543
.L546:
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -428[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 96[rax]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -428[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	xmm1, DWORD PTR .LC158[rip]
	andps	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -344[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -344[rbp], xmm0
	mov	DWORD PTR -424[rbp], 0
	jmp	.L544
.L545:
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -428[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -424[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR 96[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -428[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -424[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	xmm1, DWORD PTR .LC158[rip]
	andps	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -352[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -352[rbp], xmm0
	add	DWORD PTR -424[rbp], 1
.L544:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -424[rbp], eax
	jl	.L545
	add	DWORD PTR -428[rbp], 1
.L543:
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -428[rbp], eax
	jl	.L546
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm0, QWORD PTR -352[rbp]
	mov	rdx, QWORD PTR -344[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC232[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -312[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
.L561:
	nop
.L447:
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L548
	call	__stack_chk_fail@PLT
.L548:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE512:
	.size	FastNJ, .-FastNJ
	.section	.rodata
.LC235:
	.string	"join->i >= 0 && join->j >= 0"
	.text
	.globl	ExhaustiveNJSearch
	.type	ExhaustiveNJSearch, @function
ExhaustiveNJSearch:
.LFB513:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], -1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], -1
	mov	rax, QWORD PTR -72[rbp]
	pxor	xmm0, xmm0
	movss	DWORD PTR 8[rax], xmm0
	mov	rax, QWORD PTR -72[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -72[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 16[rax], xmm0
	movsd	xmm0, QWORD PTR .LC234[rip]
	movsd	QWORD PTR -40[rbp], xmm0
	mov	DWORD PTR -48[rbp], 0
	jmp	.L563
.L570:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L564
	mov	eax, DWORD PTR -48[rbp]
	add	eax, 1
	mov	DWORD PTR -44[rbp], eax
	jmp	.L565
.L569:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L566
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -28[rbp], eax
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -60[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetDistCriterion
	movss	xmm0, DWORD PTR -16[rbp]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	comisd	xmm0, xmm1
	jbe	.L566
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR 16[rcx], eax
	movss	xmm0, DWORD PTR -16[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -40[rbp], xmm0
.L566:
	add	DWORD PTR -44[rbp], 1
.L565:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -44[rbp], eax
	jl	.L569
.L564:
	add	DWORD PTR -48[rbp], 1
.L563:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 48[rax]
	sub	eax, 1
	cmp	DWORD PTR -48[rbp], eax
	jl	.L570
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L571
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jns	.L575
.L571:
	lea	rcx, __PRETTY_FUNCTION__.67[rip]
	mov	edx, 3051
	lea	rsi, .LC131[rip]
	lea	rdi, .LC235[rip]
	call	__assert_fail@PLT
.L575:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L573
	call	__stack_chk_fail@PLT
.L573:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE513:
	.size	ExhaustiveNJSearch, .-ExhaustiveNJSearch
	.section	.rodata
.LC236:
	.string	"BetterI\t%d\t%d\t%d\t%d\t%f\t%f\n"
.LC237:
	.string	"BetterJ\t%d\t%d\t%d\t%d\t%f\t%f\n"
	.text
	.globl	FastNJSearch
	.type	FastNJSearch, @function
FastNJSearch:
.LFB514:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], -1
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR 4[rax], -1
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -48[rbp]
	pxor	xmm0, xmm0
	movss	DWORD PTR 8[rax], xmm0
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 16[rax], xmm0
	mov	DWORD PTR -12[rbp], 0
	jmp	.L577
.L580:
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L578
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L578
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	ecx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	comiss	xmm0, xmm1
	jbe	.L578
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, [rdx+rax]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rsi]
	mov	rdx, QWORD PTR 8[rsi]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	eax, DWORD PTR 16[rsi]
	mov	DWORD PTR 16[rcx], eax
.L578:
	add	DWORD PTR -12[rbp], 1
.L577:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L580
	mov	eax, DWORD PTR fastest[rip]
	test	eax, eax
	jne	.L591
.L588:
	mov	DWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L582
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jns	.L590
.L582:
	lea	rcx, __PRETTY_FUNCTION__.66[rip]
	mov	edx, 3075
	lea	rsi, .LC131[rip]
	lea	rdi, .LC235[rip]
	call	__assert_fail@PLT
.L590:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, DWORD PTR -28[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	mov	r8d, 0
	mov	edi, eax
	call	SetBestHit
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	je	.L584
	mov	DWORD PTR -8[rbp], 1
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L584
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 16[rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm1, DWORD PTR 16[rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movq	rsi, xmm2
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	r8d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	mov	r9d, r8d
	mov	r8d, edi
	lea	rsi, .LC236[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L584:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -48[rbp]
	movss	DWORD PTR 8[rax], xmm0
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -48[rbp]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -48[rbp]
	movss	DWORD PTR 16[rax], xmm0
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -28[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	mov	r8d, 0
	mov	edi, eax
	call	SetBestHit
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	je	.L585
	mov	DWORD PTR -8[rbp], 1
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L586
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 16[rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm1, DWORD PTR 16[rax]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm1
	movq	rsi, xmm3
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	r8d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	mov	r9d, r8d
	mov	r8d, edi
	lea	rsi, .LC237[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L586:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -48[rbp]
	movss	DWORD PTR 8[rax], xmm0
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -48[rbp]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -48[rbp]
	movss	DWORD PTR 16[rax], xmm0
.L585:
	cmp	DWORD PTR -8[rbp], 0
	je	.L587
	mov	rax, QWORD PTR nHillBetter[rip]
	add	rax, 1
	mov	QWORD PTR nHillBetter[rip], rax
.L587:
	cmp	DWORD PTR -8[rbp], 0
	jne	.L588
.L591:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE514:
	.size	FastNJSearch, .-FastNJSearch
	.section	.rodata
	.align 8
.LC238:
	.string	"Token too long in tree file, token begins with\n%s\n"
	.text
	.globl	ReadTreeToken
	.type	ReadTreeToken, @function
ReadTreeToken:
.LFB515:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	fgetc@PLT
	mov	DWORD PTR -4[rbp], eax
	jmp	.L593
.L600:
	cmp	DWORD PTR -4[rbp], 40
	je	.L594
	cmp	DWORD PTR -4[rbp], 41
	je	.L594
	cmp	DWORD PTR -4[rbp], 58
	je	.L594
	cmp	DWORD PTR -4[rbp], 59
	je	.L594
	cmp	DWORD PTR -4[rbp], 44
	jne	.L595
.L594:
	cmp	DWORD PTR -8[rbp], 0
	jne	.L596
	mov	eax, DWORD PTR -8[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -8[rbp], edx
	mov	edx, DWORD PTR -4[rbp]
	mov	ecx, edx
	cdqe
	lea	rdx, buf.65[rip]
	mov	BYTE PTR [rax+rdx], cl
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, buf.65[rip]
	mov	BYTE PTR [rax+rdx], 0
	lea	rax, buf.65[rip]
	jmp	.L597
.L596:
	mov	rdx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -4[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	ungetc@PLT
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, buf.65[rip]
	mov	BYTE PTR [rax+rdx], 0
	lea	rax, buf.65[rip]
	jmp	.L597
.L595:
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	je	.L598
	cmp	DWORD PTR -8[rbp], 0
	jle	.L599
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, buf.65[rip]
	mov	BYTE PTR [rax+rdx], 0
	lea	rax, buf.65[rip]
	jmp	.L597
.L598:
	mov	eax, DWORD PTR -8[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -8[rbp], edx
	mov	edx, DWORD PTR -4[rbp]
	mov	ecx, edx
	cdqe
	lea	rdx, buf.65[rip]
	mov	BYTE PTR [rax+rdx], cl
	cmp	DWORD PTR -8[rbp], 4999
	jle	.L599
	mov	BYTE PTR buf.65[rip+4999], 0
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, buf.65[rip]
	lea	rsi, .LC238[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L599:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	fgetc@PLT
	mov	DWORD PTR -4[rbp], eax
.L593:
	cmp	DWORD PTR -4[rbp], -1
	jne	.L600
	cmp	DWORD PTR -8[rbp], 0
	jle	.L601
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, buf.65[rip]
	mov	BYTE PTR [rax+rdx], 0
	lea	rax, buf.65[rip]
	jmp	.L597
.L601:
	mov	eax, 0
.L597:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE515:
	.size	ReadTreeToken, .-ReadTreeToken
	.section	.rodata
.LC239:
	.string	"(End of file)"
	.align 8
.LC240:
	.string	"Tree parse error: unexpected token '%s' -- %s\n"
	.text
	.globl	ReadTreeError
	.type	ReadTreeError, @function
ReadTreeError:
.LFB516:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	cmp	QWORD PTR -16[rbp], 0
	je	.L603
	mov	rax, QWORD PTR -16[rbp]
	jmp	.L604
.L603:
	lea	rax, .LC239[rip]
.L604:
	mov	rdi, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC240[rip]
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE516:
	.size	ReadTreeError, .-ReadTreeError
	.section	.rodata
.LC241:
	.string	"parent >= 0"
.LC242:
	.string	"child >= 0"
.LC243:
	.string	"parents[child] < 0"
.LC244:
	.string	"children[parent].nChild < 3"
	.text
	.globl	ReadTreeAddChild
	.type	ReadTreeAddChild, @function
ReadTreeAddChild:
.LFB517:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	QWORD PTR -16[rbp], rdx
	mov	QWORD PTR -24[rbp], rcx
	cmp	DWORD PTR -4[rbp], 0
	jns	.L606
	lea	rcx, __PRETTY_FUNCTION__.64[rip]
	mov	edx, 3160
	lea	rsi, .LC131[rip]
	lea	rdi, .LC241[rip]
	call	__assert_fail@PLT
.L606:
	cmp	DWORD PTR -8[rbp], 0
	jns	.L607
	lea	rcx, __PRETTY_FUNCTION__.64[rip]
	mov	edx, 3161
	lea	rsi, .LC131[rip]
	lea	rdi, .LC242[rip]
	call	__assert_fail@PLT
.L607:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L608
	lea	rcx, __PRETTY_FUNCTION__.64[rip]
	mov	edx, 3162
	lea	rsi, .LC131[rip]
	lea	rdi, .LC243[rip]
	call	__assert_fail@PLT
.L608:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jle	.L609
	lea	rcx, __PRETTY_FUNCTION__.64[rip]
	mov	edx, 3163
	lea	rsi, .LC131[rip]
	lea	rdi, .LC244[rip]
	call	__assert_fail@PLT
.L609:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	lea	ecx, 1[rdx]
	mov	DWORD PTR [rax], ecx
	movsx	rax, edx
	mov	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR 4[rsi+rax*4], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE517:
	.size	ReadTreeAddChild, .-ReadTreeAddChild
	.section	.rodata
	.align 8
.LC245:
	.string	"not recognized as a sequence name"
	.align 8
.LC246:
	.string	"iSeqNonunique >= 0 && iSeqNonunique < unique->nSeq"
	.align 8
.LC247:
	.string	"iSeqUnique >= 0 && iSeqUnique < unique->nUnique"
	.align 8
.LC248:
	.string	"Found leaf uniq%d name %s child of %d\n"
	.align 8
.LC249:
	.string	"Skipped redundant leaf uniq%d name %s\n"
	.text
	.globl	ReadTreeMaybeAddLeaf
	.type	ReadTreeMaybeAddLeaf, @function
ReadTreeMaybeAddLeaf:
.LFB518:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	QWORD PTR -64[rbp], r9
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FindMatch
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	HashCount
	cmp	eax, 1
	je	.L611
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC245[rip]
	call	ReadTreeError
.L611:
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	HashFirst
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	js	.L612
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L618
.L612:
	lea	rcx, __PRETTY_FUNCTION__.63[rip]
	mov	edx, 3176
	lea	rsi, .LC131[rip]
	lea	rdi, .LC246[rip]
	call	__assert_fail@PLT
.L618:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	js	.L614
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -4[rbp], eax
	jl	.L619
.L614:
	lea	rcx, __PRETTY_FUNCTION__.63[rip]
	mov	edx, 3178
	lea	rsi, .LC131[rip]
	lea	rdi, .LC247[rip]
	call	__assert_fail@PLT
.L619:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L616
	mov	rcx, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	ReadTreeAddChild
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L620
	mov	rax, QWORD PTR stderr[rip]
	mov	esi, DWORD PTR -20[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	r8d, esi
	lea	rsi, .LC248[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L620
.L616:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L620
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -4[rbp]
	lea	rsi, .LC249[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L620:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE518:
	.size	ReadTreeMaybeAddLeaf, .-ReadTreeMaybeAddLeaf
	.section	.rodata
.LC250:
	.string	"Removing node %d parent %d\n"
.LC251:
	.string	"parents[node] >= 0"
.LC252:
	.string	"oldn < pc->nChild"
.LC253:
	.string	"nc->nChild<=2"
.LC254:
	.string	"pc->nChild < 3"
.LC255:
	.string	"pc->nChild + nc->nChild <= 3"
	.align 8
.LC256:
	.string	"Repointing parent %d to child %d\n"
	.text
	.globl	ReadTreeRemove
	.type	ReadTreeRemove, @function
ReadTreeRemove:
.LFB519:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L622
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -52[rbp]
	lea	rsi, .LC250[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L622:
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L623
	lea	rcx, __PRETTY_FUNCTION__.62[rip]
	mov	edx, 3193
	lea	rsi, .LC131[rip]
	lea	rdi, .LC251[rip]
	call	__assert_fail@PLT
.L623:
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -32[rbp], 0
	jmp	.L624
.L627:
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR -32[rbp]
	movsx	rdx, edx
	mov	eax, DWORD PTR 4[rax+rdx*4]
	cmp	DWORD PTR -52[rbp], eax
	je	.L638
	add	DWORD PTR -32[rbp], 1
.L624:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L627
	jmp	.L626
.L638:
	nop
.L626:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L628
	lea	rcx, __PRETTY_FUNCTION__.62[rip]
	mov	edx, 3202
	lea	rsi, .LC131[rip]
	lea	rdi, .LC252[rip]
	call	__assert_fail@PLT
.L628:
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -28[rbp], eax
	jmp	.L629
.L630:
	mov	eax, DWORD PTR -28[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -16[rbp]
	movsx	rdx, edx
	mov	ecx, DWORD PTR 4[rax+rdx*4]
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	DWORD PTR 4[rax+rdx*4], ecx
	add	DWORD PTR -28[rbp], 1
.L629:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	sub	eax, 1
	cmp	DWORD PTR -28[rbp], eax
	jl	.L630
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jle	.L639
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jle	.L632
	lea	rcx, __PRETTY_FUNCTION__.62[rip]
	mov	edx, 3213
	lea	rsi, .LC131[rip]
	lea	rdi, .LC253[rip]
	call	__assert_fail@PLT
.L632:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jle	.L633
	lea	rcx, __PRETTY_FUNCTION__.62[rip]
	mov	edx, 3214
	lea	rsi, .LC131[rip]
	lea	rdi, .LC254[rip]
	call	__assert_fail@PLT
.L633:
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	cmp	eax, 3
	jle	.L634
	lea	rcx, __PRETTY_FUNCTION__.62[rip]
	mov	edx, 3215
	lea	rsi, .LC131[rip]
	lea	rdi, .LC255[rip]
	call	__assert_fail@PLT
.L634:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L635
.L637:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L636
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	mov	ecx, DWORD PTR 4[rax+rdx*4]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -20[rbp]
	lea	rsi, .LC256[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L636:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], ecx
	mov	rdx, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR -24[rbp]
	movsx	rcx, ecx
	mov	ecx, DWORD PTR 4[rdx+rcx*4]
	mov	rdx, QWORD PTR -16[rbp]
	cdqe
	mov	DWORD PTR 4[rdx+rax*4], ecx
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	mov	eax, DWORD PTR 4[rax+rdx*4]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -24[rbp], 1
.L635:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L637
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 0
.L639:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE519:
	.size	ReadTreeRemove, .-ReadTreeRemove
	.section	.rodata
.LC257:
	.string	"NJ->nSeq == unique->nUnique"
.LC258:
	.string	"No '(' at start"
.LC259:
	.string	"while reading parentheses"
.LC260:
	.string	"new < maxnodes"
	.align 8
.LC261:
	.string	"Added internal child %d of %d, stack size increase to %d\n"
.LC262:
	.string	"stack_size < maxnodes"
.LC263:
	.string	"unbalanced parentheses"
.LC264:
	.string	"unexpected '(' after ')'"
	.align 8
.LC265:
	.string	"not recognized as a branch length"
	.align 8
.LC266:
	.string	"Up to nUp=%d stack size %d at %d\n"
.LC267:
	.string	"too many ')'"
	.align 8
.LC268:
	.string	"Warning while parsing tree: non-numeric label %s for internal node\n"
.LC269:
	.string	"unexpected token"
	.align 8
.LC270:
	.string	"Alignment sequence %d (unique %d) absent from input tree\nThe starting tree (the argument to -intree) must include all sequences in the alignment!\n"
.LC271:
	.string	"Changed root from %d to %d\n"
.LC272:
	.string	"Added %d to stack\n"
	.align 8
.LC273:
	.string	"child >= 0 && child < maxnodes"
	.align 8
.LC274:
	.string	"Simplfied node %d has parent %d nchild %d\n"
	.align 8
.LC275:
	.string	"node == root || children[node].nChild > 1"
	.align 8
.LC276:
	.string	"Map %d to %d (parent %d nchild %d)\n"
	.align 8
.LC277:
	.string	"children[node].child[i] >= 0 && children[node].child[i] < maxnodes"
	.align 8
.LC278:
	.string	"c->child[j] >= 0 && c->child[j] < NJ->maxnode && NJ->parent[c->child[j]] == i"
.LC279:
	.string	"NJ->parent[NJ->root] < 0"
	.text
	.globl	ReadTree
	.type	ReadTree, @function
ReadTree:
.LFB520:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -136[rbp], rdi
	mov	QWORD PTR -144[rbp], rsi
	mov	QWORD PTR -152[rbp], rdx
	mov	QWORD PTR -160[rbp], rcx
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	je	.L641
	lea	rcx, __PRETTY_FUNCTION__.61[rip]
	mov	edx, 3231
	lea	rsi, .LC131[rip]
	lea	rdi, .LC257[rip]
	call	__assert_fail@PLT
.L641:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -84[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -124[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	sal	rax, 4
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR -124[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -124[rbp], edx
	mov	DWORD PTR -120[rbp], eax
	mov	DWORD PTR -116[rbp], 0
	jmp	.L642
.L643:
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	add	DWORD PTR -116[rbp], 1
.L642:
	mov	eax, DWORD PTR -116[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L643
	mov	DWORD PTR -112[rbp], 1
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -120[rbp]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR -108[rbp], 0
	mov	DWORD PTR -104[rbp], 0
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	ReadTreeToken
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	je	.L644
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 40
	je	.L646
.L644:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC258[rip]
	call	ReadTreeError
	jmp	.L646
.L673:
	cmp	DWORD PTR -108[rbp], 0
	jle	.L647
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 40
	jne	.L648
	add	DWORD PTR -108[rbp], 1
	jmp	.L646
.L648:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 44
	je	.L650
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 59
	je	.L650
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 58
	je	.L650
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 41
	jne	.L652
.L650:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC259[rip]
	call	ReadTreeError
	jmp	.L646
.L655:
	mov	eax, DWORD PTR -124[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -124[rbp], edx
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L653
	lea	rcx, __PRETTY_FUNCTION__.61[rip]
	mov	edx, 3271
	lea	rsi, .LC131[rip]
	lea	rdi, .LC260[rip]
	call	__assert_fail@PLT
.L653:
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR -80[rbp]
	mov	edi, eax
	call	ReadTreeAddChild
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L654
	mov	eax, DWORD PTR -112[rbp]
	lea	esi, 1[rax]
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -80[rbp]
	mov	r8d, esi
	lea	rsi, .LC261[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L654:
	mov	eax, DWORD PTR -112[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -112[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -112[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L652
	lea	rcx, __PRETTY_FUNCTION__.61[rip]
	mov	edx, 3277
	lea	rsi, .LC131[rip]
	lea	rdi, .LC262[rip]
	call	__assert_fail@PLT
.L652:
	mov	eax, DWORD PTR -108[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -108[rbp], edx
	test	eax, eax
	jg	.L655
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	r8, QWORD PTR -48[rbp]
	mov	rdi, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	edi, eax
	call	ReadTreeMaybeAddLeaf
	jmp	.L646
.L647:
	cmp	DWORD PTR -104[rbp], 0
	jle	.L656
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 59
	jne	.L657
	mov	eax, DWORD PTR -104[rbp]
	cmp	eax, DWORD PTR -112[rbp]
	je	.L728
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC263[rip]
	call	ReadTreeError
	jmp	.L646
.L657:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 41
	jne	.L660
	add	DWORD PTR -104[rbp], 1
	jmp	.L646
.L660:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 40
	jne	.L661
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC264[rip]
	call	ReadTreeError
	jmp	.L646
.L661:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 58
	jne	.L662
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	ReadTreeToken
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	je	.L663
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	je	.L646
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	jne	.L646
.L663:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC265[rip]
	call	ReadTreeError
	jmp	.L646
.L662:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 44
	jne	.L664
	jmp	.L665
.L667:
	sub	DWORD PTR -112[rbp], 1
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L666
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -112[rbp]
	mov	edx, DWORD PTR -104[rbp]
	mov	r8d, esi
	lea	rsi, .LC266[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L666:
	cmp	DWORD PTR -112[rbp], 0
	jg	.L665
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC267[rip]
	call	ReadTreeError
.L665:
	mov	eax, DWORD PTR -104[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -104[rbp], edx
	test	eax, eax
	jg	.L667
	mov	DWORD PTR -104[rbp], 0
	jmp	.L646
.L664:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	je	.L646
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	jne	.L646
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -32[rbp]
	lea	rsi, .LC268[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L646
.L656:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 40
	jne	.L668
	mov	DWORD PTR -108[rbp], 1
	jmp	.L646
.L668:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 41
	jne	.L669
	mov	DWORD PTR -104[rbp], 1
	jmp	.L646
.L669:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 58
	jne	.L670
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	ReadTreeToken
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	je	.L671
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	je	.L646
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	jne	.L646
.L671:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC265[rip]
	call	ReadTreeError
	jmp	.L646
.L670:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 44
	je	.L646
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 59
	jne	.L672
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC269[rip]
	call	ReadTreeError
	jmp	.L646
.L672:
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	r8, QWORD PTR -48[rbp]
	mov	rdi, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	edi, eax
	call	ReadTreeMaybeAddLeaf
.L646:
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	ReadTreeToken
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	jne	.L673
	jmp	.L659
.L728:
	nop
.L659:
	mov	DWORD PTR -116[rbp], 0
	jmp	.L674
.L676:
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L675
	mov	rax, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -116[rbp]
	lea	rsi, .LC270[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L675:
	add	DWORD PTR -116[rbp], 1
.L674:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -116[rbp], eax
	jl	.L676
.L686:
	mov	DWORD PTR -100[rbp], 0
	mov	DWORD PTR -112[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -120[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L677
.L685:
	sub	DWORD PTR -112[rbp], 1
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -64[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -64[rbp], eax
	jl	.L677
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jg	.L678
	mov	eax, DWORD PTR -64[rbp]
	cmp	eax, DWORD PTR -120[rbp]
	je	.L679
	mov	edx, DWORD PTR -64[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	ReadTreeRemove
	add	DWORD PTR -100[rbp], 1
	jmp	.L677
.L679:
	mov	eax, DWORD PTR -64[rbp]
	cmp	eax, DWORD PTR -120[rbp]
	jne	.L677
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L677
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	add	DWORD PTR -100[rbp], 1
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L680
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -60[rbp]
	mov	edx, DWORD PTR -120[rbp]
	lea	rsi, .LC271[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L680:
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -120[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -112[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR [rdx], eax
	jmp	.L677
.L678:
	mov	DWORD PTR -96[rbp], 0
	jmp	.L681
.L684:
	mov	eax, DWORD PTR -112[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L682
	lea	rcx, __PRETTY_FUNCTION__.61[rip]
	mov	edx, 3372
	lea	rsi, .LC131[rip]
	lea	rdi, .LC262[rip]
	call	__assert_fail@PLT
.L682:
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -112[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -112[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rcx+rax*4]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L683
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC272[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L683:
	add	DWORD PTR -96[rbp], 1
.L681:
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -96[rbp], eax
	jl	.L684
.L677:
	cmp	DWORD PTR -112[rbp], 0
	jg	.L685
	cmp	DWORD PTR -100[rbp], 0
	jg	.L686
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L687
	mov	DWORD PTR -116[rbp], 0
	jmp	.L688
.L692:
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	mov	DWORD PTR -76[rbp], eax
	cmp	DWORD PTR -76[rbp], 0
	js	.L689
	mov	eax, DWORD PTR -76[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L725
.L689:
	lea	rcx, __PRETTY_FUNCTION__.61[rip]
	mov	edx, 3386
	lea	rsi, .LC131[rip]
	lea	rdi, .LC273[rip]
	call	__assert_fail@PLT
.L725:
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L691
	mov	edx, DWORD PTR -76[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	ReadTreeRemove
	jmp	.L687
.L691:
	add	DWORD PTR -116[rbp], 1
.L688:
	cmp	DWORD PTR -116[rbp], 1
	jle	.L692
.L687:
	mov	DWORD PTR -116[rbp], 0
	jmp	.L693
.L695:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L694
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	esi, DWORD PTR [rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -116[rbp]
	mov	r8d, esi
	lea	rsi, .LC274[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L694:
	add	DWORD PTR -116[rbp], 1
.L693:
	mov	eax, DWORD PTR -116[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L695
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -116[rbp], 0
	jmp	.L696
.L697:
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -116[rbp], 1
.L696:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -116[rbp], eax
	jl	.L697
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -116[rbp], eax
	jmp	.L698
.L699:
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	add	DWORD PTR -116[rbp], 1
.L698:
	mov	eax, DWORD PTR -116[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L699
	mov	DWORD PTR -112[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -120[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L700
.L705:
	sub	DWORD PTR -112[rbp], 1
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -68[rbp], eax
	jl	.L700
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -120[rbp]
	je	.L701
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jg	.L701
	lea	rcx, __PRETTY_FUNCTION__.61[rip]
	mov	edx, 3410
	lea	rsi, .LC131[rip]
	lea	rdi, .LC275[rip]
	call	__assert_fail@PLT
.L701:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 48[rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -136[rbp]
	mov	DWORD PTR 48[rdx], ecx
	mov	edx, DWORD PTR -68[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	mov	DWORD PTR [rdx], eax
	mov	DWORD PTR -116[rbp], 0
	jmp	.L702
.L704:
	mov	eax, DWORD PTR -112[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L703
	lea	rcx, __PRETTY_FUNCTION__.61[rip]
	mov	edx, 3413
	lea	rsi, .LC131[rip]
	lea	rdi, .LC262[rip]
	call	__assert_fail@PLT
.L703:
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -112[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -112[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rcx+rax*4]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -116[rbp], 1
.L702:
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -116[rbp], eax
	jl	.L704
.L700:
	cmp	DWORD PTR -112[rbp], 0
	jg	.L705
	mov	DWORD PTR -116[rbp], 0
	jmp	.L706
.L708:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L707
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	edi, DWORD PTR [rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	esi, DWORD PTR [rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -116[rbp]
	mov	r9d, edi
	mov	r8d, esi
	lea	rsi, .LC276[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L707:
	add	DWORD PTR -116[rbp], 1
.L706:
	mov	eax, DWORD PTR -116[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L708
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	DWORD PTR 128[rax], edx
	mov	DWORD PTR -92[rbp], 0
	jmp	.L709
.L715:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -72[rbp], eax
	cmp	DWORD PTR -72[rbp], 0
	js	.L710
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR [rcx]
	mov	DWORD PTR [rdx], eax
	mov	DWORD PTR -116[rbp], 0
	jmp	.L711
.L714:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	test	eax, eax
	js	.L712
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	cmp	DWORD PTR -84[rbp], eax
	jg	.L726
.L712:
	lea	rcx, __PRETTY_FUNCTION__.61[rip]
	mov	edx, 3431
	lea	rsi, .LC131[rip]
	lea	rdi, .LC277[rip]
	call	__assert_fail@PLT
.L726:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 4
	add	rcx, rax
	mov	edx, DWORD PTR [rdx]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	mov	DWORD PTR 4[rcx+rax*4], edx
	add	DWORD PTR -116[rbp], 1
.L711:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -116[rbp], eax
	jl	.L714
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L710
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR [rcx]
	mov	DWORD PTR [rdx], eax
.L710:
	add	DWORD PTR -92[rbp], 1
.L709:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L715
	mov	DWORD PTR -116[rbp], 0
	jmp	.L716
.L721:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -88[rbp], 0
	jmp	.L717
.L720:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -88[rbp]
	movsx	rdx, edx
	mov	eax, DWORD PTR 4[rax+rdx*4]
	test	eax, eax
	js	.L718
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -88[rbp]
	movsx	rdx, edx
	mov	edx, DWORD PTR 4[rax+rdx*4]
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	edx, eax
	jge	.L718
	mov	rax, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -88[rbp]
	movsx	rdx, edx
	mov	eax, DWORD PTR 4[rax+rdx*4]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -116[rbp], eax
	je	.L727
.L718:
	lea	rcx, __PRETTY_FUNCTION__.61[rip]
	mov	edx, 3444
	lea	rsi, .LC131[rip]
	lea	rdi, .LC278[rip]
	call	__assert_fail@PLT
.L727:
	add	DWORD PTR -88[rbp], 1
.L717:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -88[rbp], eax
	jl	.L720
	add	DWORD PTR -116[rbp], 1
.L716:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -116[rbp], eax
	jl	.L721
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 128[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L722
	lea	rcx, __PRETTY_FUNCTION__.61[rip]
	mov	edx, 3446
	lea	rsi, .LC131[rip]
	lea	rdi, .LC279[rip]
	call	__assert_fail@PLT
.L722:
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -92[rbp], eax
	jmp	.L723
.L724:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -92[rbp], eax
	jl	.L723
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -92[rbp], eax
	je	.L723
	mov	rcx, QWORD PTR .LC222[rip]
	mov	edx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -136[rbp]
	movq	xmm0, rcx
	mov	esi, edx
	mov	rdi, rax
	call	SetProfile
.L723:
	mov	rdx, QWORD PTR -16[rbp]
	mov	rsi, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR -92[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -92[rbp], eax
	cmp	DWORD PTR -92[rbp], 0
	jns	.L724
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -16[rbp], rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE520:
	.size	ReadTree, .-ReadTree
	.section	.rodata
.LC280:
	.string	"%d"
.LC281:
	.string	":%.4f"
.LC282:
	.string	")%d"
.LC283:
	.string	";\n"
	.text
	.globl	PrintNJInternal
	.type	PrintNJInternal, @function
PrintNJInternal:
.LFB521:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	eax, edx
	mov	BYTE PTR -68[rbp], al
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jle	.L740
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -40[rbp], 1
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 128[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], 0
	jmp	.L732
.L739:
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	sub	DWORD PTR -40[rbp], 1
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jge	.L733
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -32[rbp], eax
	je	.L734
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	mov	edi, 44
	call	fputc@PLT
.L734:
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC280[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	cmp	BYTE PTR -68[rbp], 0
	je	.L732
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movq	rdx, xmm1
	mov	rax, QWORD PTR -56[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC281[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	jmp	.L732
.L733:
	cmp	DWORD PTR -28[rbp], 0
	je	.L735
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC282[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	cmp	BYTE PTR -68[rbp], 0
	je	.L732
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	movq	rdx, xmm2
	mov	rax, QWORD PTR -56[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC281[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	jmp	.L732
.L735:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -32[rbp], eax
	je	.L736
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -32[rbp], eax
	je	.L736
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	mov	edi, 44
	call	fputc@PLT
.L736:
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	mov	edi, 40
	call	fputc@PLT
	add	DWORD PTR -40[rbp], 1
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	DWORD PTR 4[rax], 1
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	sub	eax, 1
	mov	DWORD PTR -36[rbp], eax
	jmp	.L737
.L738:
	add	DWORD PTR -40[rbp], 1
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -36[rbp]
	movsx	rdx, edx
	mov	eax, DWORD PTR 4[rax+rdx*4]
	mov	DWORD PTR [rcx], eax
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	DWORD PTR 4[rax], 0
	sub	DWORD PTR -36[rbp], 1
.L737:
	cmp	DWORD PTR -36[rbp], 0
	jns	.L738
.L732:
	cmp	DWORD PTR -40[rbp], 0
	jg	.L739
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rax
	mov	edx, 2
	mov	esi, 1
	lea	rdi, .LC283[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -24[rbp], rax
	jmp	.L729
.L740:
	nop
.L729:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE521:
	.size	PrintNJInternal, .-PrintNJInternal
	.section	.rodata
	.align 8
.LC284:
	.string	"first >= 0 && first < unique->nSeq"
.LC285:
	.string	"('%s':0.0"
.LC286:
	.string	"(%s:0.0"
.LC287:
	.string	"iName < unique->nSeq"
.LC288:
	.string	",'%s':0.0"
.LC289:
	.string	",%s:0.0"
.LC290:
	.string	");\n"
.LC291:
	.string	"'%s'"
.LC292:
	.string	":%.5f"
.LC293:
	.string	")%.3f:%.5f"
.LC294:
	.string	"):%.5f"
	.text
	.globl	PrintNJ
	.type	PrintNJ, @function
PrintNJ:
.LFB522:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	QWORD PTR -96[rbp], rcx
	mov	eax, r8d
	mov	edx, r9d
	mov	BYTE PTR -100[rbp], al
	mov	eax, edx
	mov	BYTE PTR -104[rbp], al
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L742
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L742
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 0
	js	.L743
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -40[rbp], eax
	jl	.L776
.L743:
	lea	rcx, __PRETTY_FUNCTION__.60[rip]
	mov	edx, 3521
	lea	rsi, .LC131[rip]
	lea	rdi, .LC284[rip]
	call	__assert_fail@PLT
.L776:
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	cmp	BYTE PTR -104[rbp], 0
	je	.L745
	lea	rax, .LC285[rip]
	jmp	.L746
.L745:
	lea	rax, .LC286[rip]
.L746:
	mov	rcx, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -56[rbp], eax
	jmp	.L747
.L751:
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -56[rbp], eax
	jl	.L748
	lea	rcx, __PRETTY_FUNCTION__.60[rip]
	mov	edx, 3525
	lea	rsi, .LC131[rip]
	lea	rdi, .LC287[rip]
	call	__assert_fail@PLT
.L748:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	cmp	BYTE PTR -104[rbp], 0
	je	.L749
	lea	rax, .LC288[rip]
	jmp	.L750
.L749:
	lea	rax, .LC289[rip]
.L750:
	mov	rcx, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -56[rbp], eax
.L747:
	cmp	DWORD PTR -56[rbp], 0
	jns	.L751
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rax
	mov	edx, 3
	mov	esi, 1
	lea	rdi, .LC290[rip]
	call	fwrite@PLT
	jmp	.L741
.L742:
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -52[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR 128[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], 0
	jmp	.L753
.L775:
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	sub	DWORD PTR -52[rbp], 1
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -36[rbp], eax
	jge	.L754
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -36[rbp], eax
	je	.L755
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	edi, 44
	call	fputc@PLT
.L755:
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], 0
	js	.L756
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L777
.L756:
	lea	rcx, __PRETTY_FUNCTION__.60[rip]
	mov	edx, 3549
	lea	rsi, .LC131[rip]
	lea	rdi, .LC284[rip]
	call	__assert_fail@PLT
.L777:
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, -1
	jne	.L758
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	cmp	BYTE PTR -104[rbp], 0
	je	.L759
	lea	rax, .LC291[rip]
	jmp	.L760
.L759:
	lea	rax, .LC141[rip]
.L760:
	mov	rcx, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L761
.L758:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	cmp	BYTE PTR -104[rbp], 0
	je	.L762
	lea	rax, .LC285[rip]
	jmp	.L763
.L762:
	lea	rax, .LC286[rip]
.L763:
	mov	rcx, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -48[rbp], eax
	jmp	.L764
.L768:
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -48[rbp], eax
	jl	.L765
	lea	rcx, __PRETTY_FUNCTION__.60[rip]
	mov	edx, 3557
	lea	rsi, .LC131[rip]
	lea	rdi, .LC287[rip]
	call	__assert_fail@PLT
.L765:
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	cmp	BYTE PTR -104[rbp], 0
	je	.L766
	lea	rax, .LC288[rip]
	jmp	.L767
.L766:
	lea	rax, .LC289[rip]
.L767:
	mov	rcx, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -48[rbp], eax
.L764:
	cmp	DWORD PTR -48[rbp], 0
	jns	.L768
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	edi, 41
	call	fputc@PLT
.L761:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	movq	rdx, xmm2
	mov	rax, QWORD PTR -72[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC292[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	jmp	.L753
.L754:
	cmp	DWORD PTR -32[rbp], 0
	je	.L769
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -36[rbp], eax
	jne	.L770
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	edi, 41
	call	fputc@PLT
	jmp	.L753
.L770:
	cmp	BYTE PTR -100[rbp], 0
	je	.L771
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm1
	movq	rdx, xmm3
	mov	rax, QWORD PTR -72[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC293[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	jmp	.L753
.L771:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm0
	movq	rdx, xmm4
	mov	rax, QWORD PTR -72[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC294[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	jmp	.L753
.L769:
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -36[rbp], eax
	je	.L772
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -36[rbp], eax
	je	.L772
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	edi, 44
	call	fputc@PLT
.L772:
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	edi, 40
	call	fputc@PLT
	add	DWORD PTR -52[rbp], 1
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	DWORD PTR 4[rax], 1
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	sub	eax, 1
	mov	DWORD PTR -44[rbp], eax
	jmp	.L773
.L774:
	add	DWORD PTR -52[rbp], 1
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -44[rbp]
	movsx	rdx, edx
	mov	eax, DWORD PTR 4[rax+rdx*4]
	mov	DWORD PTR [rcx], eax
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	DWORD PTR 4[rax], 0
	sub	DWORD PTR -44[rbp], 1
.L773:
	cmp	DWORD PTR -44[rbp], 0
	jns	.L774
.L753:
	cmp	DWORD PTR -52[rbp], 0
	jg	.L775
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rax
	mov	edx, 2
	mov	esi, 1
	lea	rdi, .LC283[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -24[rbp], rax
.L741:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE522:
	.size	PrintNJ, .-PrintNJ
	.section	.rodata
.LC295:
	.string	"Error reading header line\n"
.LC296:
	.string	"'\t\r\n"
.LC297:
	.string	"(),: \t\r\n"
.LC298:
	.string	" \t\r\n"
	.align 8
.LC299:
	.string	"out-seqs[nSeq-1] == nKeep + nOld"
	.align 8
.LC300:
	.string	"No sequence data for last entry %s\n"
	.align 8
.LC301:
	.string	"Empty header line followed by EOF\n"
.LC302:
	.string	"%d%d"
.LC303:
	.string	"Error parsing header line:%s\n"
.LC304:
	.string	"No name in phylip line %s"
.LC305:
	.string	"No sequence in phylip line %s"
	.align 8
.LC306:
	.string	"No empty line between sequence blocks (is the sequence count wrong?)\n"
	.align 8
.LC307:
	.string	"Wrong name in phylip line %s\nExpected %s\n"
	.align 8
.LC308:
	.string	"Too many characters (expected %d) for sequence named %s\nSo far have:\n%s\n"
	.align 8
.LC309:
	.string	"Read iSeq %d name %s seqsofar %s\n"
	.align 8
.LC310:
	.string	"Wrong number of sequences: expected %d\n"
	.align 8
.LC311:
	.string	"Wrong number of characters for %s: expected %d but have %d instead.\nThis sequence may be truncated, or another sequence may be too long.\n"
	.align 8
.LC312:
	.string	"Warning! Found \".\" character(s). These are treated as gaps\n"
.LC313:
	.string	"Error reading input file\n"
	.text
	.globl	ReadAlignment
	.type	ReadAlignment, @function
ReadAlignment:
.LFB523:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 1096
	.cfi_offset 3, -24
	mov	QWORD PTR -5192[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -5196[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -5172[rbp], 0
	mov	DWORD PTR -5168[rbp], 0
	mov	QWORD PTR -5112[rbp], 0
	mov	QWORD PTR -5104[rbp], 0
	mov	QWORD PTR -5024[rbp], 0
	mov	QWORD PTR -5016[rbp], 0
	lea	rdx, -5008[rbp]
	mov	eax, 0
	mov	ecx, 623
	mov	rdi, rdx
	rep stosq
	mov	rdx, QWORD PTR -5192[rbp]
	lea	rax, -5024[rbp]
	mov	esi, 5000
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L779
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 26
	mov	esi, 1
	lea	rdi, .LC295[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L779:
	mov	DWORD PTR -5164[rbp], 100
	movzx	eax, BYTE PTR -5024[rbp]
	cmp	al, 62
	jne	.L780
	cmp	BYTE PTR -5196[rbp], 0
	je	.L781
	lea	rax, .LC296[rip]
	jmp	.L782
.L781:
	lea	rax, .LC297[rip]
.L782:
	mov	QWORD PTR -5048[rbp], rax
	lea	rax, .LC298[rip]
	mov	QWORD PTR -5040[rbp], rax
	mov	eax, DWORD PTR -5164[rbp]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -5104[rbp], rax
	mov	eax, DWORD PTR -5164[rbp]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -5112[rbp], rax
.L812:
	movzx	eax, BYTE PTR -5024[rbp]
	cmp	al, 62
	jne	.L783
	lea	rax, -5024[rbp]
	add	rax, 1
	mov	QWORD PTR -5096[rbp], rax
	jmp	.L784
.L791:
	mov	rax, QWORD PTR -5048[rbp]
	mov	QWORD PTR -5088[rbp], rax
	jmp	.L785
.L788:
	mov	rax, QWORD PTR -5096[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -5088[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L786
	mov	rax, QWORD PTR -5096[rbp]
	mov	BYTE PTR [rax], 0
	jmp	.L787
.L786:
	add	QWORD PTR -5088[rbp], 1
.L785:
	mov	rax, QWORD PTR -5088[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L788
.L787:
	mov	rax, QWORD PTR -5096[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L863
	add	QWORD PTR -5096[rbp], 1
.L784:
	mov	rax, QWORD PTR -5096[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L791
	jmp	.L790
.L863:
	nop
.L790:
	mov	eax, DWORD PTR -5172[rbp]
	add	eax, 1
	mov	DWORD PTR -5172[rbp], eax
	mov	eax, DWORD PTR -5172[rbp]
	cmp	DWORD PTR -5164[rbp], eax
	jge	.L792
	mov	eax, DWORD PTR -5164[rbp]
	add	eax, eax
	mov	DWORD PTR -5120[rbp], eax
	mov	eax, DWORD PTR -5120[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	eax, DWORD PTR -5164[rbp]
	cdqe
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -5104[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	myrealloc
	mov	QWORD PTR -5104[rbp], rax
	mov	eax, DWORD PTR -5120[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	eax, DWORD PTR -5164[rbp]
	cdqe
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	myrealloc
	mov	QWORD PTR -5112[rbp], rax
	mov	eax, DWORD PTR -5120[rbp]
	mov	DWORD PTR -5164[rbp], eax
.L792:
	lea	rax, -5024[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -5024[rbp]
	add	rax, 1
	mov	ecx, DWORD PTR -5172[rbp]
	movsx	rcx, ecx
	sal	rcx, 3
	lea	rsi, -8[rcx]
	mov	rcx, QWORD PTR -5112[rbp]
	lea	rbx, [rsi+rcx]
	mov	rsi, rdx
	mov	rdi, rax
	call	mymemdup
	mov	QWORD PTR [rbx], rax
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	QWORD PTR [rax], 0
	jmp	.L793
.L783:
	mov	DWORD PTR -5160[rbp], 0
	lea	rax, -5024[rbp]
	mov	QWORD PTR -5080[rbp], rax
	jmp	.L794
.L800:
	mov	rax, QWORD PTR -5040[rbp]
	mov	QWORD PTR -5072[rbp], rax
	jmp	.L795
.L798:
	mov	rax, QWORD PTR -5080[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -5072[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	je	.L864
	add	QWORD PTR -5072[rbp], 1
.L795:
	mov	rax, QWORD PTR -5072[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L798
	jmp	.L797
.L864:
	nop
.L797:
	mov	rax, QWORD PTR -5080[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -5072[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	je	.L799
	add	DWORD PTR -5160[rbp], 1
.L799:
	add	QWORD PTR -5080[rbp], 1
.L794:
	mov	rax, QWORD PTR -5080[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L800
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L801
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	jmp	.L802
.L801:
	mov	eax, 0
.L802:
	mov	DWORD PTR -5124[rbp], eax
	mov	edx, DWORD PTR -5124[rbp]
	mov	eax, DWORD PTR -5160[rbp]
	add	eax, edx
	add	eax, 1
	movsx	rdx, eax
	mov	eax, DWORD PTR -5124[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, -8[rax]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	ecx, DWORD PTR -5172[rbp]
	movsx	rcx, ecx
	sal	rcx, 3
	lea	rdi, -8[rcx]
	mov	rcx, QWORD PTR -5104[rbp]
	lea	rbx, [rdi+rcx]
	mov	ecx, 0
	mov	rdi, rax
	call	myrealloc
	mov	QWORD PTR [rbx], rax
	mov	edx, DWORD PTR -5124[rbp]
	mov	eax, DWORD PTR -5160[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -5168[rbp]
	cmp	edx, eax
	jle	.L803
	mov	edx, DWORD PTR -5124[rbp]
	mov	eax, DWORD PTR -5160[rbp]
	add	eax, edx
	mov	DWORD PTR -5168[rbp], eax
.L803:
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -5124[rbp]
	cdqe
	add	rax, rdx
	mov	QWORD PTR -5064[rbp], rax
	lea	rax, -5024[rbp]
	mov	QWORD PTR -5080[rbp], rax
	jmp	.L804
.L810:
	mov	rax, QWORD PTR -5040[rbp]
	mov	QWORD PTR -5072[rbp], rax
	jmp	.L805
.L808:
	mov	rax, QWORD PTR -5080[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -5072[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	je	.L865
	add	QWORD PTR -5072[rbp], 1
.L805:
	mov	rax, QWORD PTR -5072[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L808
	jmp	.L807
.L865:
	nop
.L807:
	mov	rax, QWORD PTR -5080[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -5072[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	je	.L809
	mov	rax, QWORD PTR -5080[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -5064[rbp]
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -5064[rbp], 1
.L809:
	add	QWORD PTR -5080[rbp], 1
.L804:
	mov	rax, QWORD PTR -5080[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L810
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -5064[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	ecx, DWORD PTR -5160[rbp]
	mov	eax, DWORD PTR -5124[rbp]
	add	eax, ecx
	cdqe
	cmp	rdx, rax
	je	.L811
	lea	rcx, __PRETTY_FUNCTION__.59[rip]
	mov	edx, 3663
	lea	rsi, .LC131[rip]
	lea	rdi, .LC299[rip]
	call	__assert_fail@PLT
.L811:
	mov	rax, QWORD PTR -5064[rbp]
	mov	BYTE PTR [rax], 0
.L793:
	mov	rdx, QWORD PTR -5192[rbp]
	lea	rax, -5024[rbp]
	mov	esi, 5000
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L812
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L813
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC300[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L813:
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	eax, DWORD PTR -5164[rbp]
	cdqe
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	myrealloc
	mov	QWORD PTR -5112[rbp], rax
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	eax, DWORD PTR -5164[rbp]
	cdqe
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -5104[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	myrealloc
	mov	QWORD PTR -5104[rbp], rax
	jmp	.L814
.L780:
	movzx	eax, BYTE PTR -5024[rbp]
	cmp	al, 10
	je	.L815
	movzx	eax, BYTE PTR -5024[rbp]
	cmp	al, 13
	jne	.L816
.L815:
	mov	rdx, QWORD PTR -5192[rbp]
	lea	rax, -5024[rbp]
	mov	esi, 5000
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L816
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 34
	mov	esi, 1
	lea	rdi, .LC301[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L816:
	lea	rcx, -5168[rbp]
	lea	rdx, -5172[rbp]
	lea	rax, -5024[rbp]
	lea	rsi, .LC302[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	cmp	eax, 2
	jne	.L817
	mov	eax, DWORD PTR -5172[rbp]
	test	eax, eax
	jle	.L817
	mov	eax, DWORD PTR -5168[rbp]
	test	eax, eax
	jg	.L818
.L817:
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, -5024[rbp]
	lea	rsi, .LC303[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L818:
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -5112[rbp], rax
	mov	eax, DWORD PTR -5172[rbp]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -5104[rbp], rax
	mov	eax, DWORD PTR -5172[rbp]
	mov	DWORD PTR -5164[rbp], eax
	mov	DWORD PTR -5156[rbp], 0
	jmp	.L819
.L820:
	mov	eax, DWORD PTR -5156[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	QWORD PTR [rax], 0
	mov	eax, DWORD PTR -5168[rbp]
	add	eax, 1
	cdqe
	mov	edx, DWORD PTR -5156[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -5104[rbp]
	lea	rbx, [rcx+rdx]
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR [rbx], rax
	mov	eax, DWORD PTR -5156[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	BYTE PTR [rax], 0
	add	DWORD PTR -5156[rbp], 1
.L819:
	mov	eax, DWORD PTR -5172[rbp]
	cmp	DWORD PTR -5156[rbp], eax
	jl	.L820
	mov	DWORD PTR -5152[rbp], 0
	jmp	.L821
.L848:
	movzx	eax, BYTE PTR -5024[rbp]
	cmp	al, 10
	je	.L822
	movzx	eax, BYTE PTR -5024[rbp]
	cmp	al, 13
	jne	.L823
.L822:
	mov	eax, DWORD PTR -5172[rbp]
	cmp	DWORD PTR -5152[rbp], eax
	je	.L824
	cmp	DWORD PTR -5152[rbp], 0
	jne	.L823
.L824:
	mov	DWORD PTR -5152[rbp], 0
	jmp	.L821
.L823:
	mov	DWORD PTR -5148[rbp], 0
	movzx	eax, BYTE PTR -5024[rbp]
	cmp	al, 32
	jne	.L827
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L826
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, -5024[rbp]
	lea	rsi, .LC304[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L829:
	add	DWORD PTR -5148[rbp], 1
.L827:
	mov	eax, DWORD PTR -5148[rbp]
	cdqe
	movzx	eax, BYTE PTR -5024[rbp+rax]
	cmp	al, 10
	je	.L828
	mov	eax, DWORD PTR -5148[rbp]
	cdqe
	movzx	eax, BYTE PTR -5024[rbp+rax]
	test	al, al
	je	.L828
	mov	eax, DWORD PTR -5148[rbp]
	cdqe
	movzx	eax, BYTE PTR -5024[rbp+rax]
	cmp	al, 32
	jne	.L829
.L828:
	mov	eax, DWORD PTR -5148[rbp]
	cdqe
	movzx	eax, BYTE PTR -5024[rbp+rax]
	cmp	al, 32
	jne	.L830
	cmp	DWORD PTR -5148[rbp], 0
	jne	.L831
.L830:
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, -5024[rbp]
	lea	rsi, .LC305[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L831:
	mov	eax, DWORD PTR -5172[rbp]
	cmp	DWORD PTR -5152[rbp], eax
	jl	.L832
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 69
	mov	esi, 1
	lea	rdi, .LC306[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L832:
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L833
	mov	eax, DWORD PTR -5148[rbp]
	add	eax, 1
	cdqe
	mov	edx, DWORD PTR -5152[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -5112[rbp]
	lea	rbx, [rcx+rdx]
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR [rbx], rax
	mov	DWORD PTR -5144[rbp], 0
	jmp	.L834
.L835:
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -5144[rbp]
	cdqe
	add	rdx, rax
	mov	eax, DWORD PTR -5144[rbp]
	cdqe
	movzx	eax, BYTE PTR -5024[rbp+rax]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -5144[rbp], 1
.L834:
	mov	eax, DWORD PTR -5144[rbp]
	cmp	eax, DWORD PTR -5148[rbp]
	jl	.L835
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -5148[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	jmp	.L826
.L833:
	mov	DWORD PTR -5136[rbp], 1
	mov	DWORD PTR -5140[rbp], 0
	jmp	.L836
.L839:
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -5140[rbp]
	cdqe
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -5140[rbp]
	cdqe
	movzx	eax, BYTE PTR -5024[rbp+rax]
	cmp	dl, al
	je	.L837
	mov	DWORD PTR -5136[rbp], 0
	jmp	.L838
.L837:
	add	DWORD PTR -5140[rbp], 1
.L836:
	mov	eax, DWORD PTR -5140[rbp]
	cmp	eax, DWORD PTR -5148[rbp]
	jl	.L839
.L838:
	cmp	DWORD PTR -5136[rbp], 0
	je	.L840
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -5148[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L826
.L840:
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, -5024[rbp]
	lea	rsi, .LC307[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L826:
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -5132[rbp], eax
	jmp	.L841
.L845:
	mov	eax, DWORD PTR -5148[rbp]
	cdqe
	movzx	eax, BYTE PTR -5024[rbp+rax]
	cmp	al, 32
	je	.L842
	mov	eax, DWORD PTR -5168[rbp]
	cmp	DWORD PTR -5132[rbp], eax
	jl	.L843
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rsi, QWORD PTR [rax]
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -5168[rbp]
	mov	rax, QWORD PTR stderr[rip]
	mov	r8, rsi
	lea	rsi, .LC308[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L843:
	mov	eax, DWORD PTR -5148[rbp]
	cdqe
	movzx	eax, BYTE PTR -5024[rbp+rax]
	movsx	eax, al
	mov	edi, eax
	call	toupper@PLT
	mov	ecx, eax
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rsi, QWORD PTR [rax]
	mov	eax, DWORD PTR -5132[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -5132[rbp], edx
	cdqe
	add	rax, rsi
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
.L842:
	add	DWORD PTR -5148[rbp], 1
.L841:
	mov	eax, DWORD PTR -5148[rbp]
	cdqe
	movzx	eax, BYTE PTR -5024[rbp+rax]
	cmp	al, 10
	je	.L844
	mov	eax, DWORD PTR -5148[rbp]
	cdqe
	movzx	eax, BYTE PTR -5024[rbp+rax]
	test	al, al
	jne	.L845
.L844:
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -5132[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 10
	jle	.L846
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rsi, QWORD PTR [rax]
	mov	eax, DWORD PTR -5152[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -5152[rbp]
	mov	r8, rsi
	lea	rsi, .LC309[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L846:
	add	DWORD PTR -5152[rbp], 1
	mov	eax, DWORD PTR -5172[rbp]
	cmp	DWORD PTR -5152[rbp], eax
	jne	.L821
	mov	rax, QWORD PTR -5104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, DWORD PTR -5168[rbp]
	movsx	rdx, edx
	cmp	rax, rdx
	je	.L866
.L821:
	mov	rdx, QWORD PTR -5192[rbp]
	lea	rax, -5024[rbp]
	mov	esi, 5000
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L848
	jmp	.L847
.L866:
	nop
.L847:
	mov	eax, DWORD PTR -5172[rbp]
	cmp	DWORD PTR -5152[rbp], eax
	je	.L814
	cmp	DWORD PTR -5152[rbp], 0
	je	.L814
	mov	edx, DWORD PTR -5172[rbp]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC310[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L814:
	mov	DWORD PTR -5128[rbp], 0
	jmp	.L849
.L851:
	mov	eax, DWORD PTR -5128[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -5116[rbp], eax
	mov	eax, DWORD PTR -5168[rbp]
	cmp	DWORD PTR -5116[rbp], eax
	je	.L850
	mov	ecx, DWORD PTR -5168[rbp]
	mov	eax, DWORD PTR -5128[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5112[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	esi, DWORD PTR -5116[rbp]
	mov	r8d, esi
	lea	rsi, .LC311[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L850:
	add	DWORD PTR -5128[rbp], 1
.L849:
	mov	eax, DWORD PTR -5172[rbp]
	cmp	DWORD PTR -5128[rbp], eax
	jl	.L851
	mov	BYTE PTR -5173[rbp], 0
	mov	DWORD PTR -5128[rbp], 0
	jmp	.L852
.L858:
	mov	eax, DWORD PTR -5128[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -5104[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -5056[rbp], rax
	jmp	.L853
.L857:
	mov	rax, QWORD PTR -5056[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 46
	jne	.L854
	mov	BYTE PTR -5173[rbp], 1
	mov	rax, QWORD PTR -5056[rbp]
	mov	BYTE PTR [rax], 45
.L854:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L855
	mov	rax, QWORD PTR -5056[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 85
	jne	.L855
	mov	rax, QWORD PTR -5056[rbp]
	mov	BYTE PTR [rax], 84
.L855:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L856
	mov	rax, QWORD PTR -5056[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 78
	jne	.L856
	mov	rax, QWORD PTR -5056[rbp]
	mov	BYTE PTR [rax], 88
.L856:
	add	QWORD PTR -5056[rbp], 1
.L853:
	mov	rax, QWORD PTR -5056[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L857
	add	DWORD PTR -5128[rbp], 1
.L852:
	mov	eax, DWORD PTR -5172[rbp]
	cmp	DWORD PTR -5128[rbp], eax
	jl	.L858
	cmp	BYTE PTR -5173[rbp], 0
	je	.L859
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 59
	mov	esi, 1
	lea	rdi, .LC312[rip]
	call	fwrite@PLT
.L859:
	mov	rax, QWORD PTR -5192[rbp]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	je	.L860
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 25
	mov	esi, 1
	lea	rdi, .LC313[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L860:
	mov	edi, 32
	call	mymalloc
	mov	QWORD PTR -5032[rbp], rax
	mov	edx, DWORD PTR -5172[rbp]
	mov	rax, QWORD PTR -5032[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	edx, DWORD PTR -5168[rbp]
	mov	rax, QWORD PTR -5032[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -5032[rbp]
	mov	rdx, QWORD PTR -5112[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -5032[rbp]
	mov	rdx, QWORD PTR -5104[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -5032[rbp]
	mov	edx, DWORD PTR -5164[rbp]
	mov	DWORD PTR 24[rax], edx
	mov	rax, QWORD PTR -5032[rbp]
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L862
	call	__stack_chk_fail@PLT
.L862:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE523:
	.size	ReadAlignment, .-ReadAlignment
	.section	.rodata
.LC314:
	.string	"aln != NULL"
	.text
	.globl	FreeAlignmentSeqs
	.type	FreeAlignmentSeqs, @function
FreeAlignmentSeqs:
.LFB524:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	cmp	QWORD PTR -40[rbp], 0
	jne	.L868
	lea	rcx, __PRETTY_FUNCTION__.58[rip]
	mov	edx, 3814
	lea	rsi, .LC131[rip]
	lea	rdi, .LC314[rip]
	call	__assert_fail@PLT
.L868:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L869
.L870:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 16[rcx]
	mov	ecx, DWORD PTR -20[rbp]
	movsx	rcx, ecx
	sal	rcx, 3
	lea	rbx, [rsi+rcx]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -20[rbp], 1
.L869:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L870
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE524:
	.size	FreeAlignmentSeqs, .-FreeAlignmentSeqs
	.globl	FreeAlignment
	.type	FreeAlignment, @function
FreeAlignment:
.LFB525:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	cmp	QWORD PTR -40[rbp], 0
	jne	.L872
	mov	eax, 0
	jmp	.L873
.L872:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L874
.L875:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 8[rcx]
	mov	ecx, DWORD PTR -20[rbp]
	movsx	rcx, ecx
	sal	rcx, 3
	lea	rbx, [rsi+rcx]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 16[rcx]
	mov	ecx, DWORD PTR -20[rbp]
	movsx	rcx, ecx
	sal	rcx, 3
	lea	rbx, [rsi+rcx]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -20[rbp], 1
.L874:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L875
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 24[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 24[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	myfree
	mov	eax, 0
.L873:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE525:
	.size	FreeAlignment, .-FreeAlignment
	.section	.rodata
	.align 8
.LC315:
	.string	"Sequence %s from constraints file is not in the alignment\n"
	.align 8
.LC316:
	.string	"Warning: ignoring constraints for %s:\n%s\nAnother sequence has the same sequence but different constraints\n"
	.text
	.globl	AlnToConstraints
	.type	AlnToConstraints, @function
AlnToConstraints:
.LFB526:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -40[rbp], 0
	jmp	.L877
.L878:
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR [rax], 0
	add	DWORD PTR -40[rbp], 1
.L877:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -40[rbp], eax
	jl	.L878
	mov	DWORD PTR -40[rbp], 0
	jmp	.L879
.L887:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FindMatch
	mov	DWORD PTR -36[rbp], eax
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	HashCount
	cmp	eax, 1
	je	.L880
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -16[rbp]
	lea	rsi, .LC315[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L880:
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	HashFirst
	mov	DWORD PTR -32[rbp], eax
	cmp	DWORD PTR -32[rbp], 0
	js	.L881
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L889
.L881:
	lea	rcx, __PRETTY_FUNCTION__.57[rip]
	mov	edx, 3849
	lea	rsi, .LC131[rip]
	lea	rdi, .LC246[rip]
	call	__assert_fail@PLT
.L889:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], 0
	js	.L883
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L890
.L883:
	lea	rcx, __PRETTY_FUNCTION__.57[rip]
	mov	edx, 3851
	lea	rsi, .LC131[rip]
	lea	rdi, .LC247[rip]
	call	__assert_fail@PLT
.L890:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L885
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L886
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	lea	rsi, .LC316[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L886
.L885:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rdx], rax
.L886:
	add	DWORD PTR -40[rbp], 1
.L879:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -40[rbp], eax
	jl	.L887
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE526:
	.size	AlnToConstraints, .-AlnToConstraints
	.section	.rodata
.LC317:
	.string	"strlen(seq) == nPos"
.LC318:
	.string	"pos %d char %c code %d\n"
	.align 8
.LC319:
	.string	"strlen(constraintSeq) == nConstraints"
	.align 8
.LC320:
	.string	"Constraint characters in unique sequence %d replaced with gap:"
.LC321:
	.string	" %c%d"
	.text
	.globl	SeqToProfile
	.type	SeqToProfile, @function
SeqToProfile:
.LFB527:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	QWORD PTR -64[rbp], rcx
	mov	DWORD PTR -56[rbp], r8d
	mov	DWORD PTR -68[rbp], r9d
	mov	eax, DWORD PTR codeSet.56[rip]
	test	eax, eax
	jne	.L892
	mov	DWORD PTR -20[rbp], 0
	jmp	.L893
.L894:
	mov	eax, DWORD PTR nCodes[rip]
	mov	ecx, eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, charToCode.55[rip]
	mov	BYTE PTR [rax+rdx], cl
	add	DWORD PTR -20[rbp], 1
.L893:
	cmp	DWORD PTR -20[rbp], 255
	jle	.L894
	mov	DWORD PTR -16[rbp], 0
	jmp	.L895
.L896:
	mov	rdx, QWORD PTR codesString[rip]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -16[rbp]
	mov	ecx, edx
	cdqe
	lea	rdx, charToCode.55[rip]
	mov	BYTE PTR [rax+rdx], cl
	mov	rdx, QWORD PTR codesString[rip]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	tolower@PLT
	mov	edx, DWORD PTR -16[rbp]
	mov	ecx, edx
	cdqe
	lea	rdx, charToCode.55[rip]
	mov	BYTE PTR [rax+rdx], cl
	add	DWORD PTR -16[rbp], 1
.L895:
	mov	rdx, QWORD PTR codesString[rip]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L896
	mov	BYTE PTR charToCode.55[rip+45], 127
	mov	DWORD PTR codeSet.56[rip], 1
.L892:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, DWORD PTR -52[rbp]
	movsx	rdx, edx
	cmp	rax, rdx
	je	.L897
	lea	rcx, __PRETTY_FUNCTION__.54[rip]
	mov	edx, 3890
	lea	rsi, .LC131[rip]
	lea	rdi, .LC317[rip]
	call	__assert_fail@PLT
.L897:
	mov	edx, DWORD PTR -56[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	esi, edx
	mov	edi, eax
	call	NewProfile
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L898
.L903:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	add	rdx, 1
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -12[rbp]
	lea	rdx, charToCode.55[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 10
	jle	.L899
	cmp	DWORD PTR -16[rbp], 1
	jg	.L899
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	ecx, al
	mov	rax, QWORD PTR stderr[rip]
	mov	esi, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	r8d, esi
	lea	rsi, .LC318[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L899:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -20[rbp], eax
	je	.L900
	cmp	DWORD PTR -20[rbp], 127
	jne	.L901
.L900:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 127
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	jmp	.L902
.L901:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	add	rax, rdx
	mov	edx, DWORD PTR -20[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR .LC206[rip]
	movss	DWORD PTR [rax], xmm0
.L902:
	add	DWORD PTR -16[rbp], 1
.L898:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L903
	cmp	DWORD PTR -56[rbp], 0
	jle	.L904
	mov	DWORD PTR -16[rbp], 0
	jmp	.L905
.L906:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	add	DWORD PTR -16[rbp], 1
.L905:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -56[rbp]
	jl	.L906
	mov	BYTE PTR -21[rbp], 0
	cmp	QWORD PTR -64[rbp], 0
	je	.L904
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, DWORD PTR -56[rbp]
	movsx	rdx, edx
	cmp	rax, rdx
	je	.L907
	lea	rcx, __PRETTY_FUNCTION__.54[rip]
	mov	edx, 3914
	lea	rsi, .LC131[rip]
	lea	rdi, .LC319[rip]
	call	__assert_fail@PLT
.L907:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L908
.L913:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 49
	jne	.L909
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 1
	jmp	.L910
.L909:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 48
	jne	.L911
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 1
	jmp	.L910
.L911:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	je	.L910
	movzx	eax, BYTE PTR -21[rbp]
	xor	eax, 1
	test	al, al
	je	.L912
	mov	eax, DWORD PTR -68[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC320[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	BYTE PTR -21[rbp], 1
.L912:
	mov	eax, DWORD PTR -16[rbp]
	lea	ecx, 1[rax]
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	edx, al
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC321[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 45
.L910:
	add	DWORD PTR -16[rbp], 1
.L908:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -56[rbp]
	jl	.L913
	cmp	BYTE PTR -21[rbp], 0
	je	.L904
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L904:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE527:
	.size	SeqToProfile, .-SeqToProfile
	.globl	SeqDist
	.type	SeqDist, @function
SeqDist:
.LFB528:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -72[rbp], r8
	pxor	xmm0, xmm0
	movsd	QWORD PTR -8[rbp], xmm0
	mov	DWORD PTR -20[rbp], 0
	cmp	QWORD PTR -64[rbp], 0
	jne	.L916
	mov	DWORD PTR -12[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	jmp	.L917
.L919:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L918
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L918
	add	DWORD PTR -20[rbp], 1
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	je	.L918
	add	DWORD PTR -12[rbp], 1
.L918:
	add	DWORD PTR -16[rbp], 1
.L917:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L919
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -12[rbp]
	movsd	QWORD PTR -8[rbp], xmm0
	jmp	.L920
.L916:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L921
.L923:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L922
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L922
	add	DWORD PTR -20[rbp], 1
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rdx, QWORD PTR -64[rbp]
	mov	esi, eax
	mov	ecx, ecx
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rdx+rax*4]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -8[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
.L922:
	add	DWORD PTR -16[rbp], 1
.L921:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L923
.L920:
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -20[rbp]
	cvtsd2ss	xmm0, xmm0
	mov	rax, QWORD PTR -72[rbp]
	movss	DWORD PTR 8[rax], xmm0
	cmp	DWORD PTR -20[rbp], 0
	jle	.L924
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	movsd	xmm0, QWORD PTR -8[rbp]
	divsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	jmp	.L925
.L924:
	movss	xmm0, DWORD PTR .LC206[rip]
.L925:
	mov	rax, QWORD PTR -72[rbp]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR seqOps[rip]
	add	rax, 1
	mov	QWORD PTR seqOps[rip], rax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE528:
	.size	SeqDist, .-SeqDist
	.section	.rodata
.LC322:
	.string	"distances != NULL"
.LC323:
	.string	"profiles != NULL"
.LC324:
	.string	"nProfiles>1 && nProfiles <= 4"
	.text
	.globl	CorrectedPairDistances
	.type	CorrectedPairDistances, @function
CorrectedPairDistances:
.LFB529:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 216
	.cfi_offset 3, -24
	mov	QWORD PTR -200[rbp], rdi
	mov	DWORD PTR -204[rbp], esi
	mov	QWORD PTR -216[rbp], rdx
	mov	DWORD PTR -208[rbp], ecx
	mov	QWORD PTR -224[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	cmp	QWORD PTR -224[rbp], 0
	jne	.L927
	lea	rcx, __PRETTY_FUNCTION__.53[rip]
	mov	edx, 3971
	lea	rsi, .LC131[rip]
	lea	rdi, .LC322[rip]
	call	__assert_fail@PLT
.L927:
	cmp	QWORD PTR -200[rbp], 0
	jne	.L928
	lea	rcx, __PRETTY_FUNCTION__.53[rip]
	mov	edx, 3972
	lea	rsi, .LC131[rip]
	lea	rdi, .LC323[rip]
	call	__assert_fail@PLT
.L928:
	cmp	DWORD PTR -204[rbp], 1
	jle	.L929
	cmp	DWORD PTR -204[rbp], 4
	jle	.L950
.L929:
	lea	rcx, __PRETTY_FUNCTION__.53[rip]
	mov	edx, 3973
	lea	rsi, .LC131[rip]
	lea	rdi, .LC324[rip]
	call	__assert_fail@PLT
.L950:
	mov	DWORD PTR -180[rbp], 0
	mov	DWORD PTR -176[rbp], 0
	jmp	.L931
.L934:
	mov	eax, DWORD PTR -176[rbp]
	add	eax, 1
	mov	DWORD PTR -172[rbp], eax
	jmp	.L932
.L933:
	lea	rcx, -144[rbp]
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	lea	rdi, [rcx+rax]
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	rsi, QWORD PTR [rax]
	mov	eax, DWORD PTR -176[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR -216[rbp]
	mov	edx, DWORD PTR -208[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	lea	rax, -16[rax]
	add	rax, rbp
	sub	rax, 116
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, rdx
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -172[rbp], 1
	add	DWORD PTR -180[rbp], 1
.L932:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -204[rbp]
	jl	.L933
	add	DWORD PTR -176[rbp], 1
.L931:
	mov	eax, DWORD PTR -176[rbp]
	cmp	eax, DWORD PTR -204[rbp]
	jl	.L934
	movsd	xmm0, QWORD PTR pseudoWeight[rip]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L935
	pxor	xmm0, xmm0
	movsd	QWORD PTR -168[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -160[rbp], xmm0
	mov	DWORD PTR -180[rbp], 0
	jmp	.L937
.L938:
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	lea	rax, -16[rax]
	add	rax, rbp
	sub	rax, 116
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	lea	rax, -16[rax]
	add	rax, rbp
	sub	rax, 120
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -168[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -168[rbp], xmm0
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	lea	rax, -16[rax]
	add	rax, rbp
	sub	rax, 120
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -160[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -160[rbp], xmm0
	add	DWORD PTR -180[rbp], 1
.L937:
	mov	eax, DWORD PTR -204[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -204[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	cmp	DWORD PTR -180[rbp], eax
	jl	.L938
	movsd	xmm0, QWORD PTR -160[rbp]
	comisd	xmm0, QWORD PTR .LC37[rip]
	jbe	.L951
	movsd	xmm0, QWORD PTR -168[rbp]
	divsd	xmm0, QWORD PTR -160[rbp]
	jmp	.L941
.L951:
	movsd	xmm0, QWORD PTR .LC325[rip]
.L941:
	movsd	QWORD PTR -152[rbp], xmm0
	mov	DWORD PTR -180[rbp], 0
	jmp	.L942
.L943:
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	lea	rax, -16[rax]
	add	rax, rbp
	sub	rax, 120
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR pseudoWeight[rip]
	mulsd	xmm0, QWORD PTR -152[rbp]
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	lea	rax, -16[rax]
	add	rax, rbp
	sub	rax, 120
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movsd	xmm1, QWORD PTR pseudoWeight[rip]
	addsd	xmm1, xmm2
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, rdx
	divsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -180[rbp], 1
.L942:
	mov	eax, DWORD PTR -204[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -204[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	cmp	DWORD PTR -180[rbp], eax
	jl	.L943
.L935:
	movzx	eax, BYTE PTR logdist[rip]
	test	al, al
	je	.L952
	mov	DWORD PTR -180[rbp], 0
	jmp	.L945
.L946:
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -180[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -224[rbp]
	lea	rbx, [rcx+rdx]
	movq	xmm0, rax
	call	LogCorrect
	movq	rax, xmm0
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -180[rbp], 1
.L945:
	mov	eax, DWORD PTR -204[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -204[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	cmp	DWORD PTR -180[rbp], eax
	jl	.L946
.L952:
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L947
	call	__stack_chk_fail@PLT
.L947:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE529:
	.size	CorrectedPairDistances, .-CorrectedPairDistances
	.globl	JoinConstraintPenalty
	.type	JoinConstraintPenalty, @function
JoinConstraintPenalty:
.LFB530:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	test	eax, eax
	jne	.L954
	mov	eax, 0
	jmp	.L955
.L954:
	mov	DWORD PTR -8[rbp], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L956
.L957:
	mov	ecx, DWORD PTR -4[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	esi, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	JoinConstraintPenaltyPiece
	add	DWORD PTR -8[rbp], eax
	add	DWORD PTR -4[rbp], 1
.L956:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -4[rbp], eax
	jl	.L957
	mov	eax, DWORD PTR -8[rbp]
.L955:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE530:
	.size	JoinConstraintPenalty, .-JoinConstraintPenalty
	.globl	JoinConstraintPenaltyPiece
	.type	JoinConstraintPenaltyPiece, @function
JoinConstraintPenaltyPiece:
.LFB531:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	DWORD PTR -92[rbp], esi
	mov	DWORD PTR -96[rbp], edx
	mov	DWORD PTR -100[rbp], ecx
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 96[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -64[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -60[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -56[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	sub	eax, DWORD PTR -68[rbp]
	sub	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	sub	eax, DWORD PTR -64[rbp]
	sub	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR -48[rbp], eax
	mov	edx, DWORD PTR -68[rbp]
	mov	eax, DWORD PTR -64[rbp]
	add	eax, edx
	test	eax, eax
	jle	.L959
	mov	edx, DWORD PTR -60[rbp]
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	test	eax, eax
	jle	.L959
	mov	edx, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	test	eax, eax
	jle	.L959
	cmp	DWORD PTR -68[rbp], 0
	jle	.L960
	cmp	DWORD PTR -64[rbp], 0
	jg	.L961
.L960:
	cmp	DWORD PTR -68[rbp], 0
	setg	al
	movzx	eax, al
	jmp	.L962
.L961:
	mov	eax, -1
.L962:
	mov	DWORD PTR -44[rbp], eax
	cmp	DWORD PTR -60[rbp], 0
	jle	.L963
	cmp	DWORD PTR -56[rbp], 0
	jg	.L964
.L963:
	cmp	DWORD PTR -60[rbp], 0
	setg	al
	movzx	eax, al
	jmp	.L965
.L964:
	mov	eax, -1
.L965:
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	jle	.L966
	cmp	DWORD PTR -48[rbp], 0
	je	.L966
	mov	eax, 1
	jmp	.L967
.L966:
	mov	eax, 0
.L967:
	test	eax, eax
	jg	.L968
	cmp	DWORD PTR -52[rbp], 0
	setg	al
	movzx	eax, al
	jmp	.L969
.L968:
	mov	eax, -1
.L969:
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -44[rbp], -1
	sete	al
	movzx	edx, al
	cmp	DWORD PTR -40[rbp], -1
	sete	al
	movzx	eax, al
	add	edx, eax
	cmp	DWORD PTR -36[rbp], -1
	sete	al
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -32[rbp], eax
	cmp	DWORD PTR -44[rbp], 1
	sete	al
	movzx	edx, al
	cmp	DWORD PTR -40[rbp], 1
	sete	al
	movzx	eax, al
	add	edx, eax
	cmp	DWORD PTR -36[rbp], 1
	sete	al
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -32[rbp], 1
	jne	.L959
	cmp	DWORD PTR -28[rbp], 1
	jne	.L959
	mov	edx, DWORD PTR -64[rbp]
	mov	eax, DWORD PTR -56[rbp]
	lea	esi, [rdx+rax]
	mov	edx, DWORD PTR -68[rbp]
	mov	eax, DWORD PTR -60[rbp]
	lea	edi, [rdx+rax]
	mov	edx, DWORD PTR -48[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	ecx, edx
	mov	edx, eax
	call	SplitConstraintPenalty
	jmp	.L970
.L959:
	mov	eax, 0
.L970:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE531:
	.size	JoinConstraintPenaltyPiece, .-JoinConstraintPenaltyPiece
	.section	.rodata
	.align 8
.LC326:
	.string	"Constraint Penalties at %d: ABvsCD %.3f ACvsBD %.3f ADvsBC %.3f %d/%d %d/%d %d/%d %d/%d\n"
	.align 8
.LC327:
	.string	"Total Constraint Penalties: ABvsCD %.3f ACvsBD %.3f ADvsBC %.3f\n"
	.text
	.globl	QuartetConstraintPenalties
	.type	QuartetConstraintPenalties, @function
QuartetConstraintPenalties:
.LFB532:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 80
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	QWORD PTR -88[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -56[rbp], 0
	jmp	.L972
.L973:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -56[rbp], 1
.L972:
	cmp	DWORD PTR -56[rbp], 2
	jle	.L973
	cmp	DWORD PTR -76[rbp], 0
	je	.L984
	mov	DWORD PTR -52[rbp], 0
	jmp	.L976
.L982:
	lea	rdx, -48[rbp]
	mov	ecx, DWORD PTR -52[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	QuartetConstraintPenaltiesPiece
	test	al, al
	je	.L977
	mov	DWORD PTR -56[rbp], 0
	jmp	.L978
.L979:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -48[rbp+rax*8]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -56[rbp], 1
.L978:
	cmp	DWORD PTR -56[rbp], 2
	jle	.L979
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L977
	movsd	xmm0, QWORD PTR -48[rbp]
	movsd	xmm1, QWORD PTR -40[rbp]
	subsd	xmm0, xmm1
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	comisd	xmm0, QWORD PTR .LC162[rip]
	ja	.L980
	movsd	xmm0, QWORD PTR -48[rbp]
	movsd	xmm1, QWORD PTR -32[rbp]
	subsd	xmm0, xmm1
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	comisd	xmm0, QWORD PTR .LC162[rip]
	jbe	.L977
.L980:
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r11d, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r10d, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r9d, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r8d, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r12d, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ebx, DWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	movsd	xmm1, QWORD PTR -32[rbp]
	movsd	xmm0, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -52[rbp]
	sub	rsp, 8
	push	r11
	push	r10
	push	r9
	push	r8
	push	rdi
	mov	r9d, r12d
	mov	r8d, ebx
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	lea	rsi, .LC326[rip]
	mov	rdi, rax
	mov	eax, 3
	call	fprintf@PLT
	add	rsp, 48
.L977:
	add	DWORD PTR -52[rbp], 1
.L976:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jl	.L982
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L971
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC327[rip]
	mov	rdi, rax
	mov	eax, 3
	call	fprintf@PLT
	jmp	.L971
.L984:
	nop
.L971:
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L983
	call	__stack_chk_fail@PLT
.L983:
	lea	rsp, -16[rbp]
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE532:
	.size	QuartetConstraintPenalties, .-QuartetConstraintPenalties
	.globl	PairConstraintDistance
	.type	PairConstraintDistance, @function
PairConstraintDistance:
.LFB533:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	divsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -32[rbp]
	add	eax, edx
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	divsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	movapd	xmm1, xmm0
	addsd	xmm1, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR -16[rbp]
	addsd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -8[rbp]
	subsd	xmm1, xmm0
	movq	rax, xmm1
	movq	xmm0, rax
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE533:
	.size	PairConstraintDistance, .-PairConstraintDistance
	.globl	QuartetConstraintPenaltiesPiece
	.type	QuartetConstraintPenaltiesPiece, @function
QuartetConstraintPenaltiesPiece:
.LFB534:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	QWORD PTR -88[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -60[rbp], 0
	mov	DWORD PTR -56[rbp], 0
	mov	DWORD PTR -52[rbp], 0
	mov	DWORD PTR -64[rbp], 0
	jmp	.L988
.L994:
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	mov	DWORD PTR -48[rbp+rax*4], edx
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	mov	DWORD PTR -32[rbp+rax*4], edx
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	mov	edx, DWORD PTR -48[rbp+rax*4]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	mov	eax, DWORD PTR -32[rbp+rax*4]
	add	eax, edx
	test	eax, eax
	jne	.L989
	mov	eax, 0
	jmp	.L997
.L989:
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	mov	eax, DWORD PTR -48[rbp+rax*4]
	test	eax, eax
	jle	.L991
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	mov	eax, DWORD PTR -32[rbp+rax*4]
	test	eax, eax
	jle	.L991
	add	DWORD PTR -60[rbp], 1
	jmp	.L992
.L991:
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	mov	eax, DWORD PTR -48[rbp+rax*4]
	test	eax, eax
	jle	.L993
	add	DWORD PTR -56[rbp], 1
	jmp	.L992
.L993:
	add	DWORD PTR -52[rbp], 1
.L992:
	add	DWORD PTR -64[rbp], 1
.L988:
	cmp	DWORD PTR -64[rbp], 3
	jle	.L994
	cmp	DWORD PTR -56[rbp], 2
	jg	.L995
	cmp	DWORD PTR -52[rbp], 2
	jle	.L996
.L995:
	mov	eax, 0
	jmp	.L997
.L996:
	mov	ecx, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	esi, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -48[rbp]
	mov	edi, eax
	call	PairConstraintDistance
	movsd	QWORD PTR -96[rbp], xmm0
	mov	ecx, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	esi, DWORD PTR -24[rbp]
	mov	eax, DWORD PTR -40[rbp]
	mov	edi, eax
	call	PairConstraintDistance
	movsd	xmm1, QWORD PTR -96[rbp]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR constraintWeight[rip]
	mulsd	xmm0, xmm1
	mov	rax, QWORD PTR -88[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	ecx, DWORD PTR -24[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	esi, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -48[rbp]
	mov	edi, eax
	call	PairConstraintDistance
	movsd	QWORD PTR -96[rbp], xmm0
	mov	ecx, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	esi, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -44[rbp]
	mov	edi, eax
	call	PairConstraintDistance
	movsd	xmm1, QWORD PTR -96[rbp]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR constraintWeight[rip]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 8
	mulsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	mov	ecx, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	esi, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -48[rbp]
	mov	edi, eax
	call	PairConstraintDistance
	movsd	QWORD PTR -96[rbp], xmm0
	mov	ecx, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	esi, DWORD PTR -24[rbp]
	mov	eax, DWORD PTR -40[rbp]
	mov	edi, eax
	call	PairConstraintDistance
	movsd	xmm1, QWORD PTR -96[rbp]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR constraintWeight[rip]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 16
	mulsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	mov	eax, 1
.L997:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L998
	call	__stack_chk_fail@PLT
.L998:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE534:
	.size	QuartetConstraintPenaltiesPiece, .-QuartetConstraintPenaltiesPiece
	.globl	SplitConstraintPenalty
	.type	SplitConstraintPenalty, @function
SplitConstraintPenalty:
.LFB535:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	DWORD PTR -16[rbp], ecx
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -16[rbp]
	add	edx, eax
	mov	ecx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -8[rbp]
	add	eax, ecx
	cmp	edx, eax
	jge	.L1000
	mov	eax, DWORD PTR -4[rbp]
	cmp	DWORD PTR -16[rbp], eax
	cmovle	eax, DWORD PTR -16[rbp]
	jmp	.L1002
.L1000:
	mov	eax, DWORD PTR -12[rbp]
	cmp	DWORD PTR -8[rbp], eax
	cmovle	eax, DWORD PTR -8[rbp]
.L1002:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE535:
	.size	SplitConstraintPenalty, .-SplitConstraintPenalty
	.globl	SplitViolatesConstraint
	.type	SplitViolatesConstraint, @function
SplitViolatesConstraint:
.LFB536:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -44[rbp], 0
	jmp	.L1004
.L1010:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	test	eax, eax
	jne	.L1005
	mov	eax, 0
	jmp	.L1018
.L1005:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jle	.L1007
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L1007
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	mov	DWORD PTR -32[rbp+rax*4], 1
	jmp	.L1008
.L1007:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L1009
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jle	.L1009
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	mov	DWORD PTR -32[rbp+rax*4], 0
	jmp	.L1008
.L1009:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	mov	DWORD PTR -32[rbp+rax*4], -1
.L1008:
	add	DWORD PTR -44[rbp], 1
.L1004:
	cmp	DWORD PTR -44[rbp], 3
	jle	.L1010
	mov	DWORD PTR -40[rbp], 0
	mov	DWORD PTR -36[rbp], 0
	mov	DWORD PTR -44[rbp], 0
	jmp	.L1011
.L1014:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	mov	eax, DWORD PTR -32[rbp+rax*4]
	test	eax, eax
	jne	.L1012
	add	DWORD PTR -40[rbp], 1
	jmp	.L1013
.L1012:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	mov	eax, DWORD PTR -32[rbp+rax*4]
	cmp	eax, 1
	jne	.L1013
	add	DWORD PTR -36[rbp], 1
.L1013:
	add	DWORD PTR -44[rbp], 1
.L1011:
	cmp	DWORD PTR -44[rbp], 3
	jle	.L1014
	cmp	DWORD PTR -40[rbp], 2
	jg	.L1015
	cmp	DWORD PTR -36[rbp], 2
	jle	.L1016
.L1015:
	mov	eax, 0
	jmp	.L1018
.L1016:
	cmp	DWORD PTR -40[rbp], 2
	jne	.L1017
	cmp	DWORD PTR -36[rbp], 2
	jne	.L1017
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -28[rbp]
	cmp	edx, eax
	jne	.L1017
	mov	edx, DWORD PTR -24[rbp]
	mov	eax, DWORD PTR -20[rbp]
	cmp	edx, eax
	jne	.L1017
	mov	eax, 0
	jmp	.L1018
.L1017:
	mov	eax, 1
.L1018:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1019
	call	__stack_chk_fail@PLT
.L1019:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE536:
	.size	SplitViolatesConstraint, .-SplitViolatesConstraint
	.globl	LogCorrect
	.type	LogCorrect, @function
LogCorrect:
.LFB537:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC325[rip]
	movsd	QWORD PTR -8[rbp], xmm0
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L1021
	movzx	eax, BYTE PTR useMatrix[rip]
	xor	eax, 1
	test	al, al
	je	.L1021
	movsd	xmm0, QWORD PTR .LC328[rip]
	comisd	xmm0, QWORD PTR -24[rbp]
	jbe	.L1036
	movsd	xmm1, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR .LC150[rip]
	mulsd	xmm0, xmm1
	movsd	xmm2, QWORD PTR .LC325[rip]
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	call	log@PLT
	movsd	xmm1, QWORD PTR .LC329[rip]
	mulsd	xmm0, xmm1
	jmp	.L1024
.L1036:
	movsd	xmm0, QWORD PTR -8[rbp]
.L1024:
	movsd	QWORD PTR -24[rbp], xmm0
	jmp	.L1025
.L1021:
	movsd	xmm0, QWORD PTR .LC330[rip]
	comisd	xmm0, QWORD PTR -24[rbp]
	jbe	.L1037
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, QWORD PTR -24[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	call	log@PLT
	movsd	xmm1, QWORD PTR .LC331[rip]
	mulsd	xmm0, xmm1
	jmp	.L1028
.L1037:
	movsd	xmm0, QWORD PTR -8[rbp]
.L1028:
	movsd	QWORD PTR -24[rbp], xmm0
.L1025:
	movsd	xmm0, QWORD PTR -8[rbp]
	comisd	xmm0, QWORD PTR -24[rbp]
	jbe	.L1038
	movsd	xmm0, QWORD PTR -24[rbp]
	jmp	.L1032
.L1038:
	movsd	xmm0, QWORD PTR -8[rbp]
.L1032:
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE537:
	.size	LogCorrect, .-LogCorrect
	.globl	ProfileDistPiece
	.type	ProfileDistPiece, @function
ProfileDistPiece:
.LFB538:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	QWORD PTR -32[rbp], rdx
	mov	QWORD PTR -40[rbp], rcx
	mov	QWORD PTR -48[rbp], r8
	mov	QWORD PTR -56[rbp], r9
	cmp	QWORD PTR -48[rbp], 0
	je	.L1040
	cmp	DWORD PTR -20[rbp], 127
	je	.L1041
	cmp	DWORD PTR -24[rbp], 127
	je	.L1041
	mov	rdx, QWORD PTR -48[rbp]
	mov	esi, DWORD PTR -24[rbp]
	mov	ecx, DWORD PTR -20[rbp]
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rdx+rax*4]
	cvtss2sd	xmm0, xmm0
	jmp	.L1042
.L1041:
	cmp	QWORD PTR -56[rbp], 0
	je	.L1043
	cmp	DWORD PTR -20[rbp], 127
	je	.L1043
	mov	eax, DWORD PTR -20[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	jmp	.L1042
.L1043:
	cmp	QWORD PTR -32[rbp], 0
	jne	.L1044
	cmp	DWORD PTR -20[rbp], 127
	jne	.L1045
	movsd	xmm0, QWORD PTR .LC332[rip]
	jmp	.L1042
.L1045:
	mov	edx, DWORD PTR -20[rbp]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 3360[rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
.L1044:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L1046
	cmp	DWORD PTR -24[rbp], 127
	jne	.L1047
	movsd	xmm0, QWORD PTR .LC332[rip]
	jmp	.L1042
.L1047:
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 3360[rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
.L1046:
	mov	edx, DWORD PTR nCodes[rip]
	mov	rax, QWORD PTR -48[rbp]
	lea	rdi, 3200[rax]
	mov	rsi, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	vector_multiply3_sum
	cvtss2sd	xmm0, xmm0
	jmp	.L1042
.L1040:
	cmp	DWORD PTR -20[rbp], 127
	je	.L1048
	cmp	DWORD PTR -24[rbp], 127
	je	.L1049
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jne	.L1050
	pxor	xmm0, xmm0
	jmp	.L1042
.L1050:
	movsd	xmm0, QWORD PTR .LC4[rip]
	jmp	.L1042
.L1049:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L1052
	movsd	xmm0, QWORD PTR .LC332[rip]
	jmp	.L1042
.L1052:
	mov	eax, DWORD PTR -20[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, xmm1
	jmp	.L1042
.L1048:
	cmp	DWORD PTR -24[rbp], 127
	je	.L1053
	cmp	QWORD PTR -32[rbp], 0
	jne	.L1054
	movsd	xmm0, QWORD PTR .LC332[rip]
	jmp	.L1042
.L1054:
	mov	eax, DWORD PTR -24[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, xmm1
	jmp	.L1042
.L1053:
	cmp	QWORD PTR -32[rbp], 0
	je	.L1055
	cmp	QWORD PTR -40[rbp], 0
	jne	.L1056
.L1055:
	movsd	xmm0, QWORD PTR .LC332[rip]
	jmp	.L1042
.L1056:
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -8[rbp], xmm0
	mov	DWORD PTR -12[rbp], 0
	jmp	.L1057
.L1058:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	add	DWORD PTR -12[rbp], 1
.L1057:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L1058
	movsd	xmm0, QWORD PTR -8[rbp]
.L1042:
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE538:
	.size	ProfileDistPiece, .-ProfileDistPiece
	.section	.rodata
.LC333:
	.string	"iFreq1 == profile1->nVectors"
.LC334:
	.string	"iFreq2 == profile2->nVectors"
	.text
	.globl	ProfileDist
	.type	ProfileDist, @function
ProfileDist:
.LFB539:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	DWORD PTR -84[rbp], edx
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -104[rbp], r8
	pxor	xmm0, xmm0
	movsd	QWORD PTR -48[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -40[rbp], xmm0
	mov	DWORD PTR -60[rbp], 0
	mov	DWORD PTR -56[rbp], 0
	mov	DWORD PTR -52[rbp], 0
	mov	DWORD PTR -52[rbp], 0
	jmp	.L1060
.L1072:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1061
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1061
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -60[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -60[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1063
.L1061:
	mov	eax, 0
.L1063:
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1064
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1064
	mov	rax, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -56[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -56[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1066
.L1064:
	mov	eax, 0
.L1066:
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1067
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1067
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	addsd	xmm0, QWORD PTR -16[rbp]
	movsd	QWORD PTR -40[rbp], xmm0
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	je	.L1070
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	lea	r8, [rdx+rax]
	jmp	.L1071
.L1070:
	mov	r8d, 0
.L1071:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rdi, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	edi, eax
	call	ProfileDistPiece
	movq	rax, xmm0
	mov	QWORD PTR -8[rbp], rax
	movsd	xmm0, QWORD PTR -16[rbp]
	mulsd	xmm0, QWORD PTR -8[rbp]
	movsd	xmm1, QWORD PTR -48[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
.L1067:
	add	DWORD PTR -52[rbp], 1
.L1060:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L1072
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -60[rbp], eax
	je	.L1073
	lea	rcx, __PRETTY_FUNCTION__.52[rip]
	mov	edx, 4238
	lea	rsi, .LC131[rip]
	lea	rdi, .LC333[rip]
	call	__assert_fail@PLT
.L1073:
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -56[rbp], eax
	je	.L1074
	lea	rcx, __PRETTY_FUNCTION__.52[rip]
	mov	edx, 4239
	lea	rsi, .LC131[rip]
	lea	rdi, .LC334[rip]
	call	__assert_fail@PLT
.L1074:
	movsd	xmm0, QWORD PTR -40[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L1087
	pxor	xmm0, xmm0
	cvtsd2ss	xmm0, QWORD PTR -40[rbp]
	jmp	.L1077
.L1087:
	movss	xmm0, DWORD PTR .LC335[rip]
.L1077:
	mov	rax, QWORD PTR -104[rbp]
	movss	DWORD PTR 8[rax], xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L1088
	movsd	xmm0, QWORD PTR -48[rbp]
	divsd	xmm0, QWORD PTR -40[rbp]
	cvtsd2ss	xmm0, xmm0
	jmp	.L1080
.L1088:
	movss	xmm0, DWORD PTR .LC206[rip]
.L1080:
	mov	rax, QWORD PTR -104[rbp]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR profileOps[rip]
	add	rax, 1
	mov	QWORD PTR profileOps[rip], rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE539:
	.size	ProfileDist, .-ProfileDist
	.section	.rodata
.LC336:
	.string	"fOut != NULL"
.LC337:
	.string	"codeIn != NOCODE"
	.text
	.globl	AddToFreq
	.type	AddToFreq, @function
AddToFreq:
.LFB540:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -8[rbp], rdi
	movsd	QWORD PTR -16[rbp], xmm0
	mov	DWORD PTR -20[rbp], esi
	mov	QWORD PTR -32[rbp], rdx
	mov	QWORD PTR -40[rbp], rcx
	cmp	QWORD PTR -8[rbp], 0
	jne	.L1090
	lea	rcx, __PRETTY_FUNCTION__.51[rip]
	mov	edx, 4253
	lea	rsi, .LC131[rip]
	lea	rdi, .LC336[rip]
	call	__assert_fail@PLT
.L1090:
	cmp	QWORD PTR -32[rbp], 0
	je	.L1091
	mov	edx, DWORD PTR nCodes[rip]
	pxor	xmm1, xmm1
	cvtsd2ss	xmm1, QWORD PTR -16[rbp]
	movd	esi, xmm1
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -8[rbp]
	movd	xmm0, esi
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_add_mult
	jmp	.L1096
.L1091:
	cmp	QWORD PTR -40[rbp], 0
	je	.L1093
	cmp	DWORD PTR -20[rbp], 127
	jne	.L1094
	lea	rcx, __PRETTY_FUNCTION__.51[rip]
	mov	edx, 4257
	lea	rsi, .LC131[rip]
	lea	rdi, .LC337[rip]
	call	__assert_fail@PLT
.L1094:
	mov	edx, DWORD PTR nCodes[rip]
	pxor	xmm2, xmm2
	cvtsd2ss	xmm2, QWORD PTR -16[rbp]
	movd	ecx, xmm2
	mov	esi, DWORD PTR -20[rbp]
	mov	rax, rsi
	sal	rax, 2
	add	rax, rsi
	sal	rax, 4
	lea	rsi, 3360[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rsi, rax
	mov	rax, QWORD PTR -8[rbp]
	movd	xmm0, ecx
	mov	rdi, rax
	call	vector_add_mult
	jmp	.L1096
.L1093:
	cmp	DWORD PTR -20[rbp], 127
	jne	.L1095
	lea	rcx, __PRETTY_FUNCTION__.51[rip]
	mov	edx, 4260
	lea	rsi, .LC131[rip]
	lea	rdi, .LC337[rip]
	call	__assert_fail@PLT
.L1095:
	mov	eax, DWORD PTR -20[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	addsd	xmm0, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -20[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
.L1096:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE540:
	.size	AddToFreq, .-AddToFreq
	.section	.rodata
.LC338:
	.string	"c->nChild == 2"
	.align 8
.LC339:
	.string	"NJ->profiles[c->child[0]] != NULL"
	.align 8
.LC340:
	.string	"NJ->profiles[c->child[1]] != NULL"
	.text
	.globl	SetProfile
	.type	SetProfile, @function
SetProfile:
.LFB541:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	movsd	QWORD PTR -56[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	je	.L1098
	lea	rcx, __PRETTY_FUNCTION__.50[rip]
	mov	edx, 4267
	lea	rsi, .LC131[rip]
	lea	rdi, .LC338[rip]
	call	__assert_fail@PLT
.L1098:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L1099
	lea	rcx, __PRETTY_FUNCTION__.50[rip]
	mov	edx, 4268
	lea	rsi, .LC131[rip]
	lea	rdi, .LC339[rip]
	call	__assert_fail@PLT
.L1099:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L1100
	lea	rcx, __PRETTY_FUNCTION__.50[rip]
	mov	edx, 4269
	lea	rsi, .LC131[rip]
	lea	rdi, .LC340[rip]
	call	__assert_fail@PLT
.L1100:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L1101
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rax, QWORD PTR [rax]
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
.L1101:
	mov	rax, QWORD PTR -40[rbp]
	mov	r8, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	mov	rdi, QWORD PTR -40[rbp]
	mov	r9, QWORD PTR 56[rdi]
	mov	edi, DWORD PTR -44[rbp]
	movsx	rdi, edi
	sal	rdi, 3
	lea	rbx, [r9+rdi]
	mov	rdi, QWORD PTR -56[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	AverageProfile
	mov	QWORD PTR [rbx], rax
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE541:
	.size	SetProfile, .-SetProfile
	.section	.rodata
	.align 8
.LC341:
	.string	"Average profiles: pos %d in-w1 %f in-w2 %f bionjWeight %f to weight %f code %d\n"
.LC342:
	.string	"\t%c:%f"
.LC343:
	.string	"iFreqOut == out->nVectors"
	.text
	.globl	AverageProfile
	.type	AverageProfile, @function
AverageProfile:
.LFB542:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	DWORD PTR -84[rbp], edx
	mov	DWORD PTR -88[rbp], ecx
	mov	QWORD PTR -96[rbp], r8
	movsd	QWORD PTR -104[rbp], xmm0
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -104[rbp]
	jbe	.L1103
	movsd	xmm0, QWORD PTR .LC18[rip]
	movsd	QWORD PTR -104[rbp], xmm0
.L1103:
	mov	edx, DWORD PTR -88[rbp]
	mov	eax, DWORD PTR -84[rbp]
	mov	esi, edx
	mov	edi, eax
	call	NewProfile
	mov	QWORD PTR -32[rbp], rax
	mov	DWORD PTR -52[rbp], 0
	jmp	.L1105
.L1114:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -104[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 127
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1106
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1108
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L1108
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jnb	.L1110
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L1108
.L1110:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rdx, rax
	movzx	eax, BYTE PTR [rcx]
	mov	BYTE PTR [rdx], al
	jmp	.L1111
.L1108:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jb	.L1111
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1111
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L1111
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rdx, rax
	movzx	eax, BYTE PTR [rcx]
	mov	BYTE PTR [rdx], al
.L1111:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1106
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 24[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 24[rax], edx
.L1106:
	add	DWORD PTR -52[rbp], 1
.L1105:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L1114
	mov	eax, DWORD PTR nCodes[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 24[rax]
	cdqe
	imul	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	DWORD PTR -52[rbp], 0
	jmp	.L1115
.L1116:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -52[rbp], 1
.L1115:
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, edx
	cmp	DWORD PTR -52[rbp], eax
	jl	.L1116
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 24[rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR nProfileFreqAlloc[rip]
	add	rax, rdx
	mov	QWORD PTR nProfileFreqAlloc[rip], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	eax, DWORD PTR -84[rbp]
	sub	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR nProfileFreqAvoid[rip]
	add	rax, rdx
	mov	QWORD PTR nProfileFreqAvoid[rip], rax
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -40[rbp], 0
	mov	DWORD PTR -52[rbp], 0
	jmp	.L1117
.L1137:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1118
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1118
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -48[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -48[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1120
.L1118:
	mov	eax, 0
.L1120:
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1121
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1121
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -44[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -44[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1123
.L1121:
	mov	eax, 0
.L1123:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1124
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1124
	mov	rax, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -40[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -40[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1126
.L1124:
	mov	eax, 0
.L1126:
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L1127
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1128
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -104[rbp]
	movq	rdi, xmm0
	mov	rcx, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	AddToFreq
.L1128:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1130
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, QWORD PTR -104[rbp]
	mulsd	xmm1, xmm0
	movq	rdi, xmm1
	mov	rcx, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	AddToFreq
.L1130:
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	NormalizeFreq
.L1127:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 10
	jle	.L1132
	cmp	DWORD PTR -52[rbp], 4
	jg	.L1132
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm1
	movq	rsi, xmm4
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm1, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -52[rbp]
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	lea	rsi, .LC341[rip]
	mov	rdi, rax
	mov	eax, 4
	call	fprintf@PLT
	cmp	QWORD PTR -24[rbp], 0
	je	.L1132
	mov	DWORD PTR -36[rbp], 0
	jmp	.L1133
.L1136:
	cmp	QWORD PTR -24[rbp], 0
	je	.L1134
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm5, xmm5
	cvtss2sd	xmm5, xmm0
	movq	rax, xmm5
	jmp	.L1135
.L1134:
	mov	rax, QWORD PTR .LC222[rip]
.L1135:
	mov	rcx, QWORD PTR codesString[rip]
	mov	edx, DWORD PTR -36[rbp]
	movsx	rdx, edx
	add	rdx, rcx
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	mov	rcx, QWORD PTR stderr[rip]
	movq	xmm0, rax
	lea	rsi, .LC342[rip]
	mov	rdi, rcx
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -36[rbp], 1
.L1133:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L1136
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L1132:
	add	DWORD PTR -52[rbp], 1
.L1117:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L1137
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -44[rbp], eax
	je	.L1138
	lea	rcx, __PRETTY_FUNCTION__.49[rip]
	mov	edx, 4344
	lea	rsi, .LC131[rip]
	lea	rdi, .LC333[rip]
	call	__assert_fail@PLT
.L1138:
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -40[rbp], eax
	je	.L1139
	lea	rcx, __PRETTY_FUNCTION__.49[rip]
	mov	edx, 4345
	lea	rsi, .LC131[rip]
	lea	rdi, .LC334[rip]
	call	__assert_fail@PLT
.L1139:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -48[rbp], eax
	je	.L1140
	lea	rcx, __PRETTY_FUNCTION__.49[rip]
	mov	edx, 4346
	lea	rsi, .LC131[rip]
	lea	rdi, .LC343[rip]
	call	__assert_fail@PLT
.L1140:
	mov	DWORD PTR -52[rbp], 0
	jmp	.L1141
.L1142:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	add	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	add	edx, ecx
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -52[rbp], 1
.L1141:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -88[rbp]
	jl	.L1142
	mov	rax, QWORD PTR profileAvgOps[rip]
	add	rax, 1
	mov	QWORD PTR profileAvgOps[rip], rax
	mov	rax, QWORD PTR -32[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE542:
	.size	AverageProfile, .-AverageProfile
	.globl	NormalizeFreq
	.type	NormalizeFreq, @function
NormalizeFreq:
.LFB543:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	pxor	xmm0, xmm0
	movsd	QWORD PTR -8[rbp], xmm0
	cmp	QWORD PTR -32[rbp], 0
	je	.L1155
	mov	edx, DWORD PTR nCodes[rip]
	mov	rax, QWORD PTR -32[rbp]
	lea	rcx, 3280[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_multiply_sum
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -8[rbp], xmm0
	jmp	.L1156
.L1155:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L1157
.L1158:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -8[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	add	DWORD PTR -16[rbp], 1
.L1157:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L1158
.L1156:
	movsd	xmm0, QWORD PTR -8[rbp]
	comisd	xmm0, QWORD PTR .LC344[rip]
	jbe	.L1168
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, QWORD PTR -8[rbp]
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR -12[rbp], xmm0
	mov	ecx, DWORD PTR nCodes[rip]
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	movd	xmm0, edx
	mov	rdi, rax
	call	vector_multiply_by
	jmp	.L1169
.L1168:
	cmp	QWORD PTR -32[rbp], 0
	jne	.L1162
	mov	DWORD PTR -16[rbp], 0
	jmp	.L1163
.L1164:
	mov	eax, DWORD PTR nCodes[rip]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, xmm1
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -16[rbp], 1
.L1163:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L1164
	jmp	.L1169
.L1162:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L1165
.L1166:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	ecx, DWORD PTR -16[rbp]
	movsx	rcx, ecx
	add	rcx, 840
	movss	xmm0, DWORD PTR [rax+rcx*4]
	movss	DWORD PTR [rdx], xmm0
	add	DWORD PTR -16[rbp], 1
.L1165:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L1166
.L1169:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE543:
	.size	NormalizeFreq, .-NormalizeFreq
	.section	.rodata
	.align 8
.LC346:
	.string	"iFreqIn == profiles[in]->nVectors"
.LC347:
	.string	"Average %d profiles\n"
	.text
	.globl	OutProfile
	.type	OutProfile, @function
OutProfile:
.LFB544:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	DWORD PTR -80[rbp], edx
	mov	DWORD PTR -84[rbp], ecx
	mov	QWORD PTR -96[rbp], r8
	mov	edx, DWORD PTR -84[rbp]
	mov	eax, DWORD PTR -80[rbp]
	mov	esi, edx
	mov	edi, eax
	call	NewProfile
	mov	QWORD PTR -40[rbp], rax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -76[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	mov	DWORD PTR -60[rbp], 0
	jmp	.L1171
.L1176:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	DWORD PTR -56[rbp], 0
	jmp	.L1172
.L1173:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -32[rbp]
	addsd	xmm0, xmm1
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -56[rbp], 1
.L1172:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jl	.L1173
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jb	.L1174
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR .LC345[rip]
	movss	DWORD PTR [rax], xmm0
.L1174:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 24[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 24[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 127
	add	DWORD PTR -60[rbp], 1
.L1171:
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jl	.L1176
	mov	eax, DWORD PTR nCodes[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 24[rax]
	cdqe
	imul	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	DWORD PTR -60[rbp], 0
	jmp	.L1177
.L1178:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -60[rbp], 1
.L1177:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, edx
	cmp	DWORD PTR -60[rbp], eax
	jl	.L1178
	mov	DWORD PTR -56[rbp], 0
	jmp	.L1179
.L1192:
	mov	DWORD PTR -52[rbp], 0
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR -60[rbp], 0
	jmp	.L1180
.L1189:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1181
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1181
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -48[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -48[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1183
.L1181:
	mov	eax, 0
.L1183:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1184
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1184
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -52[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -52[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1186
.L1184:
	mov	eax, 0
.L1186:
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1187
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	movq	rdi, xmm2
	mov	rcx, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	AddToFreq
.L1187:
	add	DWORD PTR -60[rbp], 1
.L1180:
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jl	.L1189
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -52[rbp], eax
	je	.L1190
	lea	rcx, __PRETTY_FUNCTION__.48[rip]
	mov	edx, 4425
	lea	rsi, .LC131[rip]
	lea	rdi, .LC343[rip]
	call	__assert_fail@PLT
.L1190:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -48[rbp], eax
	je	.L1191
	lea	rcx, __PRETTY_FUNCTION__.48[rip]
	mov	edx, 4426
	lea	rsi, .LC131[rip]
	lea	rdi, .LC346[rip]
	call	__assert_fail@PLT
.L1191:
	add	DWORD PTR -56[rbp], 1
.L1179:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jl	.L1192
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -60[rbp], 0
	jmp	.L1193
.L1198:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1194
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1194
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -44[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -44[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1196
.L1194:
	mov	eax, 0
.L1196:
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L1197
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	NormalizeFreq
.L1197:
	add	DWORD PTR -60[rbp], 1
.L1193:
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jl	.L1198
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -44[rbp], eax
	je	.L1199
	lea	rcx, __PRETTY_FUNCTION__.48[rip]
	mov	edx, 4436
	lea	rsi, .LC131[rip]
	lea	rdi, .LC343[rip]
	call	__assert_fail@PLT
.L1199:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 10
	jle	.L1200
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -76[rbp]
	lea	rsi, .LC347[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L1200:
	cmp	QWORD PTR -96[rbp], 0
	je	.L1201
	mov	rdx, QWORD PTR -96[rbp]
	mov	ecx, DWORD PTR -80[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCodeDist
.L1201:
	mov	DWORD PTR -60[rbp], 0
	jmp	.L1202
.L1205:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	DWORD PTR -56[rbp], 0
	jmp	.L1203
.L1204:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	add	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	add	edx, ecx
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -56[rbp], 1
.L1203:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jl	.L1204
	add	DWORD PTR -60[rbp], 1
.L1202:
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L1205
	mov	rax, QWORD PTR -40[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE544:
	.size	OutProfile, .-OutProfile
	.section	.rodata
.LC348:
	.string	"nActiveOld > 0"
	.align 8
.LC349:
	.string	"out->codes[i] == NOCODE && fOut != NULL"
	.align 8
.LC350:
	.string	"Updating out-profile position %d weight %f (mult %f)\n"
	.align 8
.LC352:
	.string	"Updated out-profile position %d weight %f (mult %f)"
.LC353:
	.string	" %c:%f"
.LC354:
	.string	"iFreq1 == old1->nVectors"
.LC355:
	.string	"iFreq2 == old2->nVectors"
.LC356:
	.string	"iFreqNew == new->nVectors"
	.text
	.globl	UpdateOutProfile
	.type	UpdateOutProfile, @function
UpdateOutProfile:
.LFB545:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	QWORD PTR -104[rbp], rdx
	mov	QWORD PTR -112[rbp], rcx
	mov	DWORD PTR -116[rbp], r8d
	mov	DWORD PTR -120[rbp], r9d
	mov	DWORD PTR -64[rbp], 0
	mov	DWORD PTR -60[rbp], 0
	mov	DWORD PTR -56[rbp], 0
	mov	DWORD PTR -52[rbp], 0
	cmp	DWORD PTR -116[rbp], 0
	jg	.L1213
	lea	rcx, __PRETTY_FUNCTION__.47[rip]
	mov	edx, 4462
	lea	rsi, .LC131[rip]
	lea	rdi, .LC348[rip]
	call	__assert_fail@PLT
.L1213:
	mov	DWORD PTR -72[rbp], 0
	jmp	.L1214
.L1247:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1215
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1215
	mov	rax, QWORD PTR -88[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -64[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -64[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1217
.L1215:
	mov	eax, 0
.L1217:
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1218
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1218
	mov	rax, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -60[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -60[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1220
.L1218:
	mov	eax, 0
.L1220:
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1221
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1221
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -56[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -56[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1223
.L1221:
	mov	eax, 0
.L1223:
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1224
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1224
	mov	rax, QWORD PTR -112[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -52[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -52[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1226
.L1224:
	mov	eax, 0
.L1226:
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1227
	cmp	QWORD PTR -48[rbp], 0
	jne	.L1264
.L1227:
	lea	rcx, __PRETTY_FUNCTION__.47[rip]
	mov	edx, 4470
	lea	rsi, .LC131[rip]
	lea	rdi, .LC349[rip]
	call	__assert_fail@PLT
.L1264:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L1229
	cmp	DWORD PTR -72[rbp], 2
	jg	.L1229
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -116[rbp]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movq	rcx, xmm2
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -72[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC350[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L1229:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -116[rbp]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -16[rbp], xmm0
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	addsd	xmm0, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	cvtss2sd	xmm1, xmm1
	subsd	xmm0, xmm1
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	cvtss2sd	xmm1, xmm1
	subsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	mov	eax, DWORD PTR -116[rbp]
	sub	eax, 1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR -8[rbp]
	divsd	xmm0, xmm1
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jb	.L1230
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR .LC345[rip]
	movss	DWORD PTR [rax], xmm0
.L1230:
	mov	DWORD PTR -68[rbp], 0
	jmp	.L1232
.L1233:
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -68[rbp], 1
.L1232:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -68[rbp], eax
	jl	.L1233
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1234
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR .LC351[rip]
	xorps	xmm0, xmm1
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movq	rdi, xmm3
	mov	rcx, QWORD PTR 24[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -48[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	AddToFreq
.L1234:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1236
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR .LC351[rip]
	xorps	xmm0, xmm1
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm0
	movq	rdi, xmm4
	mov	rcx, QWORD PTR 24[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -48[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	AddToFreq
.L1236:
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1238
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm5, xmm5
	cvtss2sd	xmm5, xmm0
	movq	rdi, xmm5
	mov	rcx, QWORD PTR 24[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -48[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	AddToFreq
.L1238:
	mov	rdx, QWORD PTR 24[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	NormalizeFreq
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1240
	cmp	DWORD PTR -72[rbp], 2
	jg	.L1240
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -116[rbp]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm6, xmm6
	cvtss2sd	xmm6, xmm1
	movq	rcx, xmm6
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -72[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC352[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1241
	mov	DWORD PTR -68[rbp], 0
	jmp	.L1243
.L1246:
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm7, xmm7
	cvtss2sd	xmm7, xmm0
	movq	rdx, xmm7
	cmp	QWORD PTR 24[rbp], 0
	jne	.L1244
	mov	rcx, QWORD PTR codesString[rip]
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	jmp	.L1245
.L1244:
	mov	eax, 63
.L1245:
	mov	rcx, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	mov	edx, eax
	lea	rsi, .LC353[rip]
	mov	rdi, rcx
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -68[rbp], 1
.L1243:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -68[rbp], eax
	jl	.L1246
.L1241:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L1240:
	add	DWORD PTR -72[rbp], 1
.L1214:
	mov	eax, DWORD PTR -72[rbp]
	cmp	eax, DWORD PTR -120[rbp]
	jl	.L1247
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -64[rbp], eax
	je	.L1248
	lea	rcx, __PRETTY_FUNCTION__.47[rip]
	mov	edx, 4501
	lea	rsi, .LC131[rip]
	lea	rdi, .LC343[rip]
	call	__assert_fail@PLT
.L1248:
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -60[rbp], eax
	je	.L1249
	lea	rcx, __PRETTY_FUNCTION__.47[rip]
	mov	edx, 4502
	lea	rsi, .LC131[rip]
	lea	rdi, .LC354[rip]
	call	__assert_fail@PLT
.L1249:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -56[rbp], eax
	je	.L1250
	lea	rcx, __PRETTY_FUNCTION__.47[rip]
	mov	edx, 4503
	lea	rsi, .LC131[rip]
	lea	rdi, .LC355[rip]
	call	__assert_fail@PLT
.L1250:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -52[rbp], eax
	je	.L1251
	lea	rcx, __PRETTY_FUNCTION__.47[rip]
	mov	edx, 4504
	lea	rsi, .LC131[rip]
	lea	rdi, .LC356[rip]
	call	__assert_fail@PLT
.L1251:
	cmp	QWORD PTR 24[rbp], 0
	je	.L1252
	mov	rdx, QWORD PTR 24[rbp]
	mov	ecx, DWORD PTR -120[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCodeDist
.L1252:
	mov	DWORD PTR -72[rbp], 0
	jmp	.L1253
.L1254:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -96[rbp]
	mov	rsi, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	mov	eax, DWORD PTR [rax]
	sub	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	mov	eax, DWORD PTR [rax]
	mov	esi, edx
	sub	esi, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	lea	edx, [rcx+rsi]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -96[rbp]
	mov	rsi, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	mov	eax, DWORD PTR [rax]
	sub	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	mov	eax, DWORD PTR [rax]
	mov	esi, edx
	sub	esi, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	lea	edx, [rcx+rsi]
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -72[rbp], 1
.L1253:
	mov	eax, DWORD PTR -72[rbp]
	cmp	eax, DWORD PTR 16[rbp]
	jl	.L1254
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE545:
	.size	UpdateOutProfile, .-UpdateOutProfile
	.section	.rodata
.LC357:
	.string	"iFreq==profile->nVectors"
	.text
	.globl	SetCodeDist
	.type	SetCodeDist, @function
SetCodeDist:
.LFB546:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	jne	.L1266
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR nCodes[rip]
	cdqe
	imul	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 32[rdx], rax
.L1266:
	mov	DWORD PTR -16[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1267
.L1273:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1268
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1268
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -16[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -16[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1270
.L1268:
	mov	eax, 0
.L1270:
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L1271
.L1272:
	mov	esi, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rcx, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	r9d, 0
	mov	r8, rcx
	mov	ecx, 0
	mov	edi, eax
	call	ProfileDistPiece
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -20[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -12[rbp], 1
.L1271:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L1272
	add	DWORD PTR -20[rbp], 1
.L1267:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L1273
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -16[rbp], eax
	je	.L1276
	lea	rcx, __PRETTY_FUNCTION__.46[rip]
	mov	edx, 4530
	lea	rsi, .LC131[rip]
	lea	rdi, .LC357[rip]
	call	__assert_fail@PLT
.L1276:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE546:
	.size	SetCodeDist, .-SetCodeDist
	.section	.rodata
.LC358:
	.string	"NJ->parent[node] < 0"
.LC359:
	.string	"SetBestHit %d %d %f %f\n"
	.text
	.globl	SetBestHit
	.type	SetBestHit, @function
SetBestHit:
.LFB547:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	DWORD PTR -52[rbp], edi
	mov	QWORD PTR -64[rbp], rsi
	mov	DWORD PTR -56[rbp], edx
	mov	QWORD PTR -72[rbp], rcx
	mov	QWORD PTR -80[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L1278
	lea	rcx, __PRETTY_FUNCTION__.45[rip]
	mov	edx, 4536
	lea	rsi, .LC131[rip]
	lea	rdi, .LC358[rip]
	call	__assert_fail@PLT
.L1278:
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], -1
	mov	rax, QWORD PTR -72[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -72[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 16[rax], xmm0
	mov	DWORD PTR -44[rbp], 0
	jmp	.L1279
.L1285:
	cmp	QWORD PTR -80[rbp], 0
	je	.L1280
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	jmp	.L1281
.L1280:
	lea	rax, -32[rbp]
.L1281:
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L1282
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], -1
	mov	rax, QWORD PTR -40[rbp]
	pxor	xmm0, xmm0
	movss	DWORD PTR 8[rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -40[rbp]
	movss	DWORD PTR 16[rax], xmm0
	jmp	.L1283
.L1282:
	mov	rdx, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetDistCriterion
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm1, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -72[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	comiss	xmm0, xmm1
	jbe	.L1283
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	je	.L1283
	mov	rcx, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rsi]
	mov	rdx, QWORD PTR 8[rsi]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	eax, DWORD PTR 16[rsi]
	mov	DWORD PTR 16[rcx], eax
.L1283:
	add	DWORD PTR -44[rbp], 1
.L1279:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -44[rbp], eax
	jl	.L1285
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L1289
	mov	rax, QWORD PTR -72[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -72[rbp]
	movss	xmm1, DWORD PTR 12[rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movq	rsi, xmm2
	mov	rax, QWORD PTR -72[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	lea	rsi, .LC359[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L1289:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1287
	call	__stack_chk_fail@PLT
.L1287:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE547:
	.size	SetBestHit, .-SetBestHit
	.section	.rodata
	.align 8
.LC360:
	.string	"Error reading header line for %s:\n%s\n"
	.align 8
.LC361:
	.string	"Header line\n%s\nin file %s does not have expected code %c # %d in %s\n"
	.align 8
.LC362:
	.string	"Header line in %s should be tab-delimited\n"
	.align 8
.LC363:
	.string	"Header line in %s ends prematurely\n"
	.align 8
.LC364:
	.string	"Header line in %s has too many entries\n"
	.align 8
.LC365:
	.string	"Cannot read line %d from file %s\n"
.LC366:
	.string	"\t\r\n"
.LC367:
	.string	"\t"
.LC368:
	.string	"%f"
	.align 8
.LC369:
	.string	"Cannot parse field %s in file %s\n"
	.text
	.globl	ReadMatrix
	.type	ReadMatrix, @function
ReadMatrix:
.LFB548:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 976
	mov	QWORD PTR -5048[rbp], rdi
	mov	QWORD PTR -5056[rbp], rsi
	mov	eax, edx
	mov	BYTE PTR -5060[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -5008[rbp], 0
	mov	QWORD PTR -5000[rbp], 0
	lea	rdx, -4992[rbp]
	mov	eax, 0
	mov	ecx, 623
	mov	rdi, rdx
	rep stosq
	mov	rax, QWORD PTR -5048[rbp]
	lea	rsi, .LC133[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -5016[rbp], rax
	cmp	QWORD PTR -5016[rbp], 0
	jne	.L1291
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -5048[rbp]
	lea	rsi, .LC134[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1291:
	mov	rdx, QWORD PTR -5016[rbp]
	lea	rax, -5008[rbp]
	mov	esi, 5000
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L1292
	mov	rax, QWORD PTR stderr[rip]
	lea	rcx, -5008[rbp]
	mov	rdx, QWORD PTR -5048[rbp]
	lea	rsi, .LC360[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1292:
	cmp	BYTE PTR -5060[rbp], 0
	je	.L1293
	mov	DWORD PTR -5036[rbp], 0
	mov	DWORD PTR -5040[rbp], 0
	jmp	.L1294
.L1298:
	mov	eax, DWORD PTR -5036[rbp]
	cdqe
	movzx	eax, BYTE PTR -5008[rbp+rax]
	movsx	edx, al
	mov	rcx, QWORD PTR codesString[rip]
	mov	eax, DWORD PTR -5040[rbp]
	cdqe
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	edx, eax
	je	.L1295
	mov	rsi, QWORD PTR codesString[rip]
	mov	rdx, QWORD PTR codesString[rip]
	mov	eax, DWORD PTR -5040[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edi, al
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, DWORD PTR -5040[rbp]
	mov	rcx, QWORD PTR -5048[rbp]
	lea	rdx, -5008[rbp]
	sub	rsp, 8
	push	rsi
	mov	r9d, r8d
	mov	r8d, edi
	lea	rsi, .LC361[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 16
	mov	edi, 1
	call	exit@PLT
.L1295:
	add	DWORD PTR -5036[rbp], 1
	mov	eax, DWORD PTR -5036[rbp]
	cdqe
	movzx	eax, BYTE PTR -5008[rbp+rax]
	cmp	al, 10
	je	.L1296
	mov	eax, DWORD PTR -5036[rbp]
	cdqe
	movzx	eax, BYTE PTR -5008[rbp+rax]
	cmp	al, 13
	je	.L1296
	mov	eax, DWORD PTR -5036[rbp]
	cdqe
	movzx	eax, BYTE PTR -5008[rbp+rax]
	test	al, al
	je	.L1296
	mov	eax, DWORD PTR -5036[rbp]
	cdqe
	movzx	eax, BYTE PTR -5008[rbp+rax]
	cmp	al, 9
	je	.L1296
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -5048[rbp]
	lea	rsi, .LC362[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1296:
	mov	eax, DWORD PTR -5036[rbp]
	cdqe
	movzx	eax, BYTE PTR -5008[rbp+rax]
	test	al, al
	jne	.L1297
	mov	eax, DWORD PTR nCodes[rip]
	sub	eax, 1
	cmp	DWORD PTR -5040[rbp], eax
	jge	.L1297
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -5048[rbp]
	lea	rsi, .LC363[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1297:
	add	DWORD PTR -5040[rbp], 1
	add	DWORD PTR -5036[rbp], 1
.L1294:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -5040[rbp], eax
	jl	.L1298
	mov	eax, DWORD PTR -5036[rbp]
	cdqe
	movzx	eax, BYTE PTR -5008[rbp+rax]
	test	al, al
	je	.L1293
	mov	eax, DWORD PTR -5036[rbp]
	cdqe
	movzx	eax, BYTE PTR -5008[rbp+rax]
	cmp	al, 10
	je	.L1293
	mov	eax, DWORD PTR -5036[rbp]
	cdqe
	movzx	eax, BYTE PTR -5008[rbp+rax]
	cmp	al, 13
	je	.L1293
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -5048[rbp]
	lea	rsi, .LC364[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1293:
	mov	DWORD PTR -5032[rbp], 0
	jmp	.L1299
.L1305:
	mov	BYTE PTR -5008[rbp], 0
	mov	rdx, QWORD PTR -5016[rbp]
	lea	rax, -5008[rbp]
	mov	esi, 5000
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L1300
	mov	eax, DWORD PTR -5032[rbp]
	lea	esi, 2[rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -5048[rbp]
	mov	rcx, rdx
	mov	edx, esi
	lea	rsi, .LC365[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1300:
	lea	rax, -5008[rbp]
	lea	rsi, .LC366[rip]
	mov	rdi, rax
	call	strtok@PLT
	mov	QWORD PTR -5024[rbp], rax
	lea	rsi, .LC367[rip]
	mov	edi, 0
	call	strtok@PLT
	mov	QWORD PTR -5024[rbp], rax
	mov	DWORD PTR -5028[rbp], 0
	jmp	.L1301
.L1304:
	mov	eax, DWORD PTR -5032[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -5056[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -5028[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	rax, QWORD PTR -5024[rbp]
	lea	rsi, .LC368[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	cmp	eax, 1
	je	.L1302
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -5048[rbp]
	mov	rdx, QWORD PTR -5024[rbp]
	lea	rsi, .LC369[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1302:
	add	DWORD PTR -5028[rbp], 1
	lea	rsi, .LC367[rip]
	mov	edi, 0
	call	strtok@PLT
	mov	QWORD PTR -5024[rbp], rax
.L1301:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -5028[rbp], eax
	jge	.L1303
	cmp	QWORD PTR -5024[rbp], 0
	jne	.L1304
.L1303:
	add	DWORD PTR -5032[rbp], 1
.L1299:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -5032[rbp], eax
	jl	.L1305
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1306
	call	__stack_chk_fail@PLT
.L1306:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE548:
	.size	ReadMatrix, .-ReadMatrix
	.section	.rodata
.LC370:
	.string	"Cannot read %d entry of %s\n"
.LC371:
	.string	"Error reading %s\n"
	.text
	.globl	ReadVector
	.type	ReadVector, @function
ReadVector:
.LFB549:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC133[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L1308
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rsi, .LC134[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1308:
	mov	DWORD PTR -12[rbp], 0
	jmp	.L1309
.L1311:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC368[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_fscanf@PLT
	cmp	eax, 1
	je	.L1310
	mov	eax, DWORD PTR -12[rbp]
	lea	esi, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rcx, rdx
	mov	edx, esi
	lea	rsi, .LC370[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1310:
	add	DWORD PTR -12[rbp], 1
.L1309:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L1311
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	fclose@PLT
	test	eax, eax
	je	.L1313
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rsi, .LC371[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1313:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE549:
	.size	ReadVector, .-ReadVector
	.section	.rodata
.LC372:
	.string	"Filename %s too long\n"
.LC373:
	.string	"Read distance matrix from %s\n"
	.text
	.globl	ReadDistanceMatrix
	.type	ReadDistanceMatrix, @function
ReadDistanceMatrix:
.LFB550:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 944
	mov	QWORD PTR -5032[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edi, 5040
	call	mymalloc
	mov	QWORD PTR -5016[rbp], rax
	mov	rax, QWORD PTR -5032[rbp]
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 4980
	jbe	.L1315
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -5032[rbp]
	lea	rsi, .LC372[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1315:
	mov	rdx, QWORD PTR -5032[rbp]
	lea	rax, -5008[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	lea	rax, -5008[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -5008[rbp]
	add	rax, rdx
	movabs	rcx, 7164771209973425198
	mov	QWORD PTR [rax], rcx
	mov	WORD PTR 8[rax], 29541
	mov	BYTE PTR 10[rax], 0
	mov	rcx, QWORD PTR -5016[rbp]
	lea	rax, -5008[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	ReadMatrix
	mov	rdx, QWORD PTR -5032[rbp]
	lea	rax, -5008[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	lea	rax, -5008[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -5008[rbp]
	add	rax, rdx
	movabs	rcx, 7310312400256657710
	mov	QWORD PTR [rax], rcx
	mov	WORD PTR 8[rax], 115
	mov	rax, QWORD PTR -5016[rbp]
	lea	rcx, 1600[rax]
	lea	rax, -5008[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	ReadMatrix
	mov	rdx, QWORD PTR -5032[rbp]
	lea	rax, -5008[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	lea	rax, -5008[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -5008[rbp]
	add	rax, rdx
	movabs	rcx, 7022922050736579886
	mov	QWORD PTR [rax], rcx
	mov	DWORD PTR 8[rax], 1936029036
	mov	BYTE PTR 12[rax], 0
	mov	rax, QWORD PTR -5016[rbp]
	lea	rdx, 3200[rax]
	lea	rax, -5008[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	ReadVector
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jle	.L1316
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -5032[rbp]
	lea	rsi, .LC373[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L1316:
	mov	rax, QWORD PTR -5016[rbp]
	mov	rdi, rax
	call	SetupDistanceMatrix
	mov	rax, QWORD PTR -5016[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1318
	call	__stack_chk_fail@PLT
.L1318:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE550:
	.size	ReadDistanceMatrix, .-ReadDistanceMatrix
	.section	.rodata
	.align 8
.LC375:
	.string	"Distance matrix not symmetric for %d,%d: %f vs %f\n"
	.align 8
.LC376:
	.string	"Distance matrix entry %d,%d should be %f but eigen-representation gives %f\n"
.LC377:
	.string	"Made codeFreq\n"
	.text
	.globl	SetupDistanceMatrix
	.type	SetupDistanceMatrix, @function
SetupDistanceMatrix:
.LFB551:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -36[rbp], 0
	jmp	.L1320
.L1329:
	mov	DWORD PTR -32[rbp], 0
	jmp	.L1321
.L1328:
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -36[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rdx+rax*4]
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	movss	xmm1, DWORD PTR [rdx+rax*4]
	subss	xmm0, xmm1
	movss	xmm1, DWORD PTR .LC158[rip]
	andps	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	comisd	xmm0, QWORD PTR .LC374[rip]
	jbe	.L1345
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rdx+rax*4]
	cvtss2sd	xmm0, xmm0
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -36[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	movss	xmm1, DWORD PTR [rdx+rax*4]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movq	rdx, xmm2
	mov	eax, DWORD PTR -32[rbp]
	lea	ecx, 1[rax]
	mov	eax, DWORD PTR -36[rbp]
	lea	esi, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	mov	edx, esi
	lea	rsi, .LC375[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1345:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -16[rbp], xmm0
	mov	DWORD PTR -28[rbp], 0
	jmp	.L1324
.L1325:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 800
	movss	xmm1, DWORD PTR [rax+rdx*4]
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 400
	movss	xmm0, DWORD PTR [rdx+rax*4]
	mulss	xmm1, xmm0
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 400
	movss	xmm0, DWORD PTR [rdx+rax*4]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -16[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	add	DWORD PTR -28[rbp], 1
.L1324:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L1325
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -36[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rdx+rax*4]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	subsd	xmm0, xmm1
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	comisd	xmm0, QWORD PTR .LC374[rip]
	jbe	.L1346
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -36[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rdx+rax*4]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movq	rdx, xmm3
	mov	eax, DWORD PTR -32[rbp]
	lea	ecx, 1[rax]
	mov	eax, DWORD PTR -36[rbp]
	lea	esi, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm0, QWORD PTR -16[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	mov	edx, esi
	lea	rsi, .LC376[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L1346:
	add	DWORD PTR -32[rbp], 1
.L1321:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L1328
	add	DWORD PTR -36[rbp], 1
.L1320:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L1329
	mov	DWORD PTR -28[rbp], 0
	jmp	.L1330
.L1333:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 820
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax+rdx*4], xmm0
	mov	DWORD PTR -24[rbp], 0
	jmp	.L1331
.L1332:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 820
	movss	xmm1, DWORD PTR [rax+rdx*4]
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -24[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 400
	movss	xmm0, DWORD PTR [rdx+rax*4]
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 820
	movss	DWORD PTR [rax+rdx*4], xmm0
	add	DWORD PTR -24[rbp], 1
.L1331:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L1332
	add	DWORD PTR -28[rbp], 1
.L1330:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L1333
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1334
.L1337:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L1335
.L1336:
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -20[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 400
	movss	xmm0, DWORD PTR [rdx+rax*4]
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -28[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -20[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 840
	movss	DWORD PTR [rdx+rax*4], xmm0
	add	DWORD PTR -28[rbp], 1
.L1335:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L1336
	add	DWORD PTR -20[rbp], 1
.L1334:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L1337
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1338
.L1341:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -8[rbp], xmm0
	mov	DWORD PTR -28[rbp], 0
	jmp	.L1339
.L1340:
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -20[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 840
	movss	xmm0, DWORD PTR [rdx+rax*4]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -8[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	add	DWORD PTR -28[rbp], 1
.L1339:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L1340
	mov	eax, DWORD PTR nCodes[rip]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR -8[rbp]
	divsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -20[rbp]
	movsx	rdx, edx
	add	rdx, 1240
	movss	DWORD PTR [rax+rdx*4], xmm0
	add	DWORD PTR -20[rbp], 1
.L1338:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L1341
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 10
	jle	.L1347
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 14
	mov	esi, 1
	lea	rdi, .LC377[rip]
	call	fwrite@PLT
.L1347:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE551:
	.size	SetupDistanceMatrix, .-SetupDistanceMatrix
	.section	.rodata
	.align 8
.LC378:
	.string	"Worsen constraint: from %.3f to %.3f distance %.3f to %.3f: "
.LC379:
	.string	" %d (%d/%d %d/%d %d/%d %d/%d)"
.LC380:
	.string	"AC|BD"
.LC381:
	.string	"AD|BC"
.LC382:
	.string	"AB|CD"
	.align 8
.LC383:
	.string	"NNI scores ABvsCD %.5f ACvsBD %.5f ADvsBC %.5f choice %s\n"
	.text
	.globl	ChooseNNI
	.type	ChooseNNI, @function
ChooseNNI:
.LFB552:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 200
	.cfi_offset 3, -24
	mov	QWORD PTR -184[rbp], rdi
	mov	QWORD PTR -192[rbp], rsi
	mov	DWORD PTR -196[rbp], edx
	mov	DWORD PTR -200[rbp], ecx
	mov	QWORD PTR -208[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	lea	rsi, -80[rbp]
	mov	ecx, DWORD PTR -196[rbp]
	mov	rdx, QWORD PTR -192[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	r8, rsi
	mov	esi, 4
	mov	rdi, rax
	call	CorrectedPairDistances
	lea	rdx, -144[rbp]
	mov	ecx, DWORD PTR -200[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	QuartetConstraintPenalties
	movsd	xmm1, QWORD PTR -80[rbp]
	movsd	xmm0, QWORD PTR -40[rbp]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -144[rbp]
	addsd	xmm0, xmm1
	mov	rax, QWORD PTR -208[rbp]
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm1, QWORD PTR -72[rbp]
	movsd	xmm0, QWORD PTR -48[rbp]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm1, QWORD PTR -64[rbp]
	movsd	xmm0, QWORD PTR -56[rbp]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 16
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -168[rbp], 0
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -208[rbp]
	movsd	xmm0, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L1349
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jb	.L1349
	mov	DWORD PTR -168[rbp], 1
	jmp	.L1352
.L1349:
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -208[rbp]
	movsd	xmm0, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L1352
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jb	.L1352
	mov	DWORD PTR -168[rbp], 2
.L1352:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jle	.L1355
	mov	eax, DWORD PTR -168[rbp]
	movsd	xmm0, QWORD PTR -144[rbp+rax*8]
	movsd	xmm2, QWORD PTR -144[rbp]
	movsd	xmm1, QWORD PTR .LC374[rip]
	addsd	xmm1, xmm2
	comisd	xmm0, xmm1
	jbe	.L1355
	cmp	DWORD PTR -168[rbp], 1
	jne	.L1357
	mov	rax, QWORD PTR -208[rbp]
	movsd	xmm0, QWORD PTR 8[rax]
	jmp	.L1358
.L1357:
	mov	rax, QWORD PTR -208[rbp]
	movsd	xmm0, QWORD PTR 16[rax]
.L1358:
	mov	rax, QWORD PTR -208[rbp]
	movsd	xmm2, QWORD PTR [rax]
	mov	eax, DWORD PTR -168[rbp]
	movsd	xmm1, QWORD PTR -144[rbp+rax*8]
	mov	rdx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm3, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC378[rip]
	mov	rdi, rax
	mov	eax, 4
	call	fprintf@PLT
	mov	DWORD PTR -164[rbp], 0
	jmp	.L1359
.L1362:
	lea	rdx, -112[rbp]
	mov	ecx, DWORD PTR -164[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	QuartetConstraintPenaltiesPiece
	test	al, al
	je	.L1360
	movsd	xmm0, QWORD PTR -112[rbp]
	movsd	QWORD PTR -160[rbp], xmm0
	mov	eax, DWORD PTR -168[rbp]
	movsd	xmm0, QWORD PTR -112[rbp+rax*8]
	movsd	QWORD PTR -152[rbp], xmm0
	movsd	xmm1, QWORD PTR -160[rbp]
	movsd	xmm0, QWORD PTR .LC374[rip]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -152[rbp]
	comisd	xmm0, xmm1
	jbe	.L1360
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r10d, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r9d, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r8d, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ebx, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r11d, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -164[rbp]
	sub	rsp, 8
	push	r10
	push	r9
	push	r8
	push	rdi
	push	rsi
	mov	r9d, ebx
	mov	r8d, r11d
	lea	rsi, .LC379[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 48
.L1360:
	add	DWORD PTR -164[rbp], 1
.L1359:
	mov	eax, DWORD PTR -164[rbp]
	cmp	eax, DWORD PTR -200[rbp]
	jl	.L1362
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L1355:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L1363
	cmp	DWORD PTR -168[rbp], 0
	je	.L1364
	cmp	DWORD PTR -168[rbp], 1
	jne	.L1365
	lea	rax, .LC380[rip]
	jmp	.L1367
.L1365:
	lea	rax, .LC381[rip]
	jmp	.L1367
.L1364:
	lea	rax, .LC382[rip]
.L1367:
	mov	rdx, QWORD PTR -208[rbp]
	add	rdx, 16
	movsd	xmm1, QWORD PTR [rdx]
	mov	rdx, QWORD PTR -208[rbp]
	add	rdx, 8
	movsd	xmm0, QWORD PTR [rdx]
	mov	rdx, QWORD PTR -208[rbp]
	mov	rsi, QWORD PTR [rdx]
	mov	rcx, QWORD PTR stderr[rip]
	mov	rdx, rax
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	lea	rsi, .LC383[rip]
	mov	rdi, rcx
	mov	eax, 3
	call	fprintf@PLT
.L1363:
	mov	eax, DWORD PTR -168[rbp]
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L1369
	call	__stack_chk_fail@PLT
.L1369:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE552:
	.size	ChooseNNI, .-ChooseNNI
	.section	.rodata
.LC385:
	.string	"nCodes == 4"
	.align 8
.LC387:
	.string	"Replaced weight %f with %f from w1 %f w2 %f PSame %f %f f12code %f f12other %f\n"
.LC389:
	.string	"fPostTot > 1e-10"
.LC390:
	.string	"0"
	.text
	.globl	PosteriorProfile
	.type	PosteriorProfile, @function
PosteriorProfile:
.LFB553:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 2856
	.cfi_offset 3, -24
	mov	QWORD PTR -2808[rbp], rdi
	mov	QWORD PTR -2816[rbp], rsi
	movsd	QWORD PTR -2824[rbp], xmm0
	movsd	QWORD PTR -2832[rbp], xmm1
	mov	QWORD PTR -2840[rbp], rdx
	mov	QWORD PTR -2848[rbp], rcx
	mov	DWORD PTR -2852[rbp], r8d
	mov	DWORD PTR -2856[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	movsd	xmm0, QWORD PTR .LC384[rip]
	comisd	xmm0, QWORD PTR -2824[rbp]
	jbe	.L1377
	movsd	xmm0, QWORD PTR .LC384[rip]
	movsd	QWORD PTR -2824[rbp], xmm0
.L1377:
	movsd	xmm0, QWORD PTR .LC384[rip]
	comisd	xmm0, QWORD PTR -2832[rbp]
	jbe	.L1379
	movsd	xmm0, QWORD PTR .LC384[rip]
	movsd	QWORD PTR -2832[rbp], xmm0
.L1379:
	mov	edx, DWORD PTR -2856[rbp]
	mov	eax, DWORD PTR -2852[rbp]
	mov	esi, edx
	mov	edi, eax
	call	NewProfile
	mov	QWORD PTR -2632[rbp], rax
	mov	DWORD PTR -2788[rbp], 0
	jmp	.L1381
.L1382:
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 127
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR .LC206[rip]
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2788[rbp], 1
.L1381:
	mov	eax, DWORD PTR -2788[rbp]
	cmp	eax, DWORD PTR -2852[rbp]
	jl	.L1382
	mov	rax, QWORD PTR -2632[rbp]
	mov	edx, DWORD PTR -2852[rbp]
	mov	DWORD PTR 24[rax], edx
	mov	eax, DWORD PTR nCodes[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR -2632[rbp]
	mov	eax, DWORD PTR 24[rax]
	cdqe
	imul	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -2632[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	DWORD PTR -2788[rbp], 0
	jmp	.L1383
.L1384:
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2788[rbp], 1
.L1383:
	mov	rax, QWORD PTR -2632[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, edx
	cmp	DWORD PTR -2788[rbp], eax
	jl	.L1384
	mov	DWORD PTR -2776[rbp], 0
	mov	DWORD PTR -2772[rbp], 0
	mov	DWORD PTR -2768[rbp], 0
	mov	QWORD PTR -2736[rbp], 0
	mov	QWORD PTR -2728[rbp], 0
	cmp	QWORD PTR -2840[rbp], 0
	je	.L1385
	mov	rcx, QWORD PTR -2848[rbp]
	mov	rdx, QWORD PTR -2840[rbp]
	mov	rax, QWORD PTR -2824[rbp]
	mov	rsi, rcx
	mov	rdi, rdx
	movq	xmm0, rax
	call	ExpEigenRates
	mov	QWORD PTR -2736[rbp], rax
	mov	rcx, QWORD PTR -2848[rbp]
	mov	rdx, QWORD PTR -2840[rbp]
	mov	rax, QWORD PTR -2832[rbp]
	mov	rsi, rcx
	mov	rdi, rdx
	movq	xmm0, rax
	call	ExpEigenRates
	mov	QWORD PTR -2728[rbp], rax
.L1385:
	cmp	QWORD PTR -2840[rbp], 0
	jne	.L1386
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	je	.L1387
	lea	rcx, __PRETTY_FUNCTION__.44[rip]
	mov	edx, 4798
	lea	rsi, .LC131[rip]
	lea	rdi, .LC385[rip]
	call	__assert_fail@PLT
.L1387:
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1388
.L1393:
	mov	DWORD PTR -2780[rbp], 0
	jmp	.L1389
.L1392:
	mov	eax, DWORD PTR -2784[rbp]
	cmp	eax, DWORD PTR -2780[rbp]
	jne	.L1390
	movss	xmm0, DWORD PTR .LC206[rip]
	jmp	.L1391
.L1390:
	pxor	xmm0, xmm0
.L1391:
	mov	eax, DWORD PTR -2780[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	DWORD PTR -2080[rbp+rax*4], xmm0
	add	DWORD PTR -2780[rbp], 1
.L1389:
	cmp	DWORD PTR -2780[rbp], 3
	jle	.L1392
	add	DWORD PTR -2784[rbp], 1
.L1388:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1393
	mov	DWORD PTR -2780[rbp], 0
	jmp	.L1394
.L1395:
	mov	eax, DWORD PTR -2780[rbp]
	cdqe
	add	rax, 508
	movss	xmm0, DWORD PTR .LC386[rip]
	movss	DWORD PTR -2080[rbp+rax*4], xmm0
	add	DWORD PTR -2780[rbp], 1
.L1394:
	cmp	DWORD PTR -2780[rbp], 3
	jle	.L1395
	mov	rdx, QWORD PTR -2848[rbp]
	mov	rax, QWORD PTR -2824[rbp]
	mov	rdi, rdx
	movq	xmm0, rax
	call	PSameVector
	mov	QWORD PTR -2488[rbp], rax
	mov	rdx, QWORD PTR -2848[rbp]
	mov	rax, QWORD PTR -2488[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	PDiffVector
	mov	QWORD PTR -2480[rbp], rax
	mov	rdx, QWORD PTR -2848[rbp]
	mov	rax, QWORD PTR -2832[rbp]
	mov	rdi, rdx
	movq	xmm0, rax
	call	PSameVector
	mov	QWORD PTR -2472[rbp], rax
	mov	rdx, QWORD PTR -2848[rbp]
	mov	rax, QWORD PTR -2472[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	PDiffVector
	mov	QWORD PTR -2464[rbp], rax
	mov	DWORD PTR -2788[rbp], 0
	jmp	.L1396
.L1426:
	mov	rax, QWORD PTR -2848[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2748[rbp], eax
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2456[rbp], xmm0
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2448[rbp], xmm0
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -2744[rbp], eax
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -2740[rbp], eax
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1397
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1397
	mov	rax, QWORD PTR -2808[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2772[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2772[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1399
.L1397:
	mov	eax, 0
.L1399:
	mov	QWORD PTR -2720[rbp], rax
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1400
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1400
	mov	rax, QWORD PTR -2816[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2768[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2768[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1402
.L1400:
	mov	eax, 0
.L1402:
	mov	QWORD PTR -2712[rbp], rax
	cmp	QWORD PTR -2720[rbp], 0
	jne	.L1403
	cmp	QWORD PTR -2712[rbp], 0
	jne	.L1403
	cmp	DWORD PTR -2744[rbp], 127
	jne	.L1404
	cmp	DWORD PTR -2740[rbp], 127
	jne	.L1404
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 127
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	jmp	.L1405
.L1404:
	cmp	DWORD PTR -2744[rbp], 127
	jne	.L1406
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	mov	edx, DWORD PTR -2740[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2464[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	subsd	xmm0, xmm1
	mulsd	xmm0, QWORD PTR -2448[rbp]
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	jmp	.L1405
.L1406:
	cmp	DWORD PTR -2740[rbp], 127
	jne	.L1407
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	mov	edx, DWORD PTR -2744[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2480[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	subsd	xmm0, xmm1
	mulsd	xmm0, QWORD PTR -2456[rbp]
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	jmp	.L1405
.L1407:
	mov	eax, DWORD PTR -2744[rbp]
	cmp	eax, DWORD PTR -2740[rbp]
	jne	.L1403
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	mov	edx, DWORD PTR -2744[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2456[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2456[rbp]
	movsd	xmm0, QWORD PTR .LC5[rip]
	mulsd	xmm0, xmm2
	addsd	xmm1, xmm0
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movapd	xmm2, xmm0
	mulsd	xmm2, QWORD PTR -2448[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm3, xmm0
	subsd	xmm3, QWORD PTR -2448[rbp]
	movsd	xmm0, QWORD PTR .LC5[rip]
	mulsd	xmm0, xmm3
	addsd	xmm0, xmm2
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -2440[rbp], xmm0
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2480[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2456[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2456[rbp]
	movsd	xmm0, QWORD PTR .LC5[rip]
	mulsd	xmm0, xmm2
	addsd	xmm1, xmm0
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2464[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movapd	xmm2, xmm0
	mulsd	xmm2, QWORD PTR -2448[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm3, xmm0
	subsd	xmm3, QWORD PTR -2448[rbp]
	movsd	xmm0, QWORD PTR .LC5[rip]
	mulsd	xmm0, xmm3
	addsd	xmm0, xmm2
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -2432[rbp], xmm0
	movsd	xmm1, QWORD PTR -2432[rbp]
	movsd	xmm0, QWORD PTR .LC325[rip]
	mulsd	xmm0, xmm1
	movapd	xmm1, xmm0
	addsd	xmm1, QWORD PTR -2440[rbp]
	movsd	xmm0, QWORD PTR -2440[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -2424[rbp], xmm0
	movsd	xmm0, QWORD PTR -2424[rbp]
	movsd	xmm2, QWORD PTR .LC5[rip]
	movapd	xmm1, xmm0
	subsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC150[rip]
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC325[rip]
	divsd	xmm0, xmm1
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC374[rip]
	comisd	xmm0, xmm1
	ja	.L1526
	jmp	.L1405
.L1526:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jle	.L1410
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	movsd	xmm4, QWORD PTR [rax]
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movsd	xmm3, QWORD PTR [rax]
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm7, xmm7
	cvtss2sd	xmm7, xmm0
	movq	rdx, xmm7
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm6, QWORD PTR -2432[rbp]
	movsd	xmm5, QWORD PTR -2440[rbp]
	movsd	xmm2, QWORD PTR -2448[rbp]
	movsd	xmm1, QWORD PTR -2456[rbp]
	movsd	xmm0, QWORD PTR .LC374[rip]
	movapd	xmm7, xmm6
	movapd	xmm6, xmm5
	movapd	xmm5, xmm4
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC387[rip]
	mov	rdi, rax
	mov	eax, 8
	call	fprintf@PLT
.L1410:
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR .LC388[rip]
	movss	DWORD PTR [rax], xmm0
	jmp	.L1405
.L1403:
	cmp	QWORD PTR -2720[rbp], 0
	jne	.L1411
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1412
.L1413:
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm1, xmm0
	subsd	xmm1, QWORD PTR -2456[rbp]
	movsd	xmm0, QWORD PTR .LC5[rip]
	mulsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2240[rbp+rax*4], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1412:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1413
	cmp	DWORD PTR -2744[rbp], 127
	je	.L1414
	mov	eax, DWORD PTR -2744[rbp]
	cdqe
	movss	xmm0, DWORD PTR -2240[rbp+rax*4]
	cvtss2sd	xmm0, xmm0
	addsd	xmm0, QWORD PTR -2456[rbp]
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2744[rbp]
	cdqe
	movss	DWORD PTR -2240[rbp+rax*4], xmm0
.L1414:
	lea	rax, -2240[rbp]
	mov	QWORD PTR -2720[rbp], rax
.L1411:
	cmp	QWORD PTR -2712[rbp], 0
	jne	.L1415
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1416
.L1417:
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm1, xmm0
	subsd	xmm1, QWORD PTR -2448[rbp]
	movsd	xmm0, QWORD PTR .LC5[rip]
	mulsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2160[rbp+rax*4], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1416:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1417
	cmp	DWORD PTR -2740[rbp], 127
	je	.L1418
	mov	eax, DWORD PTR -2740[rbp]
	cdqe
	movss	xmm0, DWORD PTR -2160[rbp+rax*4]
	cvtss2sd	xmm0, xmm0
	addsd	xmm0, QWORD PTR -2448[rbp]
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2740[rbp]
	cdqe
	movss	DWORD PTR -2160[rbp+rax*4], xmm0
.L1418:
	lea	rax, -2160[rbp]
	mov	QWORD PTR -2712[rbp], rax
.L1415:
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 127
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR .LC206[rip]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1419
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1419
	mov	rax, QWORD PTR -2632[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2776[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2776[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1421
.L1419:
	mov	eax, 0
.L1421:
	mov	QWORD PTR -2416[rbp], rax
	pxor	xmm0, xmm0
	movsd	QWORD PTR -2704[rbp], xmm0
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1422
.L1423:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2720[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm1, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2720[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, xmm3
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2480[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm2
	addsd	xmm1, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2712[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm2, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2712[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm3, xmm0
	subsd	xmm3, xmm4
	mov	eax, DWORD PTR -2748[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2464[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm3
	addsd	xmm0, xmm2
	mulsd	xmm0, xmm1
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2416[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2416[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -2704[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2704[rbp], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1422:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1423
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, QWORD PTR -2704[rbp]
	movsd	QWORD PTR -2408[rbp], xmm0
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1424
.L1425:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2416[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -2408[rbp]
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2416[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1424:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1425
.L1405:
	add	DWORD PTR -2788[rbp], 1
.L1396:
	mov	eax, DWORD PTR -2788[rbp]
	cmp	eax, DWORD PTR -2852[rbp]
	jl	.L1426
	mov	rax, QWORD PTR -2848[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2488[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -2488[rbp], rax
	mov	rax, QWORD PTR -2848[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2472[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -2472[rbp], rax
	mov	rax, QWORD PTR -2848[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2480[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -2480[rbp], rax
	mov	rax, QWORD PTR -2848[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2464[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -2464[rbp], rax
	jmp	.L1427
.L1386:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L1428
	mov	rax, QWORD PTR -2840[rbp]
	add	rax, 10320
	mov	QWORD PTR -2544[rbp], rax
	mov	DWORD PTR -2788[rbp], 0
	jmp	.L1429
.L1465:
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1430
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1430
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	ucomiss	xmm0, xmm1
	jp	.L1430
	pxor	xmm1, xmm1
	ucomiss	xmm0, xmm1
	jne	.L1430
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	ucomiss	xmm0, xmm1
	jp	.L1430
	pxor	xmm1, xmm1
	ucomiss	xmm0, xmm1
	jne	.L1430
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	jmp	.L1433
.L1430:
	mov	rax, QWORD PTR -2848[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2752[rbp], eax
	mov	eax, DWORD PTR -2752[rbp]
	sal	eax, 2
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2736[rbp]
	add	rax, rdx
	mov	QWORD PTR -2536[rbp], rax
	mov	eax, DWORD PTR -2752[rbp]
	sal	eax, 2
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2728[rbp]
	add	rax, rdx
	mov	QWORD PTR -2528[rbp], rax
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1434
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1434
	mov	rax, QWORD PTR -2808[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2772[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2772[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1436
.L1434:
	mov	eax, 0
.L1436:
	mov	QWORD PTR -2696[rbp], rax
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1437
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1437
	mov	rax, QWORD PTR -2816[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2768[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2768[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1439
.L1437:
	mov	eax, 0
.L1439:
	mov	QWORD PTR -2688[rbp], rax
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1440
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1440
	mov	rax, QWORD PTR -2632[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2776[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2776[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1442
.L1440:
	mov	eax, 0
.L1442:
	mov	QWORD PTR -2520[rbp], rax
	cmp	QWORD PTR -2520[rbp], 0
	jne	.L1443
	lea	rcx, __PRETTY_FUNCTION__.44[rip]
	mov	edx, 4916
	lea	rsi, .LC131[rip]
	lea	rdi, .LC336[rip]
	call	__assert_fail@PLT
.L1443:
	cmp	QWORD PTR -2696[rbp], 0
	jne	.L1444
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 160[rax]
	mov	rax, QWORD PTR -2840[rbp]
	add	rax, rdx
	mov	QWORD PTR -2696[rbp], rax
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2512[rbp], xmm0
	movsd	xmm0, QWORD PTR -2512[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L1444
	movsd	xmm0, QWORD PTR .LC4[rip]
	comisd	xmm0, QWORD PTR -2512[rbp]
	jbe	.L1444
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1447
.L1448:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2696[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2512[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2512[rbp]
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2544[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2400[rbp+rax*4], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1447:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1448
	lea	rax, -2400[rbp]
	mov	QWORD PTR -2696[rbp], rax
.L1444:
	cmp	QWORD PTR -2688[rbp], 0
	jne	.L1449
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 160[rax]
	mov	rax, QWORD PTR -2840[rbp]
	add	rax, rdx
	mov	QWORD PTR -2688[rbp], rax
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2504[rbp], xmm0
	movsd	xmm0, QWORD PTR -2504[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L1449
	movsd	xmm0, QWORD PTR .LC4[rip]
	comisd	xmm0, QWORD PTR -2504[rbp]
	jbe	.L1449
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1452
.L1453:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2688[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2504[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2504[rbp]
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2544[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2320[rbp+rax*4], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1452:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1453
	lea	rax, -2320[rbp]
	mov	QWORD PTR -2688[rbp], rax
.L1449:
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1454
.L1455:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2696[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2536[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2240[rbp+rax*4], xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2688[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2528[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2160[rbp+rax*4], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1454:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1455
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1456
.L1459:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -2680[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -2672[rbp], xmm0
	mov	DWORD PTR -2780[rbp], 0
	jmp	.L1457
.L1458:
	mov	eax, DWORD PTR -2780[rbp]
	cdqe
	movss	xmm1, DWORD PTR -2240[rbp+rax*4]
	mov	rdx, QWORD PTR -2840[rbp]
	mov	eax, DWORD PTR -2780[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -2784[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 40
	movss	xmm0, DWORD PTR [rdx+rax*4]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -2680[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2680[rbp], xmm0
	mov	eax, DWORD PTR -2780[rbp]
	cdqe
	movss	xmm1, DWORD PTR -2160[rbp+rax*4]
	mov	rdx, QWORD PTR -2840[rbp]
	mov	eax, DWORD PTR -2780[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -2784[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 40
	movss	xmm0, DWORD PTR [rdx+rax*4]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -2672[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2672[rbp], xmm0
	add	DWORD PTR -2780[rbp], 1
.L1457:
	cmp	DWORD PTR -2780[rbp], 3
	jle	.L1458
	movsd	xmm0, QWORD PTR -2680[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2672[rbp]
	mov	rax, QWORD PTR -2840[rbp]
	mov	edx, DWORD PTR -2784[rbp]
	movsx	rdx, edx
	add	rdx, 20
	movss	xmm0, DWORD PTR [rax+rdx*4]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2080[rbp+rax*4], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1456:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1459
	pxor	xmm0, xmm0
	movsd	QWORD PTR -2664[rbp], xmm0
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1460
.L1461:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	xmm0, DWORD PTR -2080[rbp+rax*4]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -2664[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2664[rbp], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1460:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1461
	movsd	xmm0, QWORD PTR -2664[rbp]
	comisd	xmm0, QWORD PTR .LC344[rip]
	ja	.L1462
	lea	rcx, __PRETTY_FUNCTION__.44[rip]
	mov	edx, 4965
	lea	rsi, .LC131[rip]
	lea	rdi, .LC389[rip]
	call	__assert_fail@PLT
.L1462:
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, QWORD PTR -2664[rbp]
	movsd	QWORD PTR -2496[rbp], xmm0
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1463
.L1464:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	xmm0, DWORD PTR -2080[rbp+rax*4]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -2496[rbp]
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2080[rbp+rax*4], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1463:
	cmp	DWORD PTR -2784[rbp], 3
	jle	.L1464
	mov	rax, QWORD PTR -2840[rbp]
	lea	rcx, 12000[rax]
	mov	rdx, QWORD PTR -2520[rbp]
	lea	rax, -2080[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	matrixt_by_vector4
.L1433:
	add	DWORD PTR -2788[rbp], 1
.L1429:
	mov	eax, DWORD PTR -2788[rbp]
	cmp	eax, DWORD PTR -2852[rbp]
	jl	.L1465
	jmp	.L1427
.L1428:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 20
	jne	.L1466
	mov	rax, QWORD PTR -2840[rbp]
	add	rax, 10320
	mov	QWORD PTR -2624[rbp], rax
	mov	DWORD PTR -2788[rbp], 0
	jmp	.L1467
.L1514:
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1468
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1468
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	ucomiss	xmm0, xmm1
	jp	.L1468
	pxor	xmm1, xmm1
	ucomiss	xmm0, xmm1
	jne	.L1468
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	ucomiss	xmm0, xmm1
	jp	.L1468
	pxor	xmm1, xmm1
	ucomiss	xmm0, xmm1
	jne	.L1468
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	jmp	.L1471
.L1468:
	mov	rax, QWORD PTR -2848[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2760[rbp], eax
	mov	edx, DWORD PTR -2760[rbp]
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	sal	eax, 2
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2736[rbp]
	add	rax, rdx
	mov	QWORD PTR -2616[rbp], rax
	mov	edx, DWORD PTR -2760[rbp]
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	sal	eax, 2
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2728[rbp]
	add	rax, rdx
	mov	QWORD PTR -2608[rbp], rax
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1472
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1472
	mov	rax, QWORD PTR -2808[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2772[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2772[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1474
.L1472:
	mov	eax, 0
.L1474:
	mov	QWORD PTR -2656[rbp], rax
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1475
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1475
	mov	rax, QWORD PTR -2816[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2768[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2768[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1477
.L1475:
	mov	eax, 0
.L1477:
	mov	QWORD PTR -2648[rbp], rax
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1478
	mov	rax, QWORD PTR -2632[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1478
	mov	rax, QWORD PTR -2632[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2776[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2776[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1480
.L1478:
	mov	eax, 0
.L1480:
	mov	QWORD PTR -2600[rbp], rax
	cmp	QWORD PTR -2600[rbp], 0
	jne	.L1481
	lea	rcx, __PRETTY_FUNCTION__.44[rip]
	mov	edx, 4996
	lea	rsi, .LC131[rip]
	lea	rdi, .LC336[rip]
	call	__assert_fail@PLT
.L1481:
	cmp	QWORD PTR -2656[rbp], 0
	jne	.L1482
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 160[rax]
	mov	rax, QWORD PTR -2840[rbp]
	add	rax, rdx
	mov	QWORD PTR -2656[rbp], rax
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2592[rbp], xmm0
	movsd	xmm0, QWORD PTR -2592[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L1482
	movsd	xmm0, QWORD PTR .LC4[rip]
	comisd	xmm0, QWORD PTR -2592[rbp]
	jbe	.L1482
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1485
.L1486:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2656[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2592[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2592[rbp]
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2624[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2400[rbp+rax*4], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1485:
	cmp	DWORD PTR -2784[rbp], 19
	jle	.L1486
	lea	rax, -2400[rbp]
	mov	QWORD PTR -2656[rbp], rax
.L1482:
	cmp	QWORD PTR -2648[rbp], 0
	jne	.L1487
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 160[rax]
	mov	rax, QWORD PTR -2840[rbp]
	add	rax, rdx
	mov	QWORD PTR -2648[rbp], rax
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2584[rbp], xmm0
	movsd	xmm0, QWORD PTR -2584[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L1487
	movsd	xmm0, QWORD PTR .LC4[rip]
	comisd	xmm0, QWORD PTR -2584[rbp]
	jbe	.L1487
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1490
.L1491:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2648[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2584[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2584[rbp]
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2624[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2320[rbp+rax*4], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1490:
	cmp	DWORD PTR -2784[rbp], 19
	jle	.L1491
	lea	rax, -2320[rbp]
	mov	QWORD PTR -2648[rbp], rax
.L1487:
	lea	rdx, -2240[rbp]
	mov	rsi, QWORD PTR -2616[rbp]
	mov	rax, QWORD PTR -2656[rbp]
	mov	rcx, rdx
	mov	edx, 20
	mov	rdi, rax
	call	vector_multiply
	lea	rdx, -2160[rbp]
	mov	rsi, QWORD PTR -2608[rbp]
	mov	rax, QWORD PTR -2648[rbp]
	mov	rcx, rdx
	mov	edx, 20
	mov	rdi, rax
	call	vector_multiply
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1492
.L1496:
	mov	eax, DWORD PTR -2784[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 160[rax]
	mov	rax, QWORD PTR -2840[rbp]
	add	rdx, rax
	lea	rsi, -2160[rbp]
	lea	rax, -2240[rbp]
	mov	ecx, 20
	mov	rdi, rax
	call	vector_dot_product_rot
	mov	rax, QWORD PTR -2840[rbp]
	mov	edx, DWORD PTR -2784[rbp]
	movsx	rdx, edx
	add	rdx, 20
	movss	xmm1, DWORD PTR [rax+rdx*4]
	mulss	xmm0, xmm1
	movss	DWORD PTR -2756[rbp], xmm0
	movss	xmm0, DWORD PTR -2756[rbp]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jb	.L1549
	movss	xmm0, DWORD PTR -2756[rbp]
	jmp	.L1495
.L1549:
	pxor	xmm0, xmm0
.L1495:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	DWORD PTR -2080[rbp+rax*4], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1492:
	cmp	DWORD PTR -2784[rbp], 19
	jle	.L1496
	lea	rax, -2080[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	vector_sum
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2576[rbp], xmm0
	movsd	xmm0, QWORD PTR -2576[rbp]
	comisd	xmm0, QWORD PTR .LC344[rip]
	ja	.L1497
	lea	rcx, __PRETTY_FUNCTION__.44[rip]
	mov	edx, 5028
	lea	rsi, .LC131[rip]
	lea	rdi, .LC389[rip]
	call	__assert_fail@PLT
.L1497:
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, QWORD PTR -2576[rbp]
	movsd	QWORD PTR -2568[rbp], xmm0
	pxor	xmm5, xmm5
	cvtsd2ss	xmm5, QWORD PTR -2568[rbp]
	movd	edx, xmm5
	lea	rax, -2080[rbp]
	mov	esi, 20
	movd	xmm0, edx
	mov	rdi, rax
	call	vector_multiply_by
	mov	DWORD PTR -2764[rbp], -1
	movzx	eax, BYTE PTR exactML[rip]
	xor	eax, 1
	test	al, al
	je	.L1498
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1499
.L1502:
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	xmm0, DWORD PTR -2080[rbp+rax*4]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR approxMLminf[rip]
	comisd	xmm0, xmm1
	jb	.L1550
	mov	eax, DWORD PTR -2784[rbp]
	mov	DWORD PTR -2764[rbp], eax
	jmp	.L1498
.L1550:
	add	DWORD PTR -2784[rbp], 1
.L1499:
	cmp	DWORD PTR -2784[rbp], 19
	jle	.L1502
.L1498:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -2640[rbp], xmm0
	cmp	DWORD PTR -2764[rbp], 0
	js	.L1503
	mov	eax, DWORD PTR -2764[rbp]
	cdqe
	movss	xmm0, DWORD PTR -2080[rbp+rax*4]
	mov	rcx, QWORD PTR -2840[rbp]
	mov	eax, DWORD PTR -2764[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 13680
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	mov	rcx, QWORD PTR -2840[rbp]
	mov	eax, DWORD PTR -2764[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 13680
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movsd	xmm1, QWORD PTR .LC4[rip]
	subsd	xmm1, xmm2
	divsd	xmm0, xmm1
	movsd	QWORD PTR -2640[rbp], xmm0
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1504
.L1507:
	mov	eax, DWORD PTR -2784[rbp]
	cmp	eax, DWORD PTR -2764[rbp]
	je	.L1505
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm1, xmm0
	subsd	xmm1, QWORD PTR -2640[rbp]
	mov	rdx, QWORD PTR -2840[rbp]
	mov	eax, DWORD PTR -2784[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -2764[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 3420
	movss	xmm0, DWORD PTR [rdx+rax*4]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -2560[rbp], xmm0
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	movss	xmm0, DWORD PTR -2080[rbp+rax*4]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR approxMLminratio[rip]
	mulsd	xmm0, xmm1
	comisd	xmm0, QWORD PTR -2560[rbp]
	jbe	.L1505
	mov	DWORD PTR -2764[rbp], -1
	jmp	.L1503
.L1505:
	add	DWORD PTR -2784[rbp], 1
.L1504:
	cmp	DWORD PTR -2784[rbp], 19
	jle	.L1507
.L1503:
	cmp	DWORD PTR -2764[rbp], 0
	js	.L1508
	mov	rax, QWORD PTR nAAPosteriorRough[rip]
	add	rax, 1
	mov	QWORD PTR nAAPosteriorRough[rip], rax
	mov	rax, QWORD PTR -2840[rbp]
	mov	edx, DWORD PTR -2764[rbp]
	movsx	rdx, edx
	add	rdx, 20
	movss	xmm0, DWORD PTR [rax+rdx*4]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -2640[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -2552[rbp], xmm0
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1509
.L1510:
	mov	rdx, QWORD PTR -2840[rbp]
	mov	eax, DWORD PTR -2784[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -2764[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 40
	movss	xmm0, DWORD PTR [rdx+rax*4]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2552[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2640[rbp]
	mov	rdx, QWORD PTR -2840[rbp]
	mov	eax, DWORD PTR -2784[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -2764[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 3820
	movss	xmm0, DWORD PTR [rdx+rax*4]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2600[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2784[rbp], 1
.L1509:
	cmp	DWORD PTR -2784[rbp], 19
	jle	.L1510
	jmp	.L1471
.L1508:
	mov	rax, QWORD PTR nAAPosteriorExact[rip]
	add	rax, 1
	mov	QWORD PTR nAAPosteriorExact[rip], rax
	mov	DWORD PTR -2784[rbp], 0
	jmp	.L1512
.L1513:
	mov	eax, DWORD PTR -2784[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 10400[rax]
	mov	rax, QWORD PTR -2840[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -2784[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2600[rbp]
	lea	rbx, [rdx+rax]
	lea	rax, -2080[rbp]
	mov	edx, 20
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_multiply_sum
	movd	eax, xmm0
	mov	DWORD PTR [rbx], eax
	add	DWORD PTR -2784[rbp], 1
.L1512:
	cmp	DWORD PTR -2784[rbp], 19
	jle	.L1513
.L1471:
	add	DWORD PTR -2788[rbp], 1
.L1467:
	mov	eax, DWORD PTR -2788[rbp]
	cmp	eax, DWORD PTR -2852[rbp]
	jl	.L1514
	jmp	.L1427
.L1466:
	lea	rcx, __PRETTY_FUNCTION__.44[rip]
	mov	edx, 5070
	lea	rsi, .LC131[rip]
	lea	rdi, .LC390[rip]
	call	__assert_fail@PLT
.L1427:
	cmp	QWORD PTR -2840[rbp], 0
	je	.L1515
	mov	rax, QWORD PTR -2848[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	eax, DWORD PTR nCodes[rip]
	cdqe
	imul	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2736[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -2736[rbp], rax
	mov	rax, QWORD PTR -2848[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	eax, DWORD PTR nCodes[rip]
	cdqe
	imul	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2728[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -2728[rbp], rax
.L1515:
	mov	rax, QWORD PTR -2632[rbp]
	mov	edx, DWORD PTR -2776[rbp]
	mov	DWORD PTR 24[rax], edx
	mov	rax, QWORD PTR -2632[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	jne	.L1516
	mov	eax, DWORD PTR nCodes[rip]
	movsx	rdx, eax
	mov	eax, DWORD PTR -2852[rbp]
	cdqe
	imul	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2632[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -2632[rbp]
	mov	QWORD PTR 16[rdx], rax
	jmp	.L1517
.L1516:
	mov	eax, DWORD PTR nCodes[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR -2632[rbp]
	mov	eax, DWORD PTR 24[rax]
	cdqe
	imul	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	eax, DWORD PTR nCodes[rip]
	movsx	rcx, eax
	mov	eax, DWORD PTR -2852[rbp]
	cdqe
	imul	rax, rcx
	lea	rsi, 0[0+rax*4]
	mov	rax, QWORD PTR -2632[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	ecx, 1
	mov	rdi, rax
	call	myrealloc
	mov	rdx, QWORD PTR -2632[rbp]
	mov	QWORD PTR 16[rdx], rax
.L1517:
	mov	rax, QWORD PTR -2632[rbp]
	mov	eax, DWORD PTR 24[rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR nProfileFreqAlloc[rip]
	add	rax, rdx
	mov	QWORD PTR nProfileFreqAlloc[rip], rax
	mov	rax, QWORD PTR -2632[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	eax, DWORD PTR -2852[rbp]
	sub	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR nProfileFreqAvoid[rip]
	add	rax, rdx
	mov	QWORD PTR nProfileFreqAvoid[rip], rax
	mov	DWORD PTR -2788[rbp], 0
	jmp	.L1518
.L1519:
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -2632[rbp]
	mov	rsi, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	add	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -2808[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -2816[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -2632[rbp]
	mov	rsi, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -2788[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	add	edx, ecx
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -2788[rbp], 1
.L1518:
	mov	eax, DWORD PTR -2788[rbp]
	cmp	eax, DWORD PTR -2856[rbp]
	jl	.L1519
	mov	rax, QWORD PTR nPosteriorCompute[rip]
	add	rax, 1
	mov	QWORD PTR nPosteriorCompute[rip], rax
	mov	rax, QWORD PTR -2632[rbp]
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L1521
	call	__stack_chk_fail@PLT
.L1521:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE553:
	.size	PosteriorProfile, .-PosteriorProfile
	.globl	PSameVector
	.type	PSameVector, @function
PSameVector:
.LFB554:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	movsd	QWORD PTR -24[rbp], xmm0
	mov	QWORD PTR -32[rbp], rdi
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L1552
.L1553:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -24[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC391[rip]
	mulsd	xmm1, xmm0
	movq	rax, xmm1
	movq	xmm0, rax
	call	exp@PLT
	movsd	xmm1, QWORD PTR .LC392[rip]
	mulsd	xmm1, xmm0
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR .LC5[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -12[rbp], 1
.L1552:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L1553
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE554:
	.size	PSameVector, .-PSameVector
	.globl	PDiffVector
	.type	PDiffVector, @function
PDiffVector:
.LFB555:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L1556
.L1557:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, xmm1
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR .LC325[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -12[rbp], 1
.L1556:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L1557
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE555:
	.size	PDiffVector, .-PDiffVector
	.globl	ExpEigenRates
	.type	ExpEigenRates, @function
ExpEigenRates:
.LFB556:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	movsd	QWORD PTR -40[rbp], xmm0
	mov	QWORD PTR -48[rbp], rdi
	mov	QWORD PTR -56[rbp], rsi
	mov	eax, DWORD PTR nCodes[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	imul	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -24[rbp], 0
	jmp	.L1560
.L1565:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1561
.L1564:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -40[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC393[rip]
	comisd	xmm0, QWORD PTR -16[rbp]
	jbe	.L1562
	movsd	xmm0, QWORD PTR .LC393[rip]
	movsd	QWORD PTR -16[rbp], xmm0
.L1562:
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -20[rbp]
	movsx	rdx, edx
	add	rdx, 3400
	movss	xmm0, DWORD PTR [rax+rdx*4]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -16[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	call	exp@PLT
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -24[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -20[rbp], 1
.L1561:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L1564
	add	DWORD PTR -24[rbp], 1
.L1560:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L1565
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE556:
	.size	ExpEigenRates, .-ExpEigenRates
	.section	.rodata
	.align 8
.LC394:
	.string	"rates != NULL && rates->nRateCategories > 0"
.LC395:
	.string	"lkAB > 0"
	.align 8
.LC399:
	.string	"# FastTree.c::PairLogLk -- numerical problem!\n"
	.align 8
.LC400:
	.string	"# This block is intended for loading into R\n"
.LC401:
	.string	"lkAB = %.8g\n"
	.align 8
.LC402:
	.string	"Branch_length= %.8g\nalignment_position=%d\nnCodes=%d\nrate_category=%d\nrate=%.8g\n"
.LC403:
	.string	"wA=%.8g\nwB=%.8g\n"
.LC404:
	.string	"codeA = %d\ncodeB = %d\n"
.LC405:
	.string	"fA = c("
.LC406:
	.string	","
.LC407:
	.string	"%s %.8g"
.LC408:
	.string	")\n"
.LC409:
	.string	"fB = c("
.LC410:
	.string	"stat = c("
.LC411:
	.string	"eigenval = c("
.LC412:
	.string	"expeigen = c("
.LC413:
	.string	"codeFreq = c("
.LC414:
	.string	"eigeninv = c("
	.align 8
.LC415:
	.string	"# Transform into matrices and compute un-rotated vectors for profiles A and B\n"
	.align 8
.LC416:
	.string	"codeFreq = matrix(codeFreq,nrow=20);\n"
	.align 8
.LC417:
	.string	"eigeninv = matrix(eigeninv,nrow=20);\n"
	.align 8
.LC418:
	.string	"unrotA = stat * (eigeninv %*% fA)\n"
	.align 8
.LC419:
	.string	"unrotB = stat * (eigeninv %*% fB)\n"
.LC420:
	.string	"# End of R block\n"
	.text
	.globl	PairLogLk
	.type	PairLogLk, @function
PairLogLk:
.LFB557:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 2464
	mov	QWORD PTR -2408[rbp], rdi
	mov	QWORD PTR -2416[rbp], rsi
	movsd	QWORD PTR -2424[rbp], xmm0
	mov	DWORD PTR -2428[rbp], edx
	mov	QWORD PTR -2440[rbp], rcx
	mov	QWORD PTR -2448[rbp], r8
	mov	QWORD PTR -2456[rbp], r9
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -2328[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -2320[rbp], xmm0
	cmp	QWORD PTR -2448[rbp], 0
	je	.L1569
	mov	rax, QWORD PTR -2448[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jg	.L1725
.L1569:
	lea	rcx, __PRETTY_FUNCTION__.43[rip]
	mov	edx, 5137
	lea	rsi, .LC131[rip]
	lea	rdi, .LC394[rip]
	call	__assert_fail@PLT
.L1725:
	mov	QWORD PTR -2312[rbp], 0
	cmp	QWORD PTR -2440[rbp], 0
	je	.L1571
	mov	rcx, QWORD PTR -2448[rbp]
	mov	rdx, QWORD PTR -2440[rbp]
	mov	rax, QWORD PTR -2424[rbp]
	mov	rsi, rcx
	mov	rdi, rdx
	movq	xmm0, rax
	call	ExpEigenRates
	mov	QWORD PTR -2312[rbp], rax
.L1571:
	cmp	QWORD PTR -2440[rbp], 0
	jne	.L1572
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	je	.L1573
	lea	rcx, __PRETTY_FUNCTION__.43[rip]
	mov	edx, 5143
	lea	rsi, .LC131[rip]
	lea	rdi, .LC385[rip]
	call	__assert_fail@PLT
.L1573:
	mov	rdx, QWORD PTR -2448[rbp]
	mov	rax, QWORD PTR -2424[rbp]
	mov	rdi, rdx
	movq	xmm0, rax
	call	PSameVector
	mov	QWORD PTR -2192[rbp], rax
	mov	rdx, QWORD PTR -2448[rbp]
	mov	rax, QWORD PTR -2192[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	PDiffVector
	mov	QWORD PTR -2184[rbp], rax
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1574
.L1579:
	mov	DWORD PTR -2384[rbp], 0
	jmp	.L1575
.L1578:
	mov	eax, DWORD PTR -2388[rbp]
	cmp	eax, DWORD PTR -2384[rbp]
	jne	.L1576
	movss	xmm0, DWORD PTR .LC206[rip]
	jmp	.L1577
.L1576:
	pxor	xmm0, xmm0
.L1577:
	mov	eax, DWORD PTR -2384[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	DWORD PTR -2064[rbp+rax*4], xmm0
	add	DWORD PTR -2384[rbp], 1
.L1575:
	cmp	DWORD PTR -2384[rbp], 3
	jle	.L1578
	add	DWORD PTR -2388[rbp], 1
.L1574:
	cmp	DWORD PTR -2388[rbp], 3
	jle	.L1579
	mov	DWORD PTR -2384[rbp], 0
	jmp	.L1580
.L1581:
	mov	eax, DWORD PTR -2384[rbp]
	cdqe
	add	rax, 508
	movss	xmm0, DWORD PTR .LC386[rip]
	movss	DWORD PTR -2064[rbp+rax*4], xmm0
	add	DWORD PTR -2384[rbp], 1
.L1580:
	cmp	DWORD PTR -2384[rbp], 3
	jle	.L1581
	mov	DWORD PTR -2380[rbp], 0
	mov	DWORD PTR -2376[rbp], 0
	mov	DWORD PTR -2392[rbp], 0
	jmp	.L1582
.L1605:
	mov	rax, QWORD PTR -2448[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2340[rbp], eax
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2176[rbp], xmm0
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2168[rbp], xmm0
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -2336[rbp], eax
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -2332[rbp], eax
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1583
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1583
	mov	rax, QWORD PTR -2408[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2380[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2380[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1585
.L1583:
	mov	eax, 0
.L1585:
	mov	QWORD PTR -2160[rbp], rax
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1586
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1586
	mov	rax, QWORD PTR -2416[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2376[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2376[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1588
.L1586:
	mov	eax, 0
.L1588:
	mov	QWORD PTR -2152[rbp], rax
	pxor	xmm0, xmm0
	movsd	QWORD PTR -2304[rbp], xmm0
	cmp	QWORD PTR -2160[rbp], 0
	jne	.L1589
	cmp	QWORD PTR -2152[rbp], 0
	jne	.L1589
	cmp	DWORD PTR -2336[rbp], 127
	jne	.L1590
	movsd	xmm0, QWORD PTR .LC5[rip]
	movsd	QWORD PTR -2304[rbp], xmm0
	jmp	.L1594
.L1590:
	cmp	DWORD PTR -2332[rbp], 127
	jne	.L1592
	movsd	xmm0, QWORD PTR .LC5[rip]
	movsd	QWORD PTR -2304[rbp], xmm0
	jmp	.L1594
.L1592:
	mov	eax, DWORD PTR -2336[rbp]
	cmp	eax, DWORD PTR -2332[rbp]
	jne	.L1593
	mov	eax, DWORD PTR -2340[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2192[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, QWORD PTR -2176[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2168[rbp]
	movsd	xmm0, QWORD PTR -2176[rbp]
	movapd	xmm3, xmm0
	mulsd	xmm3, QWORD PTR -2168[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, xmm3
	movsd	xmm0, QWORD PTR .LC5[rip]
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2304[rbp], xmm0
	jmp	.L1594
.L1593:
	mov	eax, DWORD PTR -2340[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2184[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, QWORD PTR -2176[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2168[rbp]
	movsd	xmm0, QWORD PTR -2176[rbp]
	movapd	xmm3, xmm0
	mulsd	xmm3, QWORD PTR -2168[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, xmm3
	movsd	xmm0, QWORD PTR .LC5[rip]
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2304[rbp], xmm0
	jmp	.L1594
.L1589:
	cmp	QWORD PTR -2160[rbp], 0
	jne	.L1595
	cmp	DWORD PTR -2336[rbp], 127
	jne	.L1596
	movsd	xmm0, QWORD PTR .LC5[rip]
	movsd	QWORD PTR -2304[rbp], xmm0
	jmp	.L1594
.L1596:
	mov	eax, DWORD PTR -2340[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2184[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -2336[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2152[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	eax, DWORD PTR -2340[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2192[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -2340[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2184[rbp]
	add	rax, rdx
	movsd	xmm3, QWORD PTR [rax]
	subsd	xmm0, xmm3
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2176[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2176[rbp]
	movsd	xmm0, QWORD PTR .LC5[rip]
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2304[rbp], xmm0
	jmp	.L1594
.L1595:
	cmp	QWORD PTR -2152[rbp], 0
	jne	.L1597
	cmp	DWORD PTR -2332[rbp], 127
	jne	.L1598
	movsd	xmm0, QWORD PTR .LC5[rip]
	movsd	QWORD PTR -2304[rbp], xmm0
	jmp	.L1594
.L1598:
	mov	eax, DWORD PTR -2340[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2184[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -2332[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2160[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	eax, DWORD PTR -2340[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2192[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -2340[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2184[rbp]
	add	rax, rdx
	movsd	xmm3, QWORD PTR [rax]
	subsd	xmm0, xmm3
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2168[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2168[rbp]
	movsd	xmm0, QWORD PTR .LC5[rip]
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2304[rbp], xmm0
	jmp	.L1594
.L1597:
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1599
.L1600:
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2152[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2160[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	eax, DWORD PTR -2340[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2192[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm2, xmm0
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2160[rbp]
	add	rax, rdx
	movss	xmm3, DWORD PTR [rax]
	movss	xmm0, DWORD PTR .LC206[rip]
	subss	xmm0, xmm3
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	mov	eax, DWORD PTR -2340[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2184[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm3
	addsd	xmm0, xmm2
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -2304[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2304[rbp], xmm0
	add	DWORD PTR -2388[rbp], 1
.L1599:
	cmp	DWORD PTR -2388[rbp], 3
	jle	.L1600
.L1594:
	movsd	xmm0, QWORD PTR -2304[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	ja	.L1601
	lea	rcx, __PRETTY_FUNCTION__.43[rip]
	mov	edx, 5198
	lea	rsi, .LC131[rip]
	lea	rdi, .LC395[rip]
	call	__assert_fail@PLT
.L1601:
	movsd	xmm0, QWORD PTR -2328[rbp]
	mulsd	xmm0, QWORD PTR -2304[rbp]
	movsd	QWORD PTR -2328[rbp], xmm0
	jmp	.L1602
.L1603:
	movsd	xmm0, QWORD PTR .LC396[rip]
	movsd	xmm1, QWORD PTR -2328[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -2328[rbp], xmm0
	movsd	xmm1, QWORD PTR .LC397[rip]
	movsd	xmm0, QWORD PTR -2320[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -2320[rbp], xmm0
.L1602:
	movsd	xmm0, QWORD PTR .LC398[rip]
	comisd	xmm0, QWORD PTR -2328[rbp]
	ja	.L1603
	cmp	QWORD PTR -2456[rbp], 0
	je	.L1604
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2456[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2456[rbp]
	add	rax, rdx
	mulsd	xmm0, QWORD PTR -2304[rbp]
	movsd	QWORD PTR [rax], xmm0
.L1604:
	add	DWORD PTR -2392[rbp], 1
.L1582:
	mov	eax, DWORD PTR -2392[rbp]
	cmp	eax, DWORD PTR -2428[rbp]
	jl	.L1605
	mov	rax, QWORD PTR -2448[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2192[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -2192[rbp], rax
	mov	rax, QWORD PTR -2448[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2184[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -2184[rbp], rax
	jmp	.L1606
.L1572:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L1607
	mov	DWORD PTR -2372[rbp], 0
	mov	DWORD PTR -2368[rbp], 0
	mov	rax, QWORD PTR -2440[rbp]
	add	rax, 10320
	mov	QWORD PTR -2224[rbp], rax
	mov	DWORD PTR -2392[rbp], 0
	jmp	.L1608
.L1639:
	mov	rax, QWORD PTR -2448[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2344[rbp], eax
	mov	eax, DWORD PTR -2344[rbp]
	sal	eax, 2
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2312[rbp]
	add	rax, rdx
	mov	QWORD PTR -2216[rbp], rax
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2208[rbp], xmm0
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2200[rbp], xmm0
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -2208[rbp]
	jp	.L1609
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -2208[rbp]
	jne	.L1609
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -2200[rbp]
	jp	.L1609
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -2200[rbp]
	jne	.L1609
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1609
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L1726
.L1609:
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1613
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1613
	mov	rax, QWORD PTR -2408[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2372[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2372[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1615
.L1613:
	mov	eax, 0
.L1615:
	mov	QWORD PTR -2296[rbp], rax
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1616
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1616
	mov	rax, QWORD PTR -2416[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2368[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2368[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1618
.L1616:
	mov	eax, 0
.L1618:
	mov	QWORD PTR -2288[rbp], rax
	cmp	QWORD PTR -2296[rbp], 0
	jne	.L1619
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 160[rax]
	mov	rax, QWORD PTR -2440[rbp]
	add	rax, rdx
	mov	QWORD PTR -2296[rbp], rax
.L1619:
	movsd	xmm0, QWORD PTR -2208[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L1620
	movsd	xmm0, QWORD PTR .LC4[rip]
	comisd	xmm0, QWORD PTR -2208[rbp]
	jbe	.L1620
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1623
.L1624:
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2296[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2208[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2208[rbp]
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2224[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	movss	DWORD PTR -2144[rbp+rax*4], xmm0
	add	DWORD PTR -2388[rbp], 1
.L1623:
	cmp	DWORD PTR -2388[rbp], 3
	jle	.L1624
	lea	rax, -2144[rbp]
	mov	QWORD PTR -2296[rbp], rax
.L1620:
	cmp	QWORD PTR -2288[rbp], 0
	jne	.L1625
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 160[rax]
	mov	rax, QWORD PTR -2440[rbp]
	add	rax, rdx
	mov	QWORD PTR -2288[rbp], rax
.L1625:
	movsd	xmm0, QWORD PTR -2200[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L1626
	movsd	xmm0, QWORD PTR .LC4[rip]
	comisd	xmm0, QWORD PTR -2200[rbp]
	jbe	.L1626
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1629
.L1630:
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2288[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2200[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2200[rbp]
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2224[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	movss	DWORD PTR -2064[rbp+rax*4], xmm0
	add	DWORD PTR -2388[rbp], 1
.L1629:
	cmp	DWORD PTR -2388[rbp], 3
	jle	.L1630
	lea	rax, -2064[rbp]
	mov	QWORD PTR -2288[rbp], rax
.L1626:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -2280[rbp], xmm0
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1631
.L1632:
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2216[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2296[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm1, xmm0
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2288[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -2280[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2280[rbp], xmm0
	add	DWORD PTR -2388[rbp], 1
.L1631:
	cmp	DWORD PTR -2388[rbp], 3
	jle	.L1632
	movsd	xmm0, QWORD PTR -2280[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	ja	.L1633
	lea	rcx, __PRETTY_FUNCTION__.43[rip]
	mov	edx, 5246
	lea	rsi, .LC131[rip]
	lea	rdi, .LC395[rip]
	call	__assert_fail@PLT
.L1633:
	cmp	QWORD PTR -2456[rbp], 0
	je	.L1634
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2456[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2456[rbp]
	add	rax, rdx
	mulsd	xmm0, QWORD PTR -2280[rbp]
	movsd	QWORD PTR [rax], xmm0
.L1634:
	movsd	xmm0, QWORD PTR -2328[rbp]
	mulsd	xmm0, QWORD PTR -2280[rbp]
	movsd	QWORD PTR -2328[rbp], xmm0
	jmp	.L1635
.L1636:
	movsd	xmm0, QWORD PTR .LC396[rip]
	movsd	xmm1, QWORD PTR -2328[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -2328[rbp], xmm0
	movsd	xmm1, QWORD PTR .LC397[rip]
	movsd	xmm0, QWORD PTR -2320[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -2320[rbp], xmm0
.L1635:
	movsd	xmm0, QWORD PTR .LC398[rip]
	comisd	xmm0, QWORD PTR -2328[rbp]
	ja	.L1636
	jmp	.L1637
.L1638:
	movsd	xmm0, QWORD PTR .LC398[rip]
	movsd	xmm1, QWORD PTR -2328[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -2328[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC397[rip]
	movsd	xmm1, QWORD PTR -2320[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2320[rbp], xmm0
.L1637:
	movsd	xmm1, QWORD PTR .LC396[rip]
	movsd	xmm0, QWORD PTR -2328[rbp]
	comisd	xmm0, xmm1
	ja	.L1638
	jmp	.L1612
.L1726:
	nop
.L1612:
	add	DWORD PTR -2392[rbp], 1
.L1608:
	mov	eax, DWORD PTR -2392[rbp]
	cmp	eax, DWORD PTR -2428[rbp]
	jl	.L1639
	jmp	.L1606
.L1607:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 20
	jne	.L1640
	mov	DWORD PTR -2364[rbp], 0
	mov	DWORD PTR -2360[rbp], 0
	mov	rax, QWORD PTR -2440[rbp]
	add	rax, 10320
	mov	QWORD PTR -2256[rbp], rax
	mov	DWORD PTR -2392[rbp], 0
	jmp	.L1641
.L1703:
	mov	rax, QWORD PTR -2448[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2352[rbp], eax
	mov	edx, DWORD PTR -2352[rbp]
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	sal	eax, 2
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2312[rbp]
	add	rax, rdx
	mov	QWORD PTR -2248[rbp], rax
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2240[rbp], xmm0
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -2232[rbp], xmm0
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -2240[rbp]
	jp	.L1642
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -2240[rbp]
	jne	.L1642
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -2232[rbp]
	jp	.L1642
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -2232[rbp]
	jne	.L1642
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1642
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	je	.L1727
.L1642:
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1646
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1646
	mov	rax, QWORD PTR -2408[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2364[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2364[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1648
.L1646:
	mov	eax, 0
.L1648:
	mov	QWORD PTR -2272[rbp], rax
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L1649
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1649
	mov	rax, QWORD PTR -2416[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -2360[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2360[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L1651
.L1649:
	mov	eax, 0
.L1651:
	mov	QWORD PTR -2264[rbp], rax
	cmp	QWORD PTR -2272[rbp], 0
	jne	.L1652
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 160[rax]
	mov	rax, QWORD PTR -2440[rbp]
	add	rax, rdx
	mov	QWORD PTR -2272[rbp], rax
.L1652:
	movsd	xmm0, QWORD PTR -2240[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L1653
	movsd	xmm0, QWORD PTR .LC4[rip]
	comisd	xmm0, QWORD PTR -2240[rbp]
	jbe	.L1653
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1656
.L1657:
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2272[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2240[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2240[rbp]
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2256[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	movss	DWORD PTR -2144[rbp+rax*4], xmm0
	add	DWORD PTR -2388[rbp], 1
.L1656:
	cmp	DWORD PTR -2388[rbp], 19
	jle	.L1657
	lea	rax, -2144[rbp]
	mov	QWORD PTR -2272[rbp], rax
.L1653:
	cmp	QWORD PTR -2264[rbp], 0
	jne	.L1658
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 160[rax]
	mov	rax, QWORD PTR -2440[rbp]
	add	rax, rdx
	mov	QWORD PTR -2264[rbp], rax
.L1658:
	movsd	xmm0, QWORD PTR -2232[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L1659
	movsd	xmm0, QWORD PTR .LC4[rip]
	comisd	xmm0, QWORD PTR -2232[rbp]
	jbe	.L1659
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1662
.L1663:
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2264[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -2232[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -2232[rbp]
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2256[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	movss	DWORD PTR -2064[rbp+rax*4], xmm0
	add	DWORD PTR -2388[rbp], 1
.L1662:
	cmp	DWORD PTR -2388[rbp], 19
	jle	.L1663
	lea	rax, -2064[rbp]
	mov	QWORD PTR -2264[rbp], rax
.L1659:
	mov	rdx, QWORD PTR -2264[rbp]
	mov	rsi, QWORD PTR -2272[rbp]
	mov	rax, QWORD PTR -2248[rbp]
	mov	ecx, 20
	mov	rdi, rax
	call	vector_multiply3_sum
	movd	eax, xmm0
	mov	DWORD PTR -2348[rbp], eax
	movss	xmm0, DWORD PTR -2348[rbp]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	seta	al
	xor	eax, 1
	test	al, al
	je	.L1664
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 46
	mov	esi, 1
	lea	rdi, .LC399[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 44
	mov	esi, 1
	lea	rdi, .LC400[rip]
	call	fwrite@PLT
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, DWORD PTR -2348[rbp]
	movq	rdx, xmm4
	mov	rax, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	lea	rsi, .LC401[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	mov	rax, QWORD PTR -2448[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2352[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mov	ecx, DWORD PTR nCodes[rip]
	mov	rax, QWORD PTR stderr[rip]
	mov	edi, DWORD PTR -2352[rbp]
	mov	edx, DWORD PTR -2392[rbp]
	mov	rsi, QWORD PTR -2424[rbp]
	movapd	xmm1, xmm0
	mov	r8d, edi
	movq	xmm0, rsi
	lea	rsi, .LC402[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm0, QWORD PTR -2232[rbp]
	mov	rdx, QWORD PTR -2240[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC403[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	mov	rax, QWORD PTR -2416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -2408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC404[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 7
	mov	esi, 1
	lea	rdi, .LC405[rip]
	call	fwrite@PLT
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1665
.L1668:
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2272[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm5, xmm5
	cvtss2sd	xmm5, xmm0
	movq	rdx, xmm5
	cmp	DWORD PTR -2388[rbp], 0
	jne	.L1666
	lea	rax, .LC114[rip]
	jmp	.L1667
.L1666:
	lea	rax, .LC406[rip]
.L1667:
	mov	rcx, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	mov	rdx, rax
	lea	rsi, .LC407[rip]
	mov	rdi, rcx
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -2388[rbp], 1
.L1665:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -2388[rbp], eax
	jl	.L1668
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 2
	mov	esi, 1
	lea	rdi, .LC408[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 7
	mov	esi, 1
	lea	rdi, .LC409[rip]
	call	fwrite@PLT
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1669
.L1672:
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2264[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm6, xmm6
	cvtss2sd	xmm6, xmm0
	movq	rdx, xmm6
	cmp	DWORD PTR -2388[rbp], 0
	jne	.L1670
	lea	rax, .LC114[rip]
	jmp	.L1671
.L1670:
	lea	rax, .LC406[rip]
.L1671:
	mov	rcx, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	mov	rdx, rax
	lea	rsi, .LC407[rip]
	mov	rdi, rcx
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -2388[rbp], 1
.L1669:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -2388[rbp], eax
	jl	.L1672
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 2
	mov	esi, 1
	lea	rdi, .LC408[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 9
	mov	esi, 1
	lea	rdi, .LC410[rip]
	call	fwrite@PLT
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1673
.L1676:
	mov	rax, QWORD PTR -2440[rbp]
	mov	edx, DWORD PTR -2388[rbp]
	movsx	rdx, edx
	movss	xmm0, DWORD PTR [rax+rdx*4]
	pxor	xmm7, xmm7
	cvtss2sd	xmm7, xmm0
	movq	rdx, xmm7
	cmp	DWORD PTR -2388[rbp], 0
	jne	.L1674
	lea	rax, .LC114[rip]
	jmp	.L1675
.L1674:
	lea	rax, .LC406[rip]
.L1675:
	mov	rcx, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	mov	rdx, rax
	lea	rsi, .LC407[rip]
	mov	rdi, rcx
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -2388[rbp], 1
.L1673:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -2388[rbp], eax
	jl	.L1676
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 2
	mov	esi, 1
	lea	rdi, .LC408[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 13
	mov	esi, 1
	lea	rdi, .LC411[rip]
	call	fwrite@PLT
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1677
.L1680:
	mov	rax, QWORD PTR -2440[rbp]
	mov	edx, DWORD PTR -2388[rbp]
	movsx	rdx, edx
	add	rdx, 3400
	movss	xmm0, DWORD PTR [rax+rdx*4]
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm0
	movq	rdx, xmm4
	cmp	DWORD PTR -2388[rbp], 0
	jne	.L1678
	lea	rax, .LC114[rip]
	jmp	.L1679
.L1678:
	lea	rax, .LC406[rip]
.L1679:
	mov	rcx, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	mov	rdx, rax
	lea	rsi, .LC407[rip]
	mov	rdi, rcx
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -2388[rbp], 1
.L1677:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -2388[rbp], eax
	jl	.L1680
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 2
	mov	esi, 1
	lea	rdi, .LC408[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 13
	mov	esi, 1
	lea	rdi, .LC412[rip]
	call	fwrite@PLT
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1681
.L1684:
	mov	eax, DWORD PTR -2388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2248[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm5, xmm5
	cvtss2sd	xmm5, xmm0
	movq	rdx, xmm5
	cmp	DWORD PTR -2388[rbp], 0
	jne	.L1682
	lea	rax, .LC114[rip]
	jmp	.L1683
.L1682:
	lea	rax, .LC406[rip]
.L1683:
	mov	rcx, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	mov	rdx, rax
	lea	rsi, .LC407[rip]
	mov	rdi, rcx
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -2388[rbp], 1
.L1681:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -2388[rbp], eax
	jl	.L1684
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 2
	mov	esi, 1
	lea	rdi, .LC408[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 13
	mov	esi, 1
	lea	rdi, .LC413[rip]
	call	fwrite@PLT
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1685
.L1690:
	mov	DWORD PTR -2356[rbp], 0
	jmp	.L1686
.L1689:
	mov	rdx, QWORD PTR -2440[rbp]
	mov	eax, DWORD PTR -2356[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -2388[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 40
	movss	xmm0, DWORD PTR [rdx+rax*4]
	pxor	xmm6, xmm6
	cvtss2sd	xmm6, xmm0
	movq	rdx, xmm6
	cmp	DWORD PTR -2388[rbp], 0
	jne	.L1687
	cmp	DWORD PTR -2356[rbp], 0
	jne	.L1687
	lea	rax, .LC114[rip]
	jmp	.L1688
.L1687:
	lea	rax, .LC406[rip]
.L1688:
	mov	rcx, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	mov	rdx, rax
	lea	rsi, .LC407[rip]
	mov	rdi, rcx
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -2356[rbp], 1
.L1686:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -2356[rbp], eax
	jl	.L1689
	add	DWORD PTR -2388[rbp], 1
.L1685:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -2388[rbp], eax
	jl	.L1690
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 2
	mov	esi, 1
	lea	rdi, .LC408[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 13
	mov	esi, 1
	lea	rdi, .LC414[rip]
	call	fwrite@PLT
	mov	DWORD PTR -2388[rbp], 0
	jmp	.L1691
.L1696:
	mov	DWORD PTR -2356[rbp], 0
	jmp	.L1692
.L1695:
	mov	rdx, QWORD PTR -2440[rbp]
	mov	eax, DWORD PTR -2356[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -2388[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 2600
	movss	xmm0, DWORD PTR [rdx+rax*4]
	pxor	xmm7, xmm7
	cvtss2sd	xmm7, xmm0
	movq	rdx, xmm7
	cmp	DWORD PTR -2388[rbp], 0
	jne	.L1693
	cmp	DWORD PTR -2356[rbp], 0
	jne	.L1693
	lea	rax, .LC114[rip]
	jmp	.L1694
.L1693:
	lea	rax, .LC406[rip]
.L1694:
	mov	rcx, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	mov	rdx, rax
	lea	rsi, .LC407[rip]
	mov	rdi, rcx
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -2356[rbp], 1
.L1692:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -2356[rbp], eax
	jl	.L1695
	add	DWORD PTR -2388[rbp], 1
.L1691:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -2388[rbp], eax
	jl	.L1696
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 2
	mov	esi, 1
	lea	rdi, .LC408[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 78
	mov	esi, 1
	lea	rdi, .LC415[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 37
	mov	esi, 1
	lea	rdi, .LC416[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 37
	mov	esi, 1
	lea	rdi, .LC417[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 34
	mov	esi, 1
	lea	rdi, .LC418[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 34
	mov	esi, 1
	lea	rdi, .LC419[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 17
	mov	esi, 1
	lea	rdi, .LC420[rip]
	call	fwrite@PLT
.L1664:
	movss	xmm0, DWORD PTR -2348[rbp]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	ja	.L1697
	lea	rcx, __PRETTY_FUNCTION__.43[rip]
	mov	edx, 5342
	lea	rsi, .LC131[rip]
	lea	rdi, .LC395[rip]
	call	__assert_fail@PLT
.L1697:
	cmp	QWORD PTR -2456[rbp], 0
	je	.L1698
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2456[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	pxor	xmm0, xmm0
	cvtss2sd	xmm0, DWORD PTR -2348[rbp]
	mov	eax, DWORD PTR -2392[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -2456[rbp]
	add	rax, rdx
	mulsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
.L1698:
	pxor	xmm0, xmm0
	cvtss2sd	xmm0, DWORD PTR -2348[rbp]
	movsd	xmm1, QWORD PTR -2328[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -2328[rbp], xmm0
	jmp	.L1699
.L1700:
	movsd	xmm0, QWORD PTR .LC396[rip]
	movsd	xmm1, QWORD PTR -2328[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -2328[rbp], xmm0
	movsd	xmm1, QWORD PTR .LC397[rip]
	movsd	xmm0, QWORD PTR -2320[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -2320[rbp], xmm0
.L1699:
	movsd	xmm0, QWORD PTR .LC398[rip]
	comisd	xmm0, QWORD PTR -2328[rbp]
	ja	.L1700
	jmp	.L1701
.L1702:
	movsd	xmm0, QWORD PTR .LC398[rip]
	movsd	xmm1, QWORD PTR -2328[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -2328[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC397[rip]
	movsd	xmm1, QWORD PTR -2320[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2320[rbp], xmm0
.L1701:
	movsd	xmm1, QWORD PTR .LC396[rip]
	movsd	xmm0, QWORD PTR -2328[rbp]
	comisd	xmm0, xmm1
	ja	.L1702
	jmp	.L1645
.L1727:
	nop
.L1645:
	add	DWORD PTR -2392[rbp], 1
.L1641:
	mov	eax, DWORD PTR -2392[rbp]
	cmp	eax, DWORD PTR -2428[rbp]
	jl	.L1703
	jmp	.L1606
.L1640:
	lea	rcx, __PRETTY_FUNCTION__.43[rip]
	mov	edx, 5356
	lea	rsi, .LC131[rip]
	lea	rdi, .LC390[rip]
	call	__assert_fail@PLT
.L1606:
	cmp	QWORD PTR -2440[rbp], 0
	je	.L1704
	mov	rax, QWORD PTR -2448[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -2312[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -2312[rbp], rax
.L1704:
	mov	rax, QWORD PTR -2328[rbp]
	movq	xmm0, rax
	call	log@PLT
	movsd	xmm1, QWORD PTR -2320[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -2320[rbp], xmm0
	mov	rax, QWORD PTR nLkCompute[rip]
	add	rax, 1
	mov	QWORD PTR nLkCompute[rip], rax
	movsd	xmm0, QWORD PTR -2320[rbp]
	movq	rax, xmm0
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1706
	call	__stack_chk_fail@PLT
.L1706:
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE557:
	.size	PairLogLk, .-PairLogLk
	.globl	MLQuartetLogLk
	.type	MLQuartetLogLk, @function
MLQuartetLogLk:
.LFB558:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	DWORD PTR -68[rbp], r8d
	mov	QWORD PTR -80[rbp], r9
	mov	rax, QWORD PTR 24[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rbp]
	mov	rdi, QWORD PTR [rax]
	mov	ecx, DWORD PTR -68[rbp]
	mov	rdx, QWORD PTR -80[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9d, 0
	mov	r8d, ecx
	mov	rcx, QWORD PTR 16[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR 24[rbp]
	add	rax, 24
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rbp]
	add	rax, 16
	mov	rdi, QWORD PTR [rax]
	mov	ecx, DWORD PTR -68[rbp]
	mov	rdx, QWORD PTR -80[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r9d, 0
	mov	r8d, ecx
	mov	rcx, QWORD PTR 16[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR 32[rbp], 0
	je	.L1729
	mov	DWORD PTR -28[rbp], 0
	jmp	.L1730
.L1731:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR 32[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -28[rbp], 1
.L1730:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jl	.L1731
.L1729:
	mov	rax, QWORD PTR 24[rbp]
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	addsd	xmm1, xmm0
	movq	rdi, xmm1
	mov	r8, QWORD PTR 32[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9, r8
	mov	r8, QWORD PTR 16[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	movsd	QWORD PTR -88[rbp], xmm0
	mov	rax, QWORD PTR 24[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rbp]
	add	rax, 24
	movsd	xmm0, QWORD PTR [rax]
	addsd	xmm1, xmm0
	movq	rdi, xmm1
	mov	r8, QWORD PTR 32[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r9, r8
	mov	r8, QWORD PTR 16[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	movapd	xmm2, xmm0
	addsd	xmm2, QWORD PTR -88[rbp]
	movsd	QWORD PTR -88[rbp], xmm2
	mov	rax, QWORD PTR 24[rbp]
	add	rax, 32
	mov	rdi, QWORD PTR [rax]
	mov	r8, QWORD PTR 32[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r9, r8
	mov	r8, QWORD PTR 16[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	addsd	xmm0, QWORD PTR -88[rbp]
	movsd	QWORD PTR -8[rbp], xmm0
	mov	ecx, DWORD PTR -68[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -24[rbp], rax
	mov	ecx, DWORD PTR -68[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -16[rbp], rax
	movsd	xmm0, QWORD PTR -8[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE558:
	.size	MLQuartetLogLk, .-MLQuartetLogLk
	.section	.rodata
.LC421:
	.string	"qo != NULL"
	.align 8
.LC422:
	.string	"qo->pair1 != NULL && qo->pair2 != NULL"
.LC424:
	.string	"loglk < 1e100"
.LC425:
	.string	"PairLogLk(%.4f) =  %.4f\n"
	.text
	.globl	PairNegLogLk
	.type	PairNegLogLk, @function
PairNegLogLk:
.LFB559:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	movsd	QWORD PTR -24[rbp], xmm0
	mov	QWORD PTR -32[rbp], rdi
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L1734
	lea	rcx, __PRETTY_FUNCTION__.42[rip]
	mov	edx, 5398
	lea	rsi, .LC131[rip]
	lea	rdi, .LC421[rip]
	call	__assert_fail@PLT
.L1734:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	je	.L1735
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	rax, rax
	jne	.L1740
.L1735:
	lea	rcx, __PRETTY_FUNCTION__.42[rip]
	mov	edx, 5399
	lea	rsi, .LC131[rip]
	lea	rdi, .LC422[rip]
	call	__assert_fail@PLT
.L1740:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 24[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 24[rax], edx
	mov	rax, QWORD PTR -16[rbp]
	mov	r8, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdi, QWORD PTR -24[rbp]
	mov	r9d, 0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	movq	rax, xmm0
	mov	QWORD PTR -8[rbp], rax
	movsd	xmm0, QWORD PTR .LC423[rip]
	comisd	xmm0, QWORD PTR -8[rbp]
	ja	.L1737
	lea	rcx, __PRETTY_FUNCTION__.42[rip]
	mov	edx, 5402
	lea	rsi, .LC131[rip]
	lea	rdi, .LC424[rip]
	call	__assert_fail@PLT
.L1737:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L1738
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm0, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC425[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L1738:
	movsd	xmm0, QWORD PTR -8[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE559:
	.size	PairNegLogLk, .-PairNegLogLk
	.section	.rodata
.LC428:
	.string	"site_likelihoods == NULL"
	.align 8
.LC429:
	.string	"Optimize loglk from %.5f to %.5f eval %d lengths from\n   %.5f %.5f %.5f %.5f %.5f to\n   %.5f %.5f %.5f %.5f %.5f\n"
	.text
	.globl	MLQuartetOptimize
	.type	MLQuartetOptimize, @function
MLQuartetOptimize:
.LFB560:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 312
	.cfi_offset 3, -24
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -240[rbp], rsi
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -256[rbp], rcx
	mov	DWORD PTR -260[rbp], r8d
	mov	QWORD PTR -272[rbp], r9
	mov	rax, QWORD PTR 16[rbp]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR 24[rbp]
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR 32[rbp]
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR 40[rbp]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -220[rbp], 0
	jmp	.L1742
.L1745:
	mov	eax, DWORD PTR -220[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -220[rbp]
	cdqe
	movsd	QWORD PTR -64[rbp+rax*8], xmm0
	mov	eax, DWORD PTR -220[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR .LC384[rip]
	comisd	xmm0, xmm1
	jbe	.L1743
	mov	eax, DWORD PTR -220[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR .LC384[rip]
	movsd	QWORD PTR [rax], xmm0
.L1743:
	add	DWORD PTR -220[rbp], 1
.L1742:
	cmp	DWORD PTR -220[rbp], 4
	jle	.L1745
	mov	eax, DWORD PTR -260[rbp]
	mov	DWORD PTR -112[rbp], eax
	mov	rax, QWORD PTR -272[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	DWORD PTR -88[rbp], 0
	mov	QWORD PTR -80[rbp], 0
	mov	QWORD PTR -72[rbp], 0
	cmp	QWORD PTR -296[rbp], 0
	je	.L1746
	mov	rax, QWORD PTR -296[rbp]
	mov	BYTE PTR [rax], 0
.L1746:
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	mov	rdi, QWORD PTR [rax]
	mov	r8d, DWORD PTR -260[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -272[rbp]
	mov	rsi, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR -232[rbp]
	mov	r9d, 0
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 24
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 16
	mov	rdi, QWORD PTR [rax]
	mov	r8d, DWORD PTR -260[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -272[rbp]
	mov	rsi, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -248[rbp]
	mov	r9d, 0
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	QWORD PTR -72[rbp], rax
	movsd	xmm3, QWORD PTR .LC398[rip]
	movsd	xmm2, QWORD PTR .LC162[rip]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 32
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR .LC384[rip]
	mov	rdx, QWORD PTR -288[rbp]
	lea	rbx, 32[rdx]
	lea	rcx, -216[rbp]
	lea	rdx, -208[rbp]
	lea	rsi, -112[rbp]
	movsd	xmm1, QWORD PTR .LC427[rip]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	lea	rdi, PairNegLogLk[rip]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	onedimenmin
	movq	rax, xmm0
	mov	QWORD PTR [rbx], rax
	cmp	QWORD PTR -296[rbp], 0
	je	.L1747
	cmp	QWORD PTR -304[rbp], 0
	je	.L1748
	lea	rcx, __PRETTY_FUNCTION__.41[rip]
	mov	edx, 5449
	lea	rsi, .LC131[rip]
	lea	rdi, .LC428[rip]
	call	__assert_fail@PLT
.L1748:
	mov	rax, QWORD PTR .LC384[rip]
	lea	rdx, -112[rbp]
	mov	rdi, rdx
	movq	xmm0, rax
	call	PairNegLogLk
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC426[rip]
	movq	xmm5, rax
	xorpd	xmm5, xmm0
	movapd	xmm0, xmm5
	movsd	QWORD PTR -184[rbp], xmm0
	movsd	xmm0, QWORD PTR -208[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	movsd	xmm1, QWORD PTR closeLogLkLimit[rip]
	subsd	xmm0, xmm1
	comisd	xmm0, QWORD PTR -184[rbp]
	jbe	.L1747
	mov	rax, QWORD PTR -296[rbp]
	mov	BYTE PTR [rax], 1
	mov	r8, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -112[rbp]
	mov	rax, QWORD PTR -288[rbp]
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	addsd	xmm1, xmm0
	movq	rdi, xmm1
	mov	rsi, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR -232[rbp]
	mov	r9d, 0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	movsd	QWORD PTR -312[rbp], xmm0
	mov	r8, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -112[rbp]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 24
	movsd	xmm0, QWORD PTR [rax]
	addsd	xmm1, xmm0
	movq	rdi, xmm1
	mov	rsi, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -248[rbp]
	mov	r9d, 0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	addsd	xmm0, QWORD PTR -312[rbp]
	movsd	QWORD PTR -176[rbp], xmm0
	mov	ecx, DWORD PTR -260[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -200[rbp], rax
	mov	ecx, DWORD PTR -260[rbp]
	mov	rax, QWORD PTR -192[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -192[rbp], rax
	movsd	xmm1, QWORD PTR -208[rbp]
	movsd	xmm0, QWORD PTR -176[rbp]
	subsd	xmm0, xmm1
	jmp	.L1755
.L1747:
	mov	ecx, DWORD PTR -260[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 32
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 8
	mov	rdi, QWORD PTR [rax]
	mov	r8d, DWORD PTR -260[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -272[rbp]
	mov	rsi, QWORD PTR -192[rbp]
	mov	rax, QWORD PTR -240[rbp]
	mov	r9d, 0
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -72[rbp], rax
	movsd	xmm3, QWORD PTR .LC398[rip]
	movsd	xmm2, QWORD PTR .LC162[rip]
	mov	rax, QWORD PTR -288[rbp]
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR .LC384[rip]
	lea	rcx, -216[rbp]
	lea	rdx, -208[rbp]
	lea	rsi, -112[rbp]
	movsd	xmm1, QWORD PTR .LC427[rip]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	lea	rdi, PairNegLogLk[rip]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	onedimenmin
	movq	rax, xmm0
	mov	rdx, QWORD PTR -288[rbp]
	mov	QWORD PTR [rdx], rax
	mov	ecx, DWORD PTR -260[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 32
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	mov	rdi, QWORD PTR [rax]
	mov	r8d, DWORD PTR -260[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -272[rbp]
	mov	rsi, QWORD PTR -192[rbp]
	mov	rax, QWORD PTR -232[rbp]
	mov	r9d, 0
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	QWORD PTR -72[rbp], rax
	movsd	xmm3, QWORD PTR .LC398[rip]
	movsd	xmm2, QWORD PTR .LC162[rip]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR .LC384[rip]
	mov	rdx, QWORD PTR -288[rbp]
	lea	rbx, 8[rdx]
	lea	rcx, -216[rbp]
	lea	rdx, -208[rbp]
	lea	rsi, -112[rbp]
	movsd	xmm1, QWORD PTR .LC427[rip]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	lea	rdi, PairNegLogLk[rip]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	onedimenmin
	movq	rax, xmm0
	mov	QWORD PTR [rbx], rax
	mov	ecx, DWORD PTR -260[rbp]
	mov	rax, QWORD PTR -160[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -160[rbp], rax
	mov	ecx, DWORD PTR -260[rbp]
	mov	rax, QWORD PTR -192[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	mov	rdi, QWORD PTR [rax]
	mov	r8d, DWORD PTR -260[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -272[rbp]
	mov	rsi, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR -232[rbp]
	mov	r9d, 0
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 24
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 32
	mov	rdi, QWORD PTR [rax]
	mov	r8d, DWORD PTR -260[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -272[rbp]
	mov	rsi, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	r9d, 0
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR -72[rbp], rax
	movsd	xmm3, QWORD PTR .LC398[rip]
	movsd	xmm2, QWORD PTR .LC162[rip]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR .LC384[rip]
	mov	rdx, QWORD PTR -288[rbp]
	lea	rbx, 16[rdx]
	lea	rcx, -216[rbp]
	lea	rdx, -208[rbp]
	lea	rsi, -112[rbp]
	movsd	xmm1, QWORD PTR .LC427[rip]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	lea	rdi, PairNegLogLk[rip]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	onedimenmin
	movq	rax, xmm0
	mov	QWORD PTR [rbx], rax
	mov	ecx, DWORD PTR -260[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 32
	mov	rdi, QWORD PTR [rax]
	mov	r8d, DWORD PTR -260[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -272[rbp]
	mov	rsi, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	r9d, 0
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -72[rbp], rax
	movsd	xmm3, QWORD PTR .LC398[rip]
	movsd	xmm2, QWORD PTR .LC162[rip]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 24
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR .LC384[rip]
	mov	rdx, QWORD PTR -288[rbp]
	lea	rbx, 24[rdx]
	lea	rcx, -216[rbp]
	lea	rdx, -208[rbp]
	lea	rsi, -112[rbp]
	movsd	xmm1, QWORD PTR .LC427[rip]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	lea	rdi, PairNegLogLk[rip]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	onedimenmin
	movq	rax, xmm0
	mov	QWORD PTR [rbx], rax
	movsd	xmm0, QWORD PTR -208[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	movsd	QWORD PTR -136[rbp], xmm0
	cmp	QWORD PTR -304[rbp], 0
	je	.L1751
	mov	DWORD PTR -220[rbp], 0
	jmp	.L1752
.L1753:
	mov	eax, DWORD PTR -220[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -220[rbp], 1
.L1752:
	mov	eax, DWORD PTR -220[rbp]
	cmp	eax, DWORD PTR -260[rbp]
	jl	.L1753
	mov	r8, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -112[rbp]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 24
	mov	rdi, QWORD PTR [rax]
	mov	r9, QWORD PTR -304[rbp]
	mov	rsi, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -144[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
.L1751:
	mov	r8, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -112[rbp]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 32
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	addsd	xmm1, xmm0
	movq	rdi, xmm1
	mov	r9, QWORD PTR -304[rbp]
	mov	rsi, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR -200[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	movq	rax, xmm0
	movq	xmm6, rax
	addsd	xmm6, QWORD PTR -136[rbp]
	movsd	QWORD PTR -312[rbp], xmm6
	mov	r8, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -112[rbp]
	mov	rax, QWORD PTR -288[rbp]
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	addsd	xmm1, xmm0
	movq	rdi, xmm1
	mov	r9, QWORD PTR -304[rbp]
	mov	rsi, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR -232[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	addsd	xmm0, QWORD PTR -312[rbp]
	movsd	QWORD PTR -128[rbp], xmm0
	mov	ecx, DWORD PTR -260[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -144[rbp], rax
	mov	ecx, DWORD PTR -260[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -200[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L1754
	mov	r9, QWORD PTR -272[rbp]
	mov	r8d, DWORD PTR -260[rbp]
	mov	rcx, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR -248[rbp]
	mov	rsi, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR -232[rbp]
	sub	rsp, 8
	push	0
	lea	rdi, -64[rbp]
	push	rdi
	push	QWORD PTR -280[rbp]
	mov	rdi, rax
	call	MLQuartetLogLk
	add	rsp, 32
	movq	rax, xmm0
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 32
	movsd	xmm3, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 24
	movsd	xmm2, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	movsd	xmm7, QWORD PTR [rax]
	movsd	xmm6, QWORD PTR -32[rbp]
	movsd	xmm5, QWORD PTR -40[rbp]
	movsd	xmm4, QWORD PTR -48[rbp]
	movsd	xmm10, QWORD PTR -56[rbp]
	movsd	xmm9, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -88[rbp]
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm8, QWORD PTR -128[rbp]
	mov	rcx, QWORD PTR -120[rbp]
	lea	rsp, -8[rsp]
	movsd	QWORD PTR [rsp], xmm3
	lea	rsp, -8[rsp]
	movsd	QWORD PTR [rsp], xmm2
	lea	rsp, -8[rsp]
	movsd	QWORD PTR [rsp], xmm1
	lea	rsp, -8[rsp]
	movsd	QWORD PTR [rsp], xmm0
	movapd	xmm3, xmm10
	movapd	xmm2, xmm9
	movapd	xmm1, xmm8
	movq	xmm0, rcx
	lea	rsi, .LC429[rip]
	mov	rdi, rax
	mov	eax, 8
	call	fprintf@PLT
	add	rsp, 32
.L1754:
	movsd	xmm0, QWORD PTR -128[rbp]
.L1755:
	movq	rax, xmm0
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L1756
	call	__stack_chk_fail@PLT
.L1756:
	movq	xmm0, rax
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE560:
	.size	MLQuartetOptimize, .-MLQuartetOptimize
	.section	.rodata
	.align 8
.LC430:
	.string	"Optimized quartet for %d rounds: ABvsCD %.5f ACvsBD %.5f ADvsBC %.5f\n"
	.text
	.globl	MLQuartetNNI
	.type	MLQuartetNNI, @function
MLQuartetNNI:
.LFB561:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 256
	mov	QWORD PTR -200[rbp], rdi
	mov	QWORD PTR -208[rbp], rsi
	mov	QWORD PTR -216[rbp], rdx
	mov	DWORD PTR -220[rbp], ecx
	mov	DWORD PTR -224[rbp], r8d
	mov	QWORD PTR -232[rbp], r9
	mov	edx, DWORD PTR 24[rbp]
	mov	rax, QWORD PTR 16[rbp]
	mov	QWORD PTR -240[rbp], rax
	mov	eax, edx
	mov	BYTE PTR -244[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -240[rbp]
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -144[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -136[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -128[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -120[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 16
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -112[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -96[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -88[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -80[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -72[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 16
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -64[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -48[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -40[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -32[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 16
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -16[rbp], xmm0
	mov	BYTE PTR -190[rbp], 1
	mov	BYTE PTR -189[rbp], 1
	mov	eax, DWORD PTR mlAccuracy[rip]
	mov	edx, 2
	cmp	eax, 2
	cmovl	eax, edx
	mov	DWORD PTR -180[rbp], eax
	lea	rdx, -176[rbp]
	mov	ecx, DWORD PTR -224[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	QuartetConstraintPenalties
	movsd	xmm0, QWORD PTR -176[rbp]
	movsd	xmm1, QWORD PTR -168[rbp]
	comisd	xmm0, xmm1
	ja	.L1760
	movsd	xmm0, QWORD PTR -176[rbp]
	movsd	xmm1, QWORD PTR -160[rbp]
	comisd	xmm0, xmm1
	jbe	.L1761
.L1760:
	mov	BYTE PTR -244[rbp], 0
.L1761:
	mov	DWORD PTR -184[rbp], 0
	jmp	.L1763
.L1787:
	mov	BYTE PTR -191[rbp], 0
	cmp	BYTE PTR -244[rbp], 0
	je	.L1764
	lea	rdi, -191[rbp]
	jmp	.L1765
.L1764:
	mov	edi, 0
.L1765:
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 16
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 8
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	r9, QWORD PTR -208[rbp]
	mov	r8d, DWORD PTR -220[rbp]
	push	0
	push	rdi
	lea	rdi, -144[rbp]
	push	rdi
	push	QWORD PTR -216[rbp]
	mov	rdi, rax
	call	MLQuartetOptimize
	add	rsp, 32
	movq	rax, xmm0
	movsd	xmm1, QWORD PTR -176[rbp]
	movq	xmm0, rax
	subsd	xmm0, xmm1
	mov	rax, QWORD PTR -232[rbp]
	movsd	QWORD PTR [rax], xmm0
	movzx	eax, BYTE PTR -191[rbp]
	test	al, al
	je	.L1766
	mov	rax, QWORD PTR nStarTests[rip]
	add	rax, 1
	mov	QWORD PTR nStarTests[rip], rax
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR .LC160[rip]
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR .LC160[rip]
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 16
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	eax, 0
	jmp	.L1801
.L1766:
	cmp	BYTE PTR -190[rbp], 0
	je	.L1768
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 24
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 16
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	r9, QWORD PTR -208[rbp]
	mov	r8d, DWORD PTR -220[rbp]
	push	0
	push	0
	lea	rdi, -96[rbp]
	push	rdi
	push	QWORD PTR -216[rbp]
	mov	rdi, rax
	call	MLQuartetOptimize
	add	rsp, 32
	movq	rax, xmm0
	movsd	xmm1, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR -232[rbp]
	add	rdx, 8
	movq	xmm0, rax
	subsd	xmm0, xmm1
	movsd	QWORD PTR [rdx], xmm0
.L1768:
	cmp	BYTE PTR -189[rbp], 0
	je	.L1769
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 16
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 24
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	r9, QWORD PTR -208[rbp]
	mov	r8d, DWORD PTR -220[rbp]
	push	0
	push	0
	lea	rdi, -48[rbp]
	push	rdi
	push	QWORD PTR -216[rbp]
	mov	rdi, rax
	call	MLQuartetOptimize
	add	rsp, 32
	movq	rax, xmm0
	movsd	xmm1, QWORD PTR -160[rbp]
	mov	rdx, QWORD PTR -232[rbp]
	add	rdx, 16
	movq	xmm0, rax
	subsd	xmm0, xmm1
	movsd	QWORD PTR [rdx], xmm0
.L1769:
	mov	eax, DWORD PTR mlAccuracy[rip]
	cmp	eax, 1
	jg	.L1770
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm2, QWORD PTR closeLogLkLimit[rip]
	subsd	xmm0, xmm2
	comisd	xmm0, xmm1
	ja	.L1771
	movsd	xmm1, QWORD PTR -64[rbp]
	movsd	xmm0, QWORD PTR .LC384[rip]
	addsd	xmm0, xmm0
	comisd	xmm0, xmm1
	jb	.L1772
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	movsd	xmm0, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L1772
.L1771:
	mov	BYTE PTR -190[rbp], 0
.L1772:
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm2, QWORD PTR closeLogLkLimit[rip]
	subsd	xmm0, xmm2
	comisd	xmm0, xmm1
	ja	.L1775
	movsd	xmm1, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR .LC384[rip]
	addsd	xmm0, xmm0
	comisd	xmm0, xmm1
	jb	.L1776
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	movsd	xmm0, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L1776
.L1775:
	mov	BYTE PTR -189[rbp], 0
.L1776:
	movzx	eax, BYTE PTR -190[rbp]
	xor	eax, 1
	test	al, al
	je	.L1779
	movzx	eax, BYTE PTR -189[rbp]
	xor	eax, 1
	test	al, al
	jne	.L1811
.L1779:
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	movsd	xmm2, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR closeLogLkLimit[rip]
	addsd	xmm1, xmm2
	comisd	xmm0, xmm1
	jbe	.L1781
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	movsd	xmm2, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR closeLogLkLimit[rip]
	addsd	xmm1, xmm2
	comisd	xmm0, xmm1
	ja	.L1812
.L1781:
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	movsd	xmm2, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR closeLogLkLimit[rip]
	addsd	xmm1, xmm2
	comisd	xmm0, xmm1
	jbe	.L1770
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	movsd	xmm2, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR closeLogLkLimit[rip]
	addsd	xmm1, xmm2
	comisd	xmm0, xmm1
	ja	.L1813
.L1770:
	add	DWORD PTR -184[rbp], 1
.L1763:
	mov	eax, DWORD PTR -184[rbp]
	cmp	eax, DWORD PTR -180[rbp]
	jl	.L1787
	jmp	.L1786
.L1811:
	nop
	jmp	.L1786
.L1812:
	nop
	jmp	.L1786
.L1813:
	nop
.L1786:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1788
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -184[rbp]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC430[rip]
	mov	rdi, rax
	mov	eax, 3
	call	fprintf@PLT
.L1788:
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	movsd	xmm1, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L1789
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L1789
	mov	DWORD PTR -188[rbp], 0
	jmp	.L1792
.L1793:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -96[rbp+rax*8]
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -240[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -188[rbp], 1
.L1792:
	cmp	DWORD PTR -188[rbp], 4
	jle	.L1793
	mov	eax, 1
	jmp	.L1801
.L1789:
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	movsd	xmm1, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L1794
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	movsd	xmm1, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L1794
	mov	DWORD PTR -188[rbp], 0
	jmp	.L1797
.L1798:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -48[rbp+rax*8]
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -240[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -188[rbp], 1
.L1797:
	cmp	DWORD PTR -188[rbp], 4
	jle	.L1798
	mov	eax, 2
	jmp	.L1801
.L1794:
	mov	DWORD PTR -188[rbp], 0
	jmp	.L1799
.L1800:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -144[rbp+rax*8]
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -240[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -188[rbp], 1
.L1799:
	cmp	DWORD PTR -188[rbp], 4
	jle	.L1800
	mov	eax, 0
.L1801:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1802
	call	__stack_chk_fail@PLT
.L1802:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE561:
	.size	MLQuartetNNI, .-MLQuartetNNI
	.globl	TreeLength
	.type	TreeLength, @function
TreeLength:
.LFB562:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -44[rbp], al
	cmp	BYTE PTR -44[rbp], 0
	je	.L1815
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -24[rbp], eax
	jmp	.L1816
.L1817:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L1816
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -24[rbp], eax
	je	.L1816
	mov	rcx, QWORD PTR .LC222[rip]
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	movq	xmm0, rcx
	mov	esi, edx
	mov	rdi, rax
	call	SetProfile
.L1816:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rsi, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -24[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	jns	.L1817
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -8[rbp], rax
.L1815:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	UpdateBranchLengths
	pxor	xmm0, xmm0
	movsd	QWORD PTR -16[rbp], xmm0
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1818
.L1819:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -16[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	add	DWORD PTR -20[rbp], 1
.L1818:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L1819
	movsd	xmm0, QWORD PTR -16[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE562:
	.size	TreeLength, .-TreeLength
	.section	.rodata
.LC431:
	.string	"nChild >= 2"
	.align 8
.LC432:
	.string	"At %d: LogLk(%d:%.4f,%d:%.4f) = %.3f\n"
.LC433:
	.string	"node == NJ->root"
	.align 8
.LC434:
	.string	"At root %d: LogLk((%d/%d),%d:%.3f) = %.3f\n"
	.text
	.globl	TreeLogLk
	.type	TreeLogLk, @function
TreeLogLk:
.LFB563:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jg	.L1822
	pxor	xmm0, xmm0
	jmp	.L1823
.L1822:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -72[rbp], xmm0
	mov	QWORD PTR -64[rbp], 0
	cmp	QWORD PTR -112[rbp], 0
	je	.L1824
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -64[rbp], rax
	mov	DWORD PTR -92[rbp], 0
	jmp	.L1825
.L1826:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -92[rbp], 1
.L1825:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -92[rbp], eax
	jl	.L1826
.L1824:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -88[rbp], eax
	jmp	.L1827
.L1838:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -76[rbp], eax
	cmp	DWORD PTR -76[rbp], 0
	jne	.L1828
	jmp	.L1827
.L1828:
	cmp	DWORD PTR -76[rbp], 1
	jg	.L1829
	lea	rcx, __PRETTY_FUNCTION__.40[rip]
	mov	edx, 5713
	lea	rsi, .LC131[rip]
	lea	rdi, .LC431[rip]
	call	__assert_fail@PLT
.L1829:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	add	rax, 4
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	lea	r10, 168[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movq	rdi, xmm3
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	r8, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, r8
	mov	rax, QWORD PTR [rax]
	mov	r8, QWORD PTR -64[rbp]
	mov	r9, r8
	mov	r8, r10
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	movq	rax, xmm0
	mov	QWORD PTR -24[rbp], rax
	movsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR -72[rbp], xmm0
	cmp	QWORD PTR -64[rbp], 0
	je	.L1830
	mov	DWORD PTR -92[rbp], 0
	jmp	.L1831
.L1833:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR .LC396[rip]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mulsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR .LC397[rip]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	subsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
.L1832:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR .LC398[rip]
	comisd	xmm0, xmm1
	ja	.L1833
	add	DWORD PTR -92[rbp], 1
.L1831:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -92[rbp], eax
	jl	.L1832
.L1830:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1835
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm1
	movq	rsi, xmm4
	mov	rax, QWORD PTR -32[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm1, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -88[rbp]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	mov	r8d, edi
	movq	xmm0, rsi
	lea	rsi, .LC432[rip]
	mov	rdi, rax
	mov	eax, 3
	call	fprintf@PLT
.L1835:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jne	.L1827
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -88[rbp], eax
	je	.L1836
	lea	rcx, __PRETTY_FUNCTION__.40[rip]
	mov	edx, 5735
	lea	rsi, .LC131[rip]
	lea	rdi, .LC433[rip]
	call	__assert_fail@PLT
.L1836:
	mov	rax, QWORD PTR -104[rbp]
	mov	r8d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -104[rbp]
	lea	rcx, 168[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm5, xmm5
	cvtss2sd	xmm5, xmm1
	movq	rdi, xmm5
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	r9, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, r9
	mov	rax, QWORD PTR [rax]
	mov	r9d, 0
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	lea	r10, 168[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm6, xmm6
	cvtss2sd	xmm6, xmm0
	movq	rdi, xmm6
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	r8, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	r9, r8
	mov	r8, r10
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	movq	rax, xmm0
	mov	QWORD PTR -8[rbp], rax
	movsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR -72[rbp], xmm0
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1837
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm7, xmm7
	cvtss2sd	xmm7, xmm0
	movq	rsi, xmm7
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	r8d, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm0, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -88[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	mov	r9d, r8d
	mov	r8d, edi
	lea	rsi, .LC434[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L1837:
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -16[rbp], rax
.L1827:
	mov	rdx, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR -88[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -88[rbp], eax
	cmp	DWORD PTR -88[rbp], 0
	jns	.L1838
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -64[rbp], 0
	je	.L1839
	mov	DWORD PTR -92[rbp], 0
	jmp	.L1840
.L1841:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movq	xmm0, rax
	call	log@PLT
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -92[rbp], 1
.L1840:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -92[rbp], eax
	jl	.L1841
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -64[rbp], rax
.L1839:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L1842
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1842
	mov	DWORD PTR -84[rbp], 0
	mov	eax, DWORD PTR nCodes[rip]
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, eax
	movq	rax, xmm2
	movq	xmm0, rax
	call	log@PLT
	movq	rax, xmm0
	mov	QWORD PTR -48[rbp], rax
	mov	DWORD PTR -92[rbp], 0
	jmp	.L1843
.L1848:
	mov	DWORD PTR -80[rbp], 0
	mov	DWORD PTR -88[rbp], 0
	jmp	.L1844
.L1846:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -92[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L1845
	add	DWORD PTR -80[rbp], 1
.L1845:
	add	DWORD PTR -88[rbp], 1
.L1844:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -88[rbp], eax
	jl	.L1846
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -84[rbp], eax
	cmp	QWORD PTR -112[rbp], 0
	je	.L1847
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -80[rbp]
	mulsd	xmm0, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	jne	.L1847
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1847
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	subsd	xmm0, QWORD PTR -48[rbp]
	movsd	QWORD PTR [rax], xmm0
.L1847:
	add	DWORD PTR -92[rbp], 1
.L1843:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -92[rbp], eax
	jl	.L1848
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 4[rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -48[rbp]
	movsd	xmm0, QWORD PTR -72[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -72[rbp], xmm0
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -84[rbp]
	mulsd	xmm0, QWORD PTR -48[rbp]
	movsd	xmm1, QWORD PTR -72[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -72[rbp], xmm0
.L1842:
	movsd	xmm0, QWORD PTR -72[rbp]
.L1823:
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE563:
	.size	TreeLogLk, .-TreeLogLk
	.section	.rodata
.LC435:
	.string	"nCodes==4"
	.align 8
.LC436:
	.string	"Optimizing GTR model, step %d of %d"
	.align 8
.LC439:
	.string	"GTR Frequencies: %.4f %.4f %.4f %.4f\n"
.LC440:
	.string	"GTRFreq\t%.4f\t%.4f\t%.4f\t%.4f\n"
	.align 8
.LC441:
	.string	"GTRRates\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\n"
	.text
	.globl	SetMLGtr
	.type	SetMLGtr, @function
SetMLGtr:
.LFB564:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 216
	.cfi_offset 3, -24
	mov	QWORD PTR -200[rbp], rdi
	mov	QWORD PTR -208[rbp], rsi
	mov	QWORD PTR -216[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	je	.L1850
	lea	rcx, __PRETTY_FUNCTION__.39[rip]
	mov	edx, 5808
	lea	rsi, .LC131[rip]
	lea	rdi, .LC435[rip]
	call	__assert_fail@PLT
.L1850:
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -128[rbp], rax
	cmp	QWORD PTR -208[rbp], 0
	je	.L1851
	mov	DWORD PTR -184[rbp], 0
	jmp	.L1852
.L1853:
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	movsd	QWORD PTR -120[rbp+rax*8], xmm0
	add	DWORD PTR -184[rbp], 1
.L1852:
	cmp	DWORD PTR -184[rbp], 3
	jle	.L1853
	jmp	.L1854
.L1851:
	mov	DWORD PTR -144[rbp], 1
	mov	DWORD PTR -140[rbp], 1
	mov	DWORD PTR -136[rbp], 1
	mov	DWORD PTR -132[rbp], 1
	mov	DWORD PTR -184[rbp], 0
	jmp	.L1855
.L1859:
	mov	rax, QWORD PTR -200[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -152[rbp], rax
	mov	DWORD PTR -180[rbp], 0
	jmp	.L1856
.L1858:
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 3
	ja	.L1857
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	edx, DWORD PTR -144[rbp+rdx*4]
	add	edx, 1
	cdqe
	mov	DWORD PTR -144[rbp+rax*4], edx
.L1857:
	add	DWORD PTR -180[rbp], 1
.L1856:
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -180[rbp], eax
	jl	.L1858
	add	DWORD PTR -184[rbp], 1
.L1855:
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -184[rbp], eax
	jl	.L1859
	mov	edx, DWORD PTR -144[rbp]
	mov	eax, DWORD PTR -140[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -136[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -132[rbp]
	add	eax, edx
	mov	DWORD PTR -176[rbp], eax
	mov	DWORD PTR -184[rbp], 0
	jmp	.L1860
.L1861:
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	mov	eax, DWORD PTR -144[rbp+rax*4]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -176[rbp]
	divsd	xmm0, xmm1
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	movsd	QWORD PTR -120[rbp+rax*8], xmm0
	add	DWORD PTR -184[rbp], 1
.L1860:
	cmp	DWORD PTR -184[rbp], 3
	jle	.L1861
.L1854:
	mov	DWORD PTR -184[rbp], 0
	jmp	.L1862
.L1863:
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	add	rax, 4
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -120[rbp+rax*8], xmm0
	add	DWORD PTR -184[rbp], 1
.L1862:
	cmp	DWORD PTR -184[rbp], 5
	jle	.L1863
	mov	eax, DWORD PTR mlAccuracy[rip]
	mov	edx, 2
	cmp	eax, 2
	cmovl	eax, edx
	mov	DWORD PTR -172[rbp], eax
	mov	DWORD PTR -184[rbp], 0
	jmp	.L1864
.L1867:
	mov	DWORD PTR -40[rbp], 0
	jmp	.L1865
.L1866:
	mov	edx, DWORD PTR -184[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	eax, eax
	mov	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, edx
	add	eax, 1
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 12
	mov	esi, eax
	lea	rdi, .LC436[rip]
	call	ProgressReport
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	add	rax, 4
	movsd	xmm0, QWORD PTR -120[rbp+rax*8]
	mov	ebx, DWORD PTR -40[rbp]
	lea	rcx, -160[rbp]
	lea	rdx, -168[rbp]
	movsd	xmm3, QWORD PTR .LC398[rip]
	movsd	xmm2, QWORD PTR .LC162[rip]
	lea	rsi, -128[rbp]
	movsd	xmm1, QWORD PTR .LC437[rip]
	mov	rax, QWORD PTR .LC438[rip]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	lea	rdi, GTRNegLogLk[rip]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	onedimenmin
	movq	rax, xmm0
	movsx	rdx, ebx
	add	rdx, 4
	mov	QWORD PTR -120[rbp+rdx*8], rax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, 1
	mov	DWORD PTR -40[rbp], eax
.L1865:
	mov	eax, DWORD PTR -40[rbp]
	cmp	eax, 5
	jle	.L1866
	add	DWORD PTR -184[rbp], 1
.L1864:
	mov	eax, DWORD PTR -184[rbp]
	cmp	eax, DWORD PTR -172[rbp]
	jl	.L1867
	mov	DWORD PTR -184[rbp], 0
	jmp	.L1868
.L1869:
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	add	rax, 4
	movsd	xmm0, QWORD PTR -120[rbp+rax*8]
	movsd	xmm1, QWORD PTR -48[rbp]
	divsd	xmm0, xmm1
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	add	rax, 4
	movsd	QWORD PTR -120[rbp+rax*8], xmm0
	add	DWORD PTR -184[rbp], 1
.L1868:
	cmp	DWORD PTR -184[rbp], 4
	jle	.L1869
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -48[rbp], xmm0
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L1870
	movsd	xmm2, QWORD PTR -96[rbp]
	movsd	xmm1, QWORD PTR -104[rbp]
	movsd	xmm0, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC439[rip]
	mov	rdi, rax
	mov	eax, 4
	call	fprintf@PLT
	movsd	xmm4, QWORD PTR -48[rbp]
	movsd	xmm3, QWORD PTR -56[rbp]
	movsd	xmm2, QWORD PTR -64[rbp]
	movsd	xmm1, QWORD PTR -72[rbp]
	movsd	xmm0, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm5, xmm4
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC126[rip]
	mov	rdi, rax
	mov	eax, 6
	call	fprintf@PLT
.L1870:
	cmp	QWORD PTR -216[rbp], 0
	je	.L1871
	movsd	xmm2, QWORD PTR -96[rbp]
	movsd	xmm1, QWORD PTR -104[rbp]
	movsd	xmm0, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -216[rbp]
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC440[rip]
	mov	rdi, rax
	mov	eax, 4
	call	fprintf@PLT
	movsd	xmm4, QWORD PTR -48[rbp]
	movsd	xmm3, QWORD PTR -56[rbp]
	movsd	xmm2, QWORD PTR -64[rbp]
	movsd	xmm1, QWORD PTR -72[rbp]
	movsd	xmm0, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -216[rbp]
	movapd	xmm5, xmm4
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC441[rip]
	mov	rdi, rax
	mov	eax, 6
	call	fprintf@PLT
.L1871:
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	esi, 16880
	mov	rdi, rax
	call	myfree
	lea	rax, -128[rbp]
	lea	rdx, 8[rax]
	lea	rax, -128[rbp]
	add	rax, 40
	mov	rsi, rdx
	mov	rdi, rax
	call	CreateGTR
	mov	rdx, QWORD PTR -200[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	rdi, rax
	call	RecomputeMLProfiles
	mov	rax, QWORD PTR -200[rbp]
	mov	rdi, rax
	call	OptimizeAllBranchLengths
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1872
	call	__stack_chk_fail@PLT
.L1872:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE564:
	.size	SetMLGtr, .-SetMLGtr
	.section	.rodata
.LC442:
	.string	"gtr->NJ != NULL"
	.align 8
.LC443:
	.string	"gtr->iRate >= 0 && gtr->iRate < 6"
.LC444:
	.string	"x > 0"
	.align 8
.LC445:
	.string	"GTR LogLk(%.5f %.5f %.5f %.5f %.5f %.5f) = %f\n"
	.text
	.globl	GTRNegLogLk
	.type	GTRNegLogLk, @function
GTRNegLogLk:
.LFB565:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 120
	.cfi_offset 3, -24
	movsd	QWORD PTR -120[rbp], xmm0
	mov	QWORD PTR -128[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	je	.L1874
	lea	rcx, __PRETTY_FUNCTION__.38[rip]
	mov	edx, 5867
	lea	rsi, .LC131[rip]
	lea	rdi, .LC385[rip]
	call	__assert_fail@PLT
.L1874:
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L1875
	lea	rcx, __PRETTY_FUNCTION__.38[rip]
	mov	edx, 5868
	lea	rsi, .LC131[rip]
	lea	rdi, .LC442[rip]
	call	__assert_fail@PLT
.L1875:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 88[rax]
	test	eax, eax
	js	.L1876
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 88[rax]
	cmp	eax, 5
	jle	.L1884
.L1876:
	lea	rcx, __PRETTY_FUNCTION__.38[rip]
	mov	edx, 5869
	lea	rsi, .LC131[rip]
	lea	rdi, .LC443[rip]
	call	__assert_fail@PLT
.L1884:
	movsd	xmm0, QWORD PTR -120[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	ja	.L1878
	lea	rcx, __PRETTY_FUNCTION__.38[rip]
	mov	edx, 5870
	lea	rsi, .LC131[rip]
	lea	rdi, .LC444[rip]
	call	__assert_fail@PLT
.L1878:
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -96[rbp], rax
	mov	DWORD PTR -108[rbp], 0
	jmp	.L1879
.L1880:
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -108[rbp]
	movsx	rdx, edx
	add	rdx, 4
	movsd	xmm0, QWORD PTR 8[rax+rdx*8]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	movsd	QWORD PTR -80[rbp+rax*8], xmm0
	add	DWORD PTR -108[rbp], 1
.L1879:
	cmp	DWORD PTR -108[rbp], 5
	jle	.L1880
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 88[rax]
	cdqe
	movsd	xmm0, QWORD PTR -120[rbp]
	movsd	QWORD PTR -80[rbp+rax*8], xmm0
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rbx, QWORD PTR [rax]
	lea	rax, -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	CreateGTR
	mov	QWORD PTR 24[rbx], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	RecomputeMLProfiles
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	rdi, rax
	call	TreeLogLk
	movq	rax, xmm0
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	esi, 16880
	mov	rdi, rax
	call	myfree
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -96[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1881
	movsd	xmm4, QWORD PTR -40[rbp]
	movsd	xmm3, QWORD PTR -48[rbp]
	movsd	xmm2, QWORD PTR -56[rbp]
	movsd	xmm1, QWORD PTR -64[rbp]
	movsd	xmm0, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm5, QWORD PTR -88[rbp]
	movapd	xmm6, xmm5
	movapd	xmm5, xmm4
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC445[rip]
	mov	rdi, rax
	mov	eax, 7
	call	fprintf@PLT
.L1881:
	movsd	xmm0, QWORD PTR -88[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	movq	rax, xmm0
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L1883
	call	__stack_chk_fail@PLT
.L1883:
	movq	xmm0, rax
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE565:
	.size	GTRNegLogLk, .-GTRNegLogLk
	.globl	MLSiteRates
	.type	MLSiteRates, @function
MLSiteRates:
.LFB566:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -52[rbp], edi
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, DWORD PTR -52[rbp]
	movq	rax, xmm2
	movq	xmm0, rax
	call	log@PLT
	movq	rax, xmm0
	mov	QWORD PTR -40[rbp], rax
	movsd	xmm0, QWORD PTR -40[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	xmm0, QWORD PTR -24[rbp]
	subsd	xmm0, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	divsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -44[rbp], 0
	jmp	.L1886
.L1887:
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -44[rbp]
	mulsd	xmm0, QWORD PTR -16[rbp]
	addsd	xmm0, QWORD PTR -32[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	call	exp@PLT
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -44[rbp], 1
.L1886:
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L1887
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE566:
	.size	MLSiteRates, .-MLSiteRates
	.section	.rodata
.LC446:
	.string	"NJ->rates.nRateCategories > 0"
	.align 8
.LC447:
	.string	"Site likelihoods with rate category %d of %d"
	.align 8
.LC448:
	.string	"Rate %.3f Loglk %.3f SiteLogLk"
.LC449:
	.string	"\t%.3f"
	.text
	.globl	MLSiteLikelihoodsByRate
	.type	MLSiteLikelihoodsByRate, @function
MLSiteLikelihoodsByRate:
.LFB567:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	DWORD PTR -68[rbp], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	imul	rax, rdx
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 168[rax]
	test	eax, eax
	jg	.L1890
	lea	rcx, __PRETTY_FUNCTION__.37[rip]
	mov	edx, 5909
	lea	rsi, .LC131[rip]
	lea	rdi, .LC446[rip]
	call	__assert_fail@PLT
.L1890:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 176[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 168[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR 176[rdx], rax
	mov	DWORD PTR -32[rbp], 0
	jmp	.L1891
.L1897:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L1892
.L1893:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR 176[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	movss	xmm0, DWORD PTR [rdx]
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -28[rbp], 1
.L1892:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 168[rax]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L1893
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	RecomputeMLProfiles
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	TreeLogLk
	movq	rax, xmm0
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -32[rbp]
	lea	esi, 1[rax]
	mov	eax, DWORD PTR -68[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, eax
	lea	rdi, .LC447[rip]
	call	ProgressReport
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1894
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	movq	rdx, xmm2
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm0, QWORD PTR -8[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC448[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	mov	DWORD PTR -36[rbp], 0
	jmp	.L1895
.L1896:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -36[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	lea	rsi, .LC449[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -36[rbp], 1
.L1895:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L1896
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L1894:
	add	DWORD PTR -32[rbp], 1
.L1891:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jl	.L1897
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 168[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 176[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	RecomputeMLProfiles
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE567:
	.size	MLSiteLikelihoodsByRate, .-MLSiteLikelihoodsByRate
	.section	.rodata
.LC450:
	.string	"nRateCategories > 0"
	.align 8
.LC451:
	.string	"Selected rate category %d rate %.3f for position %d\n"
	.align 8
.LC452:
	.string	"Switched to using %d rate categories (CAT approximation)\n"
	.align 8
.LC453:
	.string	"Rate categories were divided by %.3f so that average rate = 1.0\n"
	.align 8
.LC454:
	.string	"CAT-based log-likelihoods may not be comparable across runs\n"
	.align 8
.LC455:
	.string	"Use -gamma for approximate but comparable Gamma(20) log-likelihoods\n"
	.text
	.globl	SetMLRates
	.type	SetMLRates, @function
SetMLRates:
.LFB568:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	cmp	DWORD PTR -76[rbp], 0
	jg	.L1900
	lea	rcx, __PRETTY_FUNCTION__.36[rip]
	mov	edx, 5940
	lea	rsi, .LC131[rip]
	lea	rdi, .LC450[rip]
	call	__assert_fail@PLT
.L1900:
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	rdx, QWORD PTR -72[rbp]
	lea	rcx, 168[rdx]
	mov	edx, eax
	mov	esi, 1
	mov	rdi, rcx
	call	AllocRateCategories
	cmp	DWORD PTR -76[rbp], 1
	jne	.L1901
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	RecomputeMLProfiles
	jmp	.L1899
.L1901:
	mov	eax, DWORD PTR -76[rbp]
	mov	edi, eax
	call	MLSiteRates
	mov	QWORD PTR -32[rbp], rax
	mov	edx, DWORD PTR -76[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	MLSiteLikelihoodsByRate
	mov	QWORD PTR -24[rbp], rax
	pxor	xmm0, xmm0
	movsd	QWORD PTR -48[rbp], xmm0
	mov	DWORD PTR -60[rbp], 0
	jmp	.L1903
.L1909:
	mov	DWORD PTR -52[rbp], -1
	movsd	xmm0, QWORD PTR .LC160[rip]
	movsd	QWORD PTR -40[rbp], xmm0
	mov	DWORD PTR -56[rbp], 0
	jmp	.L1904
.L1907:
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, DWORD PTR -56[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -60[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movsd	xmm3, QWORD PTR [rax]
	movsd	QWORD PTR -88[rbp], xmm3
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm0
	movq	rax, xmm4
	movq	xmm0, rax
	call	log@PLT
	addsd	xmm0, xmm0
	addsd	xmm0, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movsd	xmm1, QWORD PTR .LC325[rip]
	mulsd	xmm1, xmm2
	subsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	comisd	xmm0, QWORD PTR -40[rbp]
	jbe	.L1905
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR -52[rbp], eax
	movsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR -40[rbp], xmm0
.L1905:
	add	DWORD PTR -56[rbp], 1
.L1904:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jl	.L1907
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1908
	mov	eax, DWORD PTR -60[rbp]
	lea	ecx, 1[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm5, xmm5
	cvtss2sd	xmm5, xmm0
	movq	rsi, xmm5
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -52[rbp]
	movq	xmm0, rsi
	lea	rsi, .LC451[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L1908:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -48[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	add	DWORD PTR -60[rbp], 1
.L1903:
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -60[rbp], eax
	jl	.L1909
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	imul	rax, rdx
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 4[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR -48[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	mov	DWORD PTR -56[rbp], 0
	jmp	.L1910
.L1911:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	divsd	xmm0, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -56[rbp], 1
.L1910:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jl	.L1911
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 168[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 176[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR 176[rdx], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -76[rbp]
	mov	DWORD PTR 168[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	RecomputeMLProfiles
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L1899
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -76[rbp]
	lea	rsi, .LC452[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -16[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC453[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 60
	mov	esi, 1
	lea	rdi, .LC454[rip]
	call	fwrite@PLT
	movzx	eax, BYTE PTR gammaLogLk[rip]
	xor	eax, 1
	test	al, al
	je	.L1899
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 68
	mov	esi, 1
	lea	rdi, .LC455[rip]
	call	fwrite@PLT
.L1899:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE568:
	.size	SetMLRates, .-SetMLRates
	.globl	GammaLogLk
	.type	GammaLogLk, @function
GammaLogLk:
.LFB569:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 20[rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -48[rbp], rax
	mov	DWORD PTR -80[rbp], 0
	jmp	.L1914
.L1919:
	cmp	DWORD PTR -80[rbp], 0
	je	.L1915
	mov	rax, QWORD PTR -88[rbp]
	movsd	xmm3, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -88[rbp]
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	sal	rax, 2
	sub	rax, 4
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm2
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	movapd	xmm1, xmm3
	movq	xmm0, rax
	call	PGamma
	movq	rax, xmm0
	jmp	.L1916
.L1915:
	mov	rax, QWORD PTR .LC39[rip]
.L1916:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 20[rax]
	sub	eax, 1
	cmp	DWORD PTR -80[rbp], eax
	je	.L1917
	mov	rax, QWORD PTR -88[rbp]
	movsd	xmm3, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -88[rbp]
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	add	rax, 1
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm2
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	movapd	xmm1, xmm3
	movq	xmm0, rax
	call	PGamma
	movq	rax, xmm0
	jmp	.L1918
.L1917:
	mov	rax, QWORD PTR .LC4[rip]
.L1918:
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -8[rbp]
	subsd	xmm0, QWORD PTR -16[rbp]
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -80[rbp], 1
.L1914:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 20[rax]
	cmp	DWORD PTR -80[rbp], eax
	jl	.L1919
	pxor	xmm0, xmm0
	movsd	QWORD PTR -72[rbp], xmm0
	mov	DWORD PTR -76[rbp], 0
	jmp	.L1920
.L1928:
	movsd	xmm0, QWORD PTR .LC160[rip]
	movsd	QWORD PTR -64[rbp], xmm0
	mov	DWORD PTR -80[rbp], 0
	jmp	.L1921
.L1924:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 16[rax]
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	xmm0, QWORD PTR -24[rbp]
	comisd	xmm0, QWORD PTR -64[rbp]
	jbe	.L1922
	movsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR -64[rbp], xmm0
.L1922:
	add	DWORD PTR -80[rbp], 1
.L1921:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 20[rax]
	cmp	DWORD PTR -80[rbp], eax
	jl	.L1924
	pxor	xmm0, xmm0
	movsd	QWORD PTR -56[rbp], xmm0
	mov	DWORD PTR -80[rbp], 0
	jmp	.L1925
.L1926:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 16[rax]
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	subsd	xmm0, QWORD PTR -64[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	call	exp@PLT
	movq	rax, xmm0
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, QWORD PTR -32[rbp]
	movsd	xmm1, QWORD PTR -56[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	add	DWORD PTR -80[rbp], 1
.L1925:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 20[rax]
	cmp	DWORD PTR -80[rbp], eax
	jl	.L1926
	mov	rax, QWORD PTR -56[rbp]
	movq	xmm0, rax
	call	log@PLT
	movsd	xmm1, QWORD PTR -64[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, QWORD PTR -40[rbp]
	movsd	QWORD PTR -72[rbp], xmm0
	cmp	QWORD PTR -96[rbp], 0
	je	.L1927
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -40[rbp]
	movsd	QWORD PTR [rax], xmm0
.L1927:
	add	DWORD PTR -76[rbp], 1
.L1920:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	DWORD PTR -76[rbp], eax
	jl	.L1928
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 20[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -48[rbp], rax
	movsd	xmm0, QWORD PTR -72[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE569:
	.size	GammaLogLk, .-GammaLogLk
	.globl	OptAlpha
	.type	OptAlpha, @function
OptAlpha:
.LFB570:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	movsd	QWORD PTR -24[rbp], xmm0
	mov	QWORD PTR -32[rbp], rdi
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR 8[rax], xmm0
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	GammaLogLk
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC426[rip]
	movq	xmm1, rax
	xorpd	xmm1, xmm0
	movapd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE570:
	.size	OptAlpha, .-OptAlpha
	.globl	OptMult
	.type	OptMult, @function
OptMult:
.LFB571:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	movsd	QWORD PTR -24[rbp], xmm0
	mov	QWORD PTR -32[rbp], rdi
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	GammaLogLk
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC426[rip]
	movq	xmm1, rax
	xorpd	xmm1, xmm0
	movapd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE571:
	.size	OptMult, .-OptMult
	.section	.rodata
	.align 8
.LC456:
	.string	"Optimizing alpha, starting at loglk %.3f\n"
.LC457:
	.string	"Optimizing alpha round %d"
	.align 8
.LC458:
	.string	"Optimize alpha round %d to %.3f lk %.3f\n"
	.align 8
.LC459:
	.string	"Optimize mult round %d to %.3f lk %.3f\n"
	.align 8
.LC460:
	.string	"Optimizing alpha & mult converged\n"
	.align 8
.LC461:
	.string	"Gamma(%d) LogLk = %.3f alpha = %.3f rescaling lengths by %.3f\n"
	.align 8
.LC462:
	.string	"Gamma%dLogLk\t%.3f\tApproximate\tAlpha\t%.3f\tRescale\t%.3f\n"
.LC463:
	.string	"Gamma%d\tSite\tLogLk"
.LC464:
	.string	"\tr=%.3f"
.LC465:
	.string	"Gamma%d\t%d\t%.3f"
	.text
	.globl	RescaleGammaLogLk
	.type	RescaleGammaLogLk, @function
RescaleGammaLogLk:
.LFB572:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 144
	mov	DWORD PTR -116[rbp], edi
	mov	DWORD PTR -120[rbp], esi
	mov	QWORD PTR -128[rbp], rdx
	mov	QWORD PTR -136[rbp], rcx
	mov	QWORD PTR -144[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -40[rbp], xmm0
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR -16[rbp], rax
	lea	rax, -48[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	GammaLogLk
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC426[rip]
	movq	xmm5, rax
	xorpd	xmm5, xmm0
	movapd	xmm0, xmm5
	movsd	QWORD PTR -88[rbp], xmm0
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1936
	movsd	xmm0, QWORD PTR -88[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	movq	rdx, xmm0
	mov	rax, QWORD PTR stderr[rip]
	movq	xmm0, rdx
	lea	rsi, .LC456[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L1936:
	mov	DWORD PTR -100[rbp], 0
	jmp	.L1937
.L1944:
	mov	eax, DWORD PTR -100[rbp]
	add	eax, 1
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, eax
	lea	rdi, .LC457[rip]
	call	ProgressReport
	movsd	xmm0, QWORD PTR -88[rbp]
	movsd	QWORD PTR -72[rbp], xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	lea	rcx, -80[rbp]
	lea	rdx, -88[rbp]
	movsd	xmm3, QWORD PTR .LC162[rip]
	movsd	xmm2, QWORD PTR .LC162[rip]
	lea	rsi, -48[rbp]
	movsd	xmm1, QWORD PTR .LC332[rip]
	mov	rax, QWORD PTR .LC37[rip]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	lea	rdi, OptAlpha[rip]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	onedimenmin
	movq	rax, xmm0
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1938
	movsd	xmm0, QWORD PTR -88[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -100[rbp]
	lea	ecx, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	mov	edx, ecx
	lea	rsi, .LC458[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L1938:
	movsd	xmm0, QWORD PTR -48[rbp]
	lea	rcx, -80[rbp]
	lea	rdx, -88[rbp]
	movsd	xmm3, QWORD PTR .LC162[rip]
	movsd	xmm2, QWORD PTR .LC162[rip]
	lea	rsi, -48[rbp]
	movsd	xmm1, QWORD PTR .LC332[rip]
	mov	rax, QWORD PTR .LC37[rip]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	lea	rdi, OptMult[rip]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	onedimenmin
	movq	rax, xmm0
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1939
	movsd	xmm0, QWORD PTR -88[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	mov	rdx, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR -100[rbp]
	lea	ecx, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	mov	edx, ecx
	lea	rsi, .LC459[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L1939:
	movsd	xmm0, QWORD PTR -72[rbp]
	movsd	xmm2, QWORD PTR .LC162[rip]
	movapd	xmm1, xmm0
	subsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR -88[rbp]
	comisd	xmm0, xmm1
	jbe	.L1956
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1957
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 34
	mov	esi, 1
	lea	rdi, .LC460[rip]
	call	fwrite@PLT
	jmp	.L1957
.L1956:
	add	DWORD PTR -100[rbp], 1
.L1937:
	cmp	DWORD PTR -100[rbp], 9
	jle	.L1944
	jmp	.L1943
.L1957:
	nop
.L1943:
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -64[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	GammaLogLk
	movq	rax, xmm0
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	jle	.L1945
	movsd	xmm1, QWORD PTR -48[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	divsd	xmm2, xmm1
	movsd	xmm0, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -120[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC461[rip]
	mov	rdi, rax
	mov	eax, 3
	call	fprintf@PLT
.L1945:
	cmp	QWORD PTR -144[rbp], 0
	je	.L1946
	movsd	xmm1, QWORD PTR -48[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm2, xmm0
	divsd	xmm2, xmm1
	movsd	xmm0, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -120[rbp]
	mov	rax, QWORD PTR -144[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC462[rip]
	mov	rdi, rax
	mov	eax, 3
	call	fprintf@PLT
	mov	edx, DWORD PTR -120[rbp]
	mov	rax, QWORD PTR -144[rbp]
	lea	rsi, .LC463[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	DWORD PTR -92[rbp], 0
	jmp	.L1947
.L1948:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -48[rbp]
	divsd	xmm0, xmm1
	movq	rdx, xmm0
	mov	rax, QWORD PTR -144[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC464[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -92[rbp], 1
.L1947:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -120[rbp]
	jl	.L1948
	mov	rax, QWORD PTR -144[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	DWORD PTR -96[rbp], 0
	jmp	.L1949
.L1952:
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rsi, QWORD PTR [rax]
	mov	ecx, DWORD PTR -96[rbp]
	mov	edx, DWORD PTR -120[rbp]
	mov	rax, QWORD PTR -144[rbp]
	movq	xmm0, rsi
	lea	rsi, .LC465[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	mov	DWORD PTR -92[rbp], 0
	jmp	.L1950
.L1951:
	mov	eax, DWORD PTR -116[rbp]
	imul	eax, DWORD PTR -92[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -96[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -144[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC449[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -92[rbp], 1
.L1950:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -120[rbp]
	jl	.L1951
	mov	rax, QWORD PTR -144[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	add	DWORD PTR -96[rbp], 1
.L1949:
	mov	eax, DWORD PTR -96[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jl	.L1952
.L1946:
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -64[rbp], rax
	movsd	xmm1, QWORD PTR -48[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1954
	call	__stack_chk_fail@PLT
.L1954:
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE572:
	.size	RescaleGammaLogLk, .-RescaleGammaLogLk
	.globl	MLPairOptimize
	.type	MLPairOptimize, @function
MLPairOptimize:
.LFB573:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 176
	mov	QWORD PTR -136[rbp], rdi
	mov	QWORD PTR -144[rbp], rsi
	mov	DWORD PTR -148[rbp], edx
	mov	QWORD PTR -160[rbp], rcx
	mov	QWORD PTR -168[rbp], r8
	mov	QWORD PTR -176[rbp], r9
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -116[rbp], 0
	jmp	.L1959
.L1960:
	mov	rax, QWORD PTR -176[rbp]
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	movsd	QWORD PTR -48[rbp+rax*8], xmm0
	add	DWORD PTR -116[rbp], 1
.L1959:
	cmp	DWORD PTR -116[rbp], 4
	jle	.L1960
	mov	eax, DWORD PTR -148[rbp]
	mov	DWORD PTR -96[rbp], eax
	mov	rax, QWORD PTR -160[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	DWORD PTR -72[rbp], 0
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -56[rbp], rax
	movsd	xmm3, QWORD PTR .LC398[rip]
	movsd	xmm2, QWORD PTR .LC162[rip]
	mov	rax, QWORD PTR -176[rbp]
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR .LC384[rip]
	lea	rcx, -112[rbp]
	lea	rdx, -104[rbp]
	lea	rsi, -96[rbp]
	movsd	xmm1, QWORD PTR .LC427[rip]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	lea	rdi, PairNegLogLk[rip]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	onedimenmin
	movq	rax, xmm0
	mov	rdx, QWORD PTR -176[rbp]
	mov	QWORD PTR [rdx], rax
	movsd	xmm0, QWORD PTR -104[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	movq	rax, xmm0
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1962
	call	__stack_chk_fail@PLT
.L1962:
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE573:
	.size	MLPairOptimize, .-MLPairOptimize
	.section	.rodata
.LC466:
	.string	"NJ->child[parent].nChild==2"
.LC467:
	.string	"ML Lengths %d of %d splits"
.LC468:
	.string	"nChild == 2 || nChild == 3"
	.align 8
.LC469:
	.string	"Optimize length for %d to %.3f\n"
	.text
	.globl	OptimizeAllBranchLengths
	.type	OptimizeAllBranchLengths, @function
OptimizeAllBranchLengths:
.LFB574:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 144
	mov	QWORD PTR -136[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jle	.L1986
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L1966
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -92[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	je	.L1967
	lea	rcx, __PRETTY_FUNCTION__.35[rip]
	mov	edx, 6122
	lea	rsi, .LC131[rip]
	lea	rdi, .LC466[rip]
	call	__assert_fail@PLT
.L1967:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -28[rbp], eax
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -88[rbp], xmm0
	mov	rax, QWORD PTR -136[rbp]
	lea	r8, 168[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -88[rbp]
	mov	r9, rdi
	mov	rdi, rax
	call	MLPairOptimize
	movsd	xmm0, QWORD PTR -88[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -88[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	jmp	.L1963
.L1966:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	UpProfiles
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -120[rbp], eax
	mov	DWORD PTR -116[rbp], 0
	jmp	.L1968
.L1983:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -104[rbp], eax
	cmp	DWORD PTR -104[rbp], 0
	jle	.L1968
	mov	edx, DWORD PTR -116[rbp]
	movsx	rax, edx
	imul	rax, rax, 1374389535
	shr	rax, 32
	sar	eax, 5
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 100
	mov	eax, edx
	sub	eax, ecx
	test	eax, eax
	jne	.L1969
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR 48[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	sub	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, 1
	mov	r8d, 0
	mov	ecx, 0
	mov	esi, eax
	lea	rdi, .LC467[rip]
	call	ProgressReport
.L1969:
	add	DWORD PTR -116[rbp], 1
	cmp	DWORD PTR -104[rbp], 2
	je	.L1970
	cmp	DWORD PTR -104[rbp], 3
	je	.L1970
	lea	rcx, __PRETTY_FUNCTION__.35[rip]
	mov	edx, 6146
	lea	rsi, .LC131[rip]
	lea	rdi, .LC468[rip]
	call	__assert_fail@PLT
.L1970:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -44[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -104[rbp], 3
	jne	.L1971
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 12[rax]
	jmp	.L1972
.L1971:
	mov	eax, DWORD PTR -120[rbp]
.L1972:
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	DWORD PTR -104[rbp], 3
	jne	.L1973
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	jmp	.L1974
.L1973:
	mov	edx, DWORD PTR -120[rbp]
	mov	rsi, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	GetUpProfile
.L1974:
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -112[rbp], 0
	jmp	.L1975
.L1981:
	mov	DWORD PTR -108[rbp], 0
	jmp	.L1976
.L1980:
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	mov	rax, QWORD PTR -32[rbp+rax*8]
	mov	QWORD PTR -64[rbp], rax
	mov	eax, DWORD PTR -108[rbp]
	add	eax, 1
	movsx	rdx, eax
	imul	rdx, rdx, 1431655766
	shr	rdx, 32
	mov	ecx, eax
	sar	ecx, 31
	sub	edx, ecx
	mov	DWORD PTR -100[rbp], edx
	mov	ecx, DWORD PTR -100[rbp]
	mov	edx, ecx
	add	edx, edx
	add	edx, ecx
	sub	eax, edx
	mov	DWORD PTR -100[rbp], eax
	mov	eax, DWORD PTR -108[rbp]
	add	eax, 2
	movsx	rdx, eax
	imul	rdx, rdx, 1431655766
	shr	rdx, 32
	mov	ecx, eax
	sar	ecx, 31
	sub	edx, ecx
	mov	DWORD PTR -96[rbp], edx
	mov	ecx, DWORD PTR -96[rbp]
	mov	edx, ecx
	add	edx, edx
	add	edx, ecx
	sub	eax, edx
	mov	DWORD PTR -96[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	r8d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -136[rbp]
	lea	rcx, 168[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	mov	eax, DWORD PTR -44[rbp+rax*4]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	mov	eax, DWORD PTR -44[rbp+rax*4]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movq	rdi, xmm2
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	mov	rsi, QWORD PTR -32[rbp+rax*8]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	mov	rax, QWORD PTR -32[rbp+rax*8]
	mov	r9d, 0
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	mov	eax, DWORD PTR -44[rbp+rax*4]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -88[rbp], xmm0
	movsd	xmm1, QWORD PTR -88[rbp]
	movsd	xmm0, QWORD PTR .LC384[rip]
	comisd	xmm0, xmm1
	jbe	.L1977
	movsd	xmm0, QWORD PTR .LC384[rip]
	movsd	QWORD PTR -88[rbp], xmm0
.L1977:
	mov	rax, QWORD PTR -136[rbp]
	lea	r8, 168[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR 4[rax]
	lea	rdi, -88[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	r9, rdi
	mov	rdi, rax
	call	MLPairOptimize
	movsd	xmm0, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	mov	eax, DWORD PTR -44[rbp+rax*4]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -136[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L1979
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	mov	eax, DWORD PTR -44[rbp+rax*4]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movq	rcx, xmm3
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	mov	edx, DWORD PTR -44[rbp+rax*4]
	mov	rax, QWORD PTR stderr[rip]
	movq	xmm0, rcx
	lea	rsi, .LC469[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L1979:
	add	DWORD PTR -108[rbp], 1
.L1976:
	cmp	DWORD PTR -108[rbp], 2
	jle	.L1980
	add	DWORD PTR -112[rbp], 1
.L1975:
	cmp	DWORD PTR -112[rbp], 1
	jle	.L1981
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -120[rbp], eax
	je	.L1968
	mov	edx, DWORD PTR -120[rbp]
	mov	rsi, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	RecomputeProfile
	mov	edx, DWORD PTR -120[rbp]
	mov	rcx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
.L1968:
	mov	rdx, QWORD PTR -80[rbp]
	mov	rsi, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR -120[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -120[rbp], eax
	cmp	DWORD PTR -120[rbp], 0
	jns	.L1983
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -80[rbp], rax
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeUpProfiles
	mov	QWORD PTR -72[rbp], rax
	jmp	.L1963
.L1986:
	nop
.L1963:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1984
	call	__stack_chk_fail@PLT
.L1984:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE574:
	.size	OptimizeAllBranchLengths, .-OptimizeAllBranchLengths
	.globl	RecomputeMLProfiles
	.type	RecomputeMLProfiles, @function
RecomputeMLProfiles:
.LFB575:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L1988
.L1989:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L1988
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rax, QWORD PTR [rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rdi, QWORD PTR 56[rsi]
	mov	esi, DWORD PTR -36[rbp]
	movsx	rsi, esi
	sal	rsi, 3
	lea	rbx, [rdi+rsi]
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	add	rax, 4
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	r9d, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	r10d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 168[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movq	rdi, xmm2
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	r8, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, r8
	mov	rax, QWORD PTR [rax]
	mov	r8, QWORD PTR -56[rbp]
	mov	r11, QWORD PTR 56[r8]
	mov	r8d, DWORD PTR -36[rbp]
	movsx	r8, r8d
	sal	r8, 3
	lea	rbx, [r11+r8]
	mov	r8d, r10d
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR [rbx], rax
.L1988:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	jns	.L1989
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -32[rbp], rax
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE575:
	.size	RecomputeMLProfiles, .-RecomputeMLProfiles
	.globl	RecomputeProfiles
	.type	RecomputeProfiles, @function
RecomputeProfiles:
.LFB576:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L1991
.L1992:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L1991
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	add	rax, 4
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rax, QWORD PTR [rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rdi, QWORD PTR 56[rsi]
	mov	esi, DWORD PTR -36[rbp]
	movsx	rsi, esi
	sal	rsi, 3
	lea	rbx, [rdi+rsi]
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	mov	rdi, QWORD PTR -56[rbp]
	mov	r8, QWORD PTR 56[rdi]
	mov	edi, DWORD PTR -36[rbp]
	movsx	rdi, edi
	sal	rdi, 3
	lea	rbx, [r8+rdi]
	mov	rdi, QWORD PTR .LC222[rip]
	mov	r8, QWORD PTR -64[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	AverageProfile
	mov	QWORD PTR [rbx], rax
.L1991:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	jns	.L1992
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -32[rbp], rax
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE576:
	.size	RecomputeProfiles, .-RecomputeProfiles
	.section	.rodata
	.align 8
.LC470:
	.string	"Beginning round %d of NNIs with ml? %d\n"
	.align 8
.LC471:
	.string	"Skipping subtree at %d: child %d %d parent %d age %d subtreeAge %d support %.3f\n"
.LC472:
	.string	"Going up back to node %d\n"
.LC473:
	.string	"ML"
.LC474:
	.string	"ME"
	.align 8
.LC475:
	.string	"%s NNI round %%d of %%d, %%d of %%d splits"
.LC476:
	.string	", %d changes"
.LC477:
	.string	" (max delta %.3f)"
	.align 8
.LC478:
	.string	"Considering NNI around %d: Swap A=%d B=%d C=%d D=up(%d) or parent %d\n"
	.align 8
.LC479:
	.string	"Starting quartet likelihood %.3f len %.3f %.3f %.3f %.3f %.3f\n"
.LC480:
	.string	"delta-loglk"
.LC481:
	.string	"-deltaLen"
	.align 8
.LC482:
	.string	"NNI around %d: Swap A=%d B=%d C=%d D=out(C) -- choose %s %s %.4f\n"
.LC483:
	.string	"Old tree lk -- %.4f\n"
.LC484:
	.string	"New tree lk -- %.4f\n"
	.align 8
.LC485:
	.string	"N up profiles at end of NNI:  %d\n"
	.text
	.globl	NNI
	.type	NNI, @function
NNI:
.LFB577:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 456
	.cfi_offset 3, -24
	mov	QWORD PTR -392[rbp], rdi
	mov	DWORD PTR -396[rbp], esi
	mov	DWORD PTR -400[rbp], edx
	mov	eax, ecx
	mov	QWORD PTR -416[rbp], r8
	mov	QWORD PTR -424[rbp], r9
	mov	BYTE PTR -404[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	cmp	BYTE PTR -404[rbp], 0
	je	.L1994
	movsd	xmm0, QWORD PTR treeLogLkDelta[rip]
	jmp	.L1995
.L1994:
	movsd	xmm0, QWORD PTR MEMinDelta[rip]
.L1995:
	movsd	QWORD PTR -328[rbp], xmm0
	mov	rax, QWORD PTR -424[rbp]
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -372[rbp], 0
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jg	.L1996
	mov	eax, 0
	jmp	.L2079
.L1996:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L1998
	movzx	eax, BYTE PTR -404[rbp]
	movzx	ecx, al
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -396[rbp]
	lea	rsi, .LC470[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	cmp	BYTE PTR -404[rbp], 0
	je	.L1999
	cmp	DWORD PTR -396[rbp], 0
	jle	.L1999
	mov	eax, 1
	jmp	.L2000
.L1999:
	mov	eax, 0
.L2000:
	and	eax, 1
	movzx	edx, al
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -392[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	PrintNJInternal
.L1998:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	UpProfiles
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -312[rbp], rax
	movzx	eax, BYTE PTR fastNNI[rip]
	test	al, al
	je	.L2001
	mov	DWORD PTR -368[rbp], 0
	jmp	.L2002
.L2011:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -368[rbp], eax
	je	.L2003
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -368[rbp], eax
	jl	.L2003
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jle	.L2003
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 1
	jle	.L2003
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR 16[rax]
	comisd	xmm0, QWORD PTR -328[rbp]
	jbe	.L2003
	movzx	ecx, BYTE PTR -404[rbp]
	lea	rdx, -176[rbp]
	mov	esi, DWORD PTR -368[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	r9d, ecx
	mov	r8, rdx
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	SetupABCD
	mov	DWORD PTR -376[rbp], 0
	jmp	.L2005
.L2009:
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	mov	eax, DWORD PTR -176[rbp+rax*4]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L2006
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	mov	eax, DWORD PTR -176[rbp+rax*4]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR 16[rax]
	comisd	xmm0, QWORD PTR -328[rbp]
	ja	.L2087
.L2006:
	add	DWORD PTR -376[rbp], 1
.L2005:
	cmp	DWORD PTR -376[rbp], 3
	jle	.L2009
	jmp	.L2008
.L2087:
	nop
.L2008:
	cmp	DWORD PTR -376[rbp], 4
	jne	.L2003
	mov	rdx, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR -368[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	SkipTraversalInto
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2003
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	rsi, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	r8d, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r9d, DWORD PTR [rax]
	mov	r10d, DWORD PTR -172[rbp]
	mov	ecx, DWORD PTR -176[rbp]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -368[rbp]
	push	r8
	push	rdi
	movq	xmm0, rsi
	mov	r8d, r10d
	lea	rsi, .LC471[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	add	rsp, 16
.L2003:
	add	DWORD PTR -368[rbp], 1
.L2002:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -368[rbp], eax
	jl	.L2011
.L2001:
	mov	DWORD PTR -364[rbp], 0
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -368[rbp], eax
	jmp	.L2012
.L2074:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -368[rbp], eax
	jl	.L2088
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -368[rbp], eax
	je	.L2088
	movzx	eax, BYTE PTR -378[rbp]
	test	al, al
	je	.L2016
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2017
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -368[rbp]
	lea	rsi, .LC472[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2017:
	mov	DWORD PTR -376[rbp], 0
	jmp	.L2018
.L2019:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	mov	edx, DWORD PTR 4[rdx+rax*4]
	mov	rcx, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR -320[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	add	DWORD PTR -376[rbp], 1
.L2018:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -376[rbp], eax
	jl	.L2019
	mov	edx, DWORD PTR -368[rbp]
	mov	rcx, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR -320[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	movzx	ecx, BYTE PTR -404[rbp]
	mov	edx, DWORD PTR -368[rbp]
	mov	rsi, QWORD PTR -320[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	RecomputeProfile
	jmp	.L2012
.L2016:
	mov	edx, DWORD PTR -364[rbp]
	movsx	rax, edx
	imul	rax, rax, 1374389535
	shr	rax, 32
	sar	eax, 5
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 100
	mov	eax, edx
	sub	eax, ecx
	test	eax, eax
	jne	.L2020
	cmp	BYTE PTR -404[rbp], 0
	je	.L2021
	lea	rax, .LC473[rip]
	jmp	.L2022
.L2021:
	lea	rax, .LC474[rip]
.L2022:
	lea	rcx, -128[rbp]
	mov	rdx, rax
	lea	rsi, .LC475[rip]
	mov	rdi, rcx
	mov	eax, 0
	call	sprintf@PLT
	cmp	DWORD PTR -364[rbp], 0
	jle	.L2023
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	strlen@PLT
	lea	rdx, -128[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -372[rbp]
	mov	edx, eax
	lea	rsi, .LC476[rip]
	mov	rdi, rcx
	mov	eax, 0
	call	sprintf@PLT
.L2023:
	cmp	DWORD PTR -372[rbp], 0
	jle	.L2024
	mov	rax, QWORD PTR -424[rbp]
	mov	rbx, QWORD PTR [rax]
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	strlen@PLT
	lea	rdx, -128[rbp]
	add	rax, rdx
	movq	xmm0, rbx
	lea	rsi, .LC477[rip]
	mov	rdi, rax
	mov	eax, 1
	call	sprintf@PLT
.L2024:
	mov	rax, QWORD PTR -392[rbp]
	mov	edx, DWORD PTR 48[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, edx
	sub	edi, eax
	mov	eax, DWORD PTR -364[rbp]
	lea	ecx, 1[rax]
	mov	eax, DWORD PTR -396[rbp]
	lea	esi, 1[rax]
	mov	edx, DWORD PTR -400[rbp]
	lea	rax, -128[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	ProgressReport
.L2020:
	add	DWORD PTR -364[rbp], 1
	movzx	r8d, BYTE PTR -404[rbp]
	lea	rdi, -288[rbp]
	mov	rcx, QWORD PTR -320[rbp]
	lea	rdx, -208[rbp]
	mov	esi, DWORD PTR -368[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	r9d, r8d
	mov	r8, rdi
	mov	rdi, rax
	call	SetupABCD
	mov	eax, DWORD PTR -288[rbp]
	mov	DWORD PTR -348[rbp], eax
	mov	eax, DWORD PTR -284[rbp]
	mov	DWORD PTR -344[rbp], eax
	mov	eax, DWORD PTR -280[rbp]
	mov	DWORD PTR -340[rbp], eax
	mov	eax, DWORD PTR -276[rbp]
	mov	DWORD PTR -336[rbp], eax
	mov	DWORD PTR -360[rbp], 0
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2025
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, DWORD PTR -340[rbp]
	mov	edi, DWORD PTR -344[rbp]
	mov	ecx, DWORD PTR -348[rbp]
	mov	edx, DWORD PTR -368[rbp]
	push	rsi
	mov	esi, DWORD PTR -336[rbp]
	push	rsi
	mov	r9d, r8d
	mov	r8d, edi
	lea	rsi, .LC478[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 16
.L2025:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L2026
	cmp	BYTE PTR -404[rbp], 0
	je	.L2026
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -348[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -176[rbp], xmm0
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -344[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -168[rbp], xmm0
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -340[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -160[rbp], xmm0
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -336[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -152[rbp], xmm0
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -144[rbp], xmm0
	mov	DWORD PTR -376[rbp], 0
	jmp	.L2027
.L2030:
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -176[rbp+rax*8]
	movsd	xmm0, QWORD PTR .LC384[rip]
	comisd	xmm0, xmm1
	jbe	.L2028
	movsd	xmm0, QWORD PTR .LC384[rip]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	movsd	QWORD PTR -176[rbp+rax*8], xmm0
.L2028:
	add	DWORD PTR -376[rbp], 1
.L2027:
	cmp	DWORD PTR -376[rbp], 4
	jle	.L2030
	movsd	xmm6, QWORD PTR -144[rbp]
	movsd	QWORD PTR -432[rbp], xmm6
	movsd	xmm7, QWORD PTR -152[rbp]
	movsd	QWORD PTR -440[rbp], xmm7
	movsd	xmm3, QWORD PTR -160[rbp]
	movsd	QWORD PTR -448[rbp], xmm3
	movsd	xmm2, QWORD PTR -168[rbp]
	movsd	QWORD PTR -456[rbp], xmm2
	movsd	xmm1, QWORD PTR -176[rbp]
	movsd	QWORD PTR -464[rbp], xmm1
	mov	rax, QWORD PTR -392[rbp]
	lea	r8, 168[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	r9, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	r10d, DWORD PTR 4[rax]
	mov	rcx, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR -192[rbp]
	mov	rsi, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR -208[rbp]
	sub	rsp, 8
	push	0
	lea	rdi, -176[rbp]
	push	rdi
	push	r8
	mov	r8d, r10d
	mov	rdi, rax
	call	MLQuartetLogLk
	add	rsp, 32
	movq	rax, xmm0
	mov	rdx, QWORD PTR stderr[rip]
	movsd	xmm5, QWORD PTR -432[rbp]
	movsd	xmm4, QWORD PTR -440[rbp]
	movsd	xmm3, QWORD PTR -448[rbp]
	movsd	xmm2, QWORD PTR -456[rbp]
	movsd	xmm1, QWORD PTR -464[rbp]
	movq	xmm0, rax
	lea	rsi, .LC479[rip]
	mov	rdi, rdx
	mov	eax, 6
	call	fprintf@PLT
.L2026:
	cmp	BYTE PTR -404[rbp], 0
	je	.L2031
	mov	DWORD PTR -376[rbp], 0
	jmp	.L2032
.L2033:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	mov	eax, DWORD PTR -288[rbp+rax*4]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	movss	DWORD PTR -272[rbp+rax*4], xmm0
	add	DWORD PTR -376[rbp], 1
.L2032:
	cmp	DWORD PTR -376[rbp], 3
	jle	.L2033
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -256[rbp], xmm0
	mov	eax, DWORD PTR mlAccuracy[rip]
	cmp	eax, 1
	jg	.L2034
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jle	.L2034
	mov	eax, 1
	jmp	.L2035
.L2034:
	mov	eax, 0
.L2035:
	mov	BYTE PTR -377[rbp], al
	and	BYTE PTR -377[rbp], 1
	movzx	ecx, BYTE PTR -377[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	r8d, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -392[rbp]
	lea	rdi, 168[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	rsi, QWORD PTR 24[rax]
	lea	r9, -240[rbp]
	lea	rax, -208[rbp]
	push	rcx
	lea	rcx, -272[rbp]
	push	rcx
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	MLQuartetNNI
	add	rsp, 16
	mov	DWORD PTR -360[rbp], eax
	jmp	.L2036
.L2031:
	mov	rax, QWORD PTR -392[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	rsi, QWORD PTR 16[rax]
	lea	rdi, -240[rbp]
	lea	rax, -208[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ChooseNNI
	mov	DWORD PTR -360[rbp], eax
	mov	DWORD PTR -376[rbp], 0
	jmp	.L2037
.L2038:
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -240[rbp+rax*8]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	movsd	QWORD PTR -240[rbp+rax*8], xmm0
	add	DWORD PTR -376[rbp], 1
.L2037:
	cmp	DWORD PTR -376[rbp], 2
	jle	.L2038
.L2036:
	cmp	DWORD PTR -360[rbp], 1
	jne	.L2039
	mov	ecx, DWORD PTR -340[rbp]
	mov	edx, DWORD PTR -344[rbp]
	mov	esi, DWORD PTR -368[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	ReplaceChild
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	esi, DWORD PTR [rax]
	mov	ecx, DWORD PTR -344[rbp]
	mov	edx, DWORD PTR -340[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	ReplaceChild
	jmp	.L2040
.L2039:
	cmp	DWORD PTR -360[rbp], 2
	jne	.L2040
	mov	ecx, DWORD PTR -340[rbp]
	mov	edx, DWORD PTR -348[rbp]
	mov	esi, DWORD PTR -368[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	ReplaceChild
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	esi, DWORD PTR [rax]
	mov	ecx, DWORD PTR -348[rbp]
	mov	edx, DWORD PTR -340[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	ReplaceChild
.L2040:
	cmp	BYTE PTR -404[rbp], 0
	je	.L2041
	cmp	DWORD PTR -360[rbp], 2
	jne	.L2042
	movss	xmm0, DWORD PTR -264[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -176[rbp], xmm0
	movss	xmm0, DWORD PTR -260[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -168[rbp], xmm0
	movss	xmm0, DWORD PTR -272[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -160[rbp], xmm0
	movss	xmm0, DWORD PTR -268[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -152[rbp], xmm0
	movss	xmm0, DWORD PTR -256[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -144[rbp], xmm0
	mov	DWORD PTR -356[rbp], 0
	jmp	.L2043
.L2044:
	mov	eax, DWORD PTR -356[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -176[rbp+rax*8]
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -356[rbp]
	cdqe
	movss	DWORD PTR -272[rbp+rax*4], xmm0
	add	DWORD PTR -356[rbp], 1
.L2043:
	cmp	DWORD PTR -356[rbp], 4
	jle	.L2044
	movss	xmm0, DWORD PTR -272[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -296[rbp], xmm0
	movss	xmm0, DWORD PTR -264[rbp]
	movss	DWORD PTR -272[rbp], xmm0
	pxor	xmm0, xmm0
	cvtsd2ss	xmm0, QWORD PTR -296[rbp]
	movss	DWORD PTR -264[rbp], xmm0
	jmp	.L2045
.L2042:
	cmp	DWORD PTR -360[rbp], 1
	jne	.L2045
	movss	xmm0, DWORD PTR -268[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -304[rbp], xmm0
	movss	xmm0, DWORD PTR -264[rbp]
	movss	DWORD PTR -268[rbp], xmm0
	pxor	xmm0, xmm0
	cvtsd2ss	xmm0, QWORD PTR -304[rbp]
	movss	DWORD PTR -264[rbp], xmm0
.L2045:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR -256[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -348[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR -272[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -344[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR -268[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -340[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR -264[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -336[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR -260[rbp]
	movss	DWORD PTR [rax], xmm0
.L2041:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2046
	cmp	DWORD PTR -360[rbp], 0
	jne	.L2047
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2046
.L2047:
	mov	eax, DWORD PTR -360[rbp]
	movsd	xmm0, QWORD PTR -240[rbp+rax*8]
	movsd	xmm1, QWORD PTR -240[rbp]
	subsd	xmm0, xmm1
	movq	r8, xmm0
	cmp	BYTE PTR -404[rbp], 0
	je	.L2048
	lea	rdx, .LC480[rip]
	jmp	.L2049
.L2048:
	lea	rdx, .LC481[rip]
.L2049:
	cmp	DWORD PTR -360[rbp], 1
	je	.L2050
	cmp	DWORD PTR -360[rbp], 0
	jne	.L2051
	lea	rax, .LC382[rip]
	jmp	.L2053
.L2051:
	lea	rax, .LC381[rip]
	jmp	.L2053
.L2050:
	lea	rax, .LC380[rip]
.L2053:
	mov	rdi, QWORD PTR stderr[rip]
	mov	r9d, DWORD PTR -340[rbp]
	mov	r10d, DWORD PTR -344[rbp]
	mov	ecx, DWORD PTR -348[rbp]
	mov	esi, DWORD PTR -368[rbp]
	push	rdx
	push	rax
	movq	xmm0, r8
	mov	r8d, r10d
	mov	edx, esi
	lea	rsi, .LC482[rip]
	mov	eax, 1
	call	fprintf@PLT
	add	rsp, 16
.L2046:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2054
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	je	.L2054
	cmp	BYTE PTR -404[rbp], 0
	je	.L2054
	mov	rax, QWORD PTR -392[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	TreeLogLk
	movq	rax, xmm0
	mov	rdx, QWORD PTR stderr[rip]
	movq	xmm0, rax
	lea	rsi, .LC483[rip]
	mov	rdi, rdx
	mov	eax, 1
	call	fprintf@PLT
.L2054:
	cmp	DWORD PTR -360[rbp], 0
	jne	.L2055
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	add	edx, 1
	mov	DWORD PTR [rax], edx
	jmp	.L2056
.L2055:
	cmp	BYTE PTR -404[rbp], 0
	je	.L2057
	mov	rax, QWORD PTR nML_NNI[rip]
	add	rax, 1
	mov	QWORD PTR nML_NNI[rip], rax
	jmp	.L2058
.L2057:
	mov	rax, QWORD PTR nNNI[rip]
	add	rax, 1
	mov	QWORD PTR nNNI[rip], rax
.L2058:
	add	DWORD PTR -372[rbp], 1
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -348[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -344[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -340[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -336[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], 0
.L2056:
	mov	eax, DWORD PTR -360[rbp]
	movsd	xmm0, QWORD PTR -240[rbp+rax*8]
	movsd	xmm1, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	subsd	xmm0, xmm1
	movsd	QWORD PTR 8[rax], xmm0
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -424[rbp]
	movsd	xmm1, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L2059
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -424[rbp]
	movsd	QWORD PTR [rax], xmm0
.L2059:
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR .LC234[rip]
	movsd	QWORD PTR 16[rax], xmm0
	mov	DWORD PTR -376[rbp], 0
	jmp	.L2061
.L2064:
	mov	eax, DWORD PTR -376[rbp]
	cmp	DWORD PTR -360[rbp], eax
	je	.L2062
	mov	eax, DWORD PTR -360[rbp]
	movsd	xmm0, QWORD PTR -240[rbp+rax*8]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	movsd	xmm2, QWORD PTR -240[rbp+rax*8]
	movapd	xmm1, xmm0
	subsd	xmm1, xmm2
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR 16[rax]
	comisd	xmm0, xmm1
	jbe	.L2062
	mov	eax, DWORD PTR -360[rbp]
	movsd	xmm0, QWORD PTR -240[rbp+rax*8]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -240[rbp+rax*8]
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	subsd	xmm0, xmm1
	movsd	QWORD PTR 16[rax], xmm0
.L2062:
	add	DWORD PTR -376[rbp], 1
.L2061:
	cmp	DWORD PTR -376[rbp], 2
	jle	.L2064
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR 8[rax]
	comisd	xmm0, QWORD PTR -328[rbp]
	jbe	.L2086
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	DWORD PTR 4[rax], 0
	jmp	.L2067
.L2086:
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR 4[rax]
	add	edx, 1
	mov	DWORD PTR 4[rax], edx
	mov	DWORD PTR -376[rbp], 0
	jmp	.L2068
.L2070:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	mov	DWORD PTR -332[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	ecx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -332[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cmp	ecx, eax
	jle	.L2069
	mov	eax, DWORD PTR -332[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR 4[rcx]
	mov	DWORD PTR 4[rdx], eax
.L2069:
	add	DWORD PTR -376[rbp], 1
.L2068:
	cmp	DWORD PTR -376[rbp], 1
	jle	.L2070
.L2067:
	cmp	DWORD PTR -360[rbp], 0
	jne	.L2071
	mov	edx, DWORD PTR -348[rbp]
	mov	rcx, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR -320[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	edx, DWORD PTR -344[rbp]
	mov	rcx, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR -320[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	edx, DWORD PTR -340[rbp]
	mov	rcx, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR -320[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	movzx	ecx, BYTE PTR -404[rbp]
	mov	edx, DWORD PTR -368[rbp]
	mov	rsi, QWORD PTR -320[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	RecomputeProfile
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	je	.L2072
	cmp	BYTE PTR -404[rbp], 0
	je	.L2072
	movzx	ecx, BYTE PTR -404[rbp]
	mov	rdx, QWORD PTR -320[rbp]
	mov	esi, DWORD PTR -368[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	UpdateForNNI
	jmp	.L2072
.L2071:
	movzx	ecx, BYTE PTR -404[rbp]
	mov	rdx, QWORD PTR -320[rbp]
	mov	esi, DWORD PTR -368[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	UpdateForNNI
.L2072:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2012
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	je	.L2012
	cmp	BYTE PTR -404[rbp], 0
	je	.L2012
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -392[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	PrintNJInternal
	mov	rax, QWORD PTR -392[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	TreeLogLk
	movq	rax, xmm0
	mov	rdx, QWORD PTR stderr[rip]
	movq	xmm0, rax
	lea	rsi, .LC484[rip]
	mov	rdi, rdx
	mov	eax, 1
	call	fprintf@PLT
	jmp	.L2012
.L2088:
	nop
.L2012:
	lea	rcx, -378[rbp]
	mov	rdx, QWORD PTR -312[rbp]
	mov	rsi, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR -368[rbp]
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -368[rbp], eax
	cmp	DWORD PTR -368[rbp], 0
	jns	.L2074
	mov	rdx, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR -312[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -312[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jle	.L2075
	mov	DWORD PTR -352[rbp], 0
	mov	DWORD PTR -376[rbp], 0
	jmp	.L2076
.L2078:
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L2077
	add	DWORD PTR -352[rbp], 1
.L2077:
	add	DWORD PTR -376[rbp], 1
.L2076:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -376[rbp], eax
	jl	.L2078
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -352[rbp]
	lea	rsi, .LC485[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2075:
	mov	rdx, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR -320[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeUpProfiles
	mov	QWORD PTR -320[rbp], rax
	mov	eax, DWORD PTR -372[rbp]
.L2079:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L2080
	call	__stack_chk_fail@PLT
.L2080:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE577:
	.size	NNI, .-NNI
	.globl	InitNNIStats
	.type	InitNNIStats, @function
InitNNIStats:
.LFB578:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 48[rax]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 1000000
	mov	DWORD PTR -16[rbp], 0
	jmp	.L2090
.L2094:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR 8[rax], xmm0
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR 16[rax], xmm0
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -16[rbp], eax
	je	.L2091
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -16[rbp], eax
	jge	.L2092
.L2091:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR 4[rdx], eax
	jmp	.L2093
.L2092:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	DWORD PTR 4[rax], 0
.L2093:
	add	DWORD PTR -16[rbp], 1
.L2090:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L2094
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE578:
	.size	InitNNIStats, .-InitNNIStats
	.globl	FreeNNIStats
	.type	FreeNNIStats, @function
FreeNNIStats:
.LFB579:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 48[rax]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE579:
	.size	FreeNNIStats, .-FreeNNIStats
	.section	.rodata
	.align 8
.LC486:
	.string	"SPR chain step %d for %d around %d swap %d %d deltaLen %.5f\n"
	.align 8
.LC487:
	.string	"newAround[0] == nodeAround || newAround[1] == nodeAround"
.LC488:
	.string	"newAround[0] != newAround[1]"
	.text
	.globl	FindSPRSteps
	.type	FindSPRSteps, @function
FindSPRSteps:
.LFB580:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 176
	mov	QWORD PTR -136[rbp], rdi
	mov	DWORD PTR -140[rbp], esi
	mov	DWORD PTR -144[rbp], edx
	mov	QWORD PTR -152[rbp], rcx
	mov	QWORD PTR -160[rbp], r8
	mov	DWORD PTR -164[rbp], r9d
	mov	eax, DWORD PTR 16[rbp]
	mov	BYTE PTR -168[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -116[rbp], 0
	jmp	.L2099
.L2110:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -144[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L2113
	lea	rdi, -96[rbp]
	mov	rcx, QWORD PTR -152[rbp]
	lea	rdx, -48[rbp]
	mov	esi, DWORD PTR -144[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	rdi, rax
	call	SetupABCD
	mov	rax, QWORD PTR -136[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, QWORD PTR 16[rax]
	lea	rdi, -80[rbp]
	lea	rax, -48[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ChooseNNI
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	cmp	DWORD PTR -116[rbp], 0
	jne	.L2102
	movzx	eax, BYTE PTR -168[rbp]
	jmp	.L2103
.L2102:
	movsd	xmm1, QWORD PTR -72[rbp]
	movsd	xmm0, QWORD PTR -64[rbp]
	comisd	xmm0, xmm1
	seta	al
.L2103:
	test	al, al
	je	.L2104
	movsd	xmm0, QWORD PTR -72[rbp]
	movsd	xmm1, QWORD PTR -80[rbp]
	subsd	xmm0, xmm1
	mov	rax, QWORD PTR -112[rbp]
	movsd	QWORD PTR 8[rax], xmm0
	mov	edx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -112[rbp]
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -88[rbp]
	mov	rax, QWORD PTR -112[rbp]
	mov	DWORD PTR 4[rax], edx
	jmp	.L2105
.L2104:
	movsd	xmm0, QWORD PTR -64[rbp]
	movsd	xmm1, QWORD PTR -80[rbp]
	subsd	xmm0, xmm1
	mov	rax, QWORD PTR -112[rbp]
	movsd	QWORD PTR 8[rax], xmm0
	mov	edx, DWORD PTR -96[rbp]
	mov	rax, QWORD PTR -112[rbp]
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -88[rbp]
	mov	rax, QWORD PTR -112[rbp]
	mov	DWORD PTR 4[rax], edx
.L2105:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L2106
	mov	rax, QWORD PTR -112[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edi, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	r9d, DWORD PTR [rax]
	mov	eax, DWORD PTR -116[rbp]
	lea	esi, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, DWORD PTR -140[rbp]
	mov	edx, DWORD PTR -144[rbp]
	sub	rsp, 8
	push	rdi
	movq	xmm0, rcx
	mov	ecx, edx
	mov	edx, esi
	lea	rsi, .LC486[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	add	rsp, 16
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 4
	jle	.L2106
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -136[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	PrintNJInternal
.L2106:
	mov	rax, QWORD PTR -112[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR [rax]
	mov	esi, DWORD PTR -144[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	ReplaceChild
	mov	rax, QWORD PTR -112[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -144[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	ReplaceChild
	mov	rdx, QWORD PTR -152[rbp]
	mov	esi, DWORD PTR -144[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	UpdateForNNI
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -140[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -104[rbp], eax
	mov	edx, DWORD PTR -140[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	Sibling
	mov	DWORD PTR -100[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -140[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	edx, eax
	jne	.L2107
	lea	rdx, -104[rbp]
	mov	ecx, DWORD PTR -140[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	RootSiblings
.L2107:
	mov	eax, DWORD PTR -104[rbp]
	cmp	DWORD PTR -144[rbp], eax
	je	.L2108
	mov	eax, DWORD PTR -100[rbp]
	cmp	DWORD PTR -144[rbp], eax
	je	.L2108
	lea	rcx, __PRETTY_FUNCTION__.34[rip]
	mov	edx, 6553
	lea	rsi, .LC131[rip]
	lea	rdi, .LC487[rip]
	call	__assert_fail@PLT
.L2108:
	mov	edx, DWORD PTR -104[rbp]
	mov	eax, DWORD PTR -100[rbp]
	cmp	edx, eax
	jne	.L2109
	lea	rcx, __PRETTY_FUNCTION__.34[rip]
	mov	edx, 6554
	lea	rsi, .LC131[rip]
	lea	rdi, .LC488[rip]
	call	__assert_fail@PLT
.L2109:
	mov	eax, DWORD PTR -104[rbp]
	cmp	DWORD PTR -144[rbp], eax
	sete	al
	movzx	eax, al
	cdqe
	mov	eax, DWORD PTR -104[rbp+rax*4]
	mov	DWORD PTR -144[rbp], eax
	add	DWORD PTR -116[rbp], 1
.L2099:
	mov	eax, DWORD PTR -116[rbp]
	cmp	eax, DWORD PTR -164[rbp]
	jl	.L2110
	jmp	.L2101
.L2113:
	nop
.L2101:
	mov	eax, DWORD PTR -116[rbp]
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L2112
	call	__stack_chk_fail@PLT
.L2112:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE580:
	.size	FindSPRSteps, .-FindSPRSteps
	.section	.rodata
	.align 8
.LC489:
	.string	"step->nodes[i] >= 0 && step->nodes[i] < NJ->maxnodes"
.LC490:
	.string	"parents[i] >= 0"
.LC491:
	.string	"parents[0] != parents[1]"
	.align 8
.LC492:
	.string	"NJ->parent[parents[1]] == parents[0]"
	.text
	.globl	UnwindSPRStep
	.type	UnwindSPRStep, @function
UnwindSPRStep:
.LFB581:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -24[rbp], 0
	jmp	.L2115
.L2119:
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	mov	eax, DWORD PTR [rax+rdx*4]
	test	eax, eax
	js	.L2116
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	mov	edx, DWORD PTR [rax+rdx*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	edx, eax
	jl	.L2125
.L2116:
	lea	rcx, __PRETTY_FUNCTION__.33[rip]
	mov	edx, 6566
	lea	rsi, .LC131[rip]
	lea	rdi, .LC489[rip]
	call	__assert_fail@PLT
.L2125:
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	mov	eax, DWORD PTR [rax+rdx*4]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	mov	DWORD PTR -16[rbp+rax*4], edx
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	mov	eax, DWORD PTR -16[rbp+rax*4]
	test	eax, eax
	jns	.L2118
	lea	rcx, __PRETTY_FUNCTION__.33[rip]
	mov	edx, 6568
	lea	rsi, .LC131[rip]
	lea	rdi, .LC490[rip]
	call	__assert_fail@PLT
.L2118:
	add	DWORD PTR -24[rbp], 1
.L2115:
	cmp	DWORD PTR -24[rbp], 1
	jle	.L2119
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, DWORD PTR -12[rbp]
	cmp	edx, eax
	jne	.L2120
	lea	rcx, __PRETTY_FUNCTION__.33[rip]
	mov	edx, 6570
	lea	rsi, .LC131[rip]
	lea	rdi, .LC491[rip]
	call	__assert_fail@PLT
.L2120:
	mov	rax, QWORD PTR -48[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR [rax]
	mov	esi, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	ReplaceChild
	mov	rax, QWORD PTR -48[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	esi, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	ReplaceChild
	mov	DWORD PTR -20[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cmp	edx, eax
	jne	.L2121
	mov	DWORD PTR -20[rbp], 0
	jmp	.L2122
.L2121:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	je	.L2123
	lea	rcx, __PRETTY_FUNCTION__.33[rip]
	mov	edx, 6577
	lea	rsi, .LC131[rip]
	lea	rdi, .LC492[rip]
	call	__assert_fail@PLT
.L2123:
	mov	DWORD PTR -20[rbp], 1
.L2122:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	mov	esi, DWORD PTR -16[rbp+rax*4]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	UpdateForNNI
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2124
	call	__stack_chk_fail@PLT
.L2124:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE581:
	.size	UnwindSPRStep, .-UnwindSPRStep
	.section	.rodata
.LC493:
	.string	"node != NJ->root"
	.text
	.globl	UpdateForNNI
	.type	UpdateForNNI, @function
UpdateForNNI:
.LFB582:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	eax, ecx
	mov	BYTE PTR -48[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	je	.L2127
	mov	DWORD PTR -32[rbp], 0
	jmp	.L2128
.L2129:
	mov	edx, DWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	add	DWORD PTR -32[rbp], 1
.L2128:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L2129
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -28[rbp], eax
	jmp	.L2130
.L2131:
	movzx	ecx, BYTE PTR -48[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	RecomputeProfile
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -28[rbp], eax
.L2130:
	cmp	DWORD PTR -28[rbp], 0
	jns	.L2131
	mov	DWORD PTR -32[rbp], 0
	jmp	.L2132
.L2133:
	mov	edx, DWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	add	DWORD PTR -32[rbp], 1
.L2132:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L2133
	jmp	.L2141
.L2127:
	mov	edx, DWORD PTR -44[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	DWORD PTR -32[rbp], 0
	jmp	.L2135
.L2136:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	mov	edx, DWORD PTR 4[rdx+rax*4]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	add	DWORD PTR -32[rbp], 1
.L2135:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L2136
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -44[rbp], eax
	jne	.L2137
	lea	rcx, __PRETTY_FUNCTION__.32[rip]
	mov	edx, 6608
	lea	rsi, .LC131[rip]
	lea	rdi, .LC493[rip]
	call	__assert_fail@PLT
.L2137:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	edx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	Sibling
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -24[rbp], eax
	jne	.L2138
	lea	rdx, -16[rbp]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	RootSiblings
.L2138:
	mov	edx, DWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	edx, DWORD PTR -12[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	Sibling
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	js	.L2139
	mov	edx, DWORD PTR -20[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
.L2139:
	movzx	ecx, BYTE PTR -48[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	RecomputeProfile
	movzx	ecx, BYTE PTR -48[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	RecomputeProfile
.L2141:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2140
	call	__stack_chk_fail@PLT
.L2140:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE582:
	.size	UpdateForNNI, .-UpdateForNNI
	.section	.rodata
.LC494:
	.string	"nodeListLen == NJ->maxnode"
	.align 8
.LC495:
	.string	"SPR round %3d of %3d, %d of %d nodes"
.LC496:
	.string	"move"
.LC497:
	.string	"abandoned"
	.align 8
.LC498:
	.string	"SPR %s %d around %d chainLength %d of %d deltaLength %.5f swaps:"
.LC499:
	.string	" (%d,%d)%.4f"
	.align 8
.LC500:
	.string	"Total branch-length is now %.4f was %.4f expected %.4f\n"
.LC501:
	.string	"Rewinding SPR to %d\n"
	.text
	.globl	SPR
	.type	SPR, @function
SPR:
.LFB583:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 176
	mov	QWORD PTR -152[rbp], rdi
	mov	DWORD PTR -156[rbp], esi
	mov	DWORD PTR -160[rbp], edx
	mov	DWORD PTR -164[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	pxor	xmm0, xmm0
	movsd	QWORD PTR -88[rbp], xmm0
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jle	.L2192
	cmp	DWORD PTR -156[rbp], 0
	jle	.L2192
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	je	.L2146
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	TreeLength
	movq	rax, xmm0
	mov	QWORD PTR -88[rbp], rax
.L2146:
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -64[rbp], rax
	mov	DWORD PTR -128[rbp], 0
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -124[rbp], eax
	jmp	.L2147
.L2148:
	mov	eax, DWORD PTR -128[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -128[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -124[rbp]
	mov	DWORD PTR [rdx], eax
.L2147:
	mov	rdx, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR -124[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -124[rbp], eax
	cmp	DWORD PTR -124[rbp], 0
	jns	.L2148
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -128[rbp], eax
	je	.L2149
	lea	rcx, __PRETTY_FUNCTION__.31[rip]
	mov	edx, 6650
	lea	rsi, .LC131[rip]
	lea	rdi, .LC494[rip]
	call	__assert_fail@PLT
.L2149:
	mov	rdx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	UpProfiles
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR -156[rbp]
	cdqe
	sal	rax, 4
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -40[rbp], rax
	mov	DWORD PTR -120[rbp], 0
	jmp	.L2150
.L2187:
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -124[rbp], eax
	mov	edx, DWORD PTR -120[rbp]
	movsx	rax, edx
	imul	rax, rax, 1374389535
	shr	rax, 32
	sar	eax, 5
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 100
	mov	eax, edx
	sub	eax, ecx
	test	eax, eax
	jne	.L2151
	mov	eax, DWORD PTR -120[rbp]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR -160[rbp]
	lea	esi, 1[rax]
	mov	ecx, DWORD PTR -128[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, eax
	lea	rdi, .LC495[rip]
	call	ProgressReport
.L2151:
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -124[rbp], eax
	je	.L2193
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -16[rbp], eax
	mov	edx, DWORD PTR -124[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	Sibling
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	edx, eax
	jne	.L2154
	lea	rdx, -16[rbp]
	mov	ecx, DWORD PTR -124[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	RootSiblings
.L2154:
	mov	BYTE PTR -129[rbp], 0
	mov	DWORD PTR -116[rbp], 0
	jmp	.L2155
.L2181:
	mov	DWORD PTR -112[rbp], 0
	jmp	.L2156
.L2179:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L2157
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -152[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	PrintNJInternal
.L2157:
	cmp	DWORD PTR -112[rbp], 0
	setne	al
	movzx	edi, al
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	mov	edx, DWORD PTR -16[rbp+rax*4]
	mov	r9d, DWORD PTR -156[rbp]
	mov	r8, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	esi, DWORD PTR -124[rbp]
	mov	rax, QWORD PTR -152[rbp]
	sub	rsp, 8
	push	rdi
	mov	rdi, rax
	call	FindSPRSteps
	add	rsp, 16
	mov	DWORD PTR -92[rbp], eax
	pxor	xmm0, xmm0
	movsd	QWORD PTR -80[rbp], xmm0
	mov	DWORD PTR -108[rbp], -1
	pxor	xmm0, xmm0
	movsd	QWORD PTR -72[rbp], xmm0
	mov	DWORD PTR -104[rbp], 0
	jmp	.L2158
.L2161:
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR 8[rax]
	movsd	xmm1, QWORD PTR -72[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -72[rbp], xmm0
	movsd	xmm0, QWORD PTR -80[rbp]
	comisd	xmm0, QWORD PTR -72[rbp]
	jbe	.L2159
	movsd	xmm0, QWORD PTR -72[rbp]
	movsd	QWORD PTR -80[rbp], xmm0
	mov	eax, DWORD PTR -104[rbp]
	mov	DWORD PTR -108[rbp], eax
.L2159:
	add	DWORD PTR -104[rbp], 1
.L2158:
	mov	eax, DWORD PTR -104[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jl	.L2161
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L2162
	mov	eax, DWORD PTR -108[rbp]
	lea	r9d, 1[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	mov	r8d, DWORD PTR -16[rbp+rax*4]
	cmp	DWORD PTR -108[rbp], 0
	js	.L2163
	lea	rax, .LC496[rip]
	jmp	.L2164
.L2163:
	lea	rax, .LC497[rip]
.L2164:
	mov	rdi, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -124[rbp]
	sub	rsp, 8
	mov	esi, DWORD PTR -92[rbp]
	push	rsi
	movq	xmm0, rcx
	mov	ecx, edx
	mov	rdx, rax
	lea	rsi, .LC498[rip]
	mov	eax, 1
	call	fprintf@PLT
	add	rsp, 16
	mov	DWORD PTR -104[rbp], 0
	jmp	.L2165
.L2166:
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rsi, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	ecx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movq	xmm0, rsi
	lea	rsi, .LC499[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -104[rbp], 1
.L2165:
	mov	eax, DWORD PTR -104[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jl	.L2166
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L2162:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -104[rbp], eax
	jmp	.L2167
.L2168:
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, [rdx+rax]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	UnwindSPRStep
	sub	DWORD PTR -104[rbp], 1
.L2167:
	mov	eax, DWORD PTR -104[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jg	.L2168
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L2170
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -152[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	PrintNJInternal
	jmp	.L2170
.L2176:
	movsd	xmm0, QWORD PTR -88[rbp]
	addsd	xmm0, QWORD PTR -80[rbp]
	movsd	QWORD PTR -32[rbp], xmm0
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	TreeLength
	movq	rax, xmm0
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2171
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm1, QWORD PTR -32[rbp]
	movsd	xmm0, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC500[rip]
	mov	rdi, rax
	mov	eax, 3
	call	fprintf@PLT
.L2171:
	movsd	xmm0, QWORD PTR -88[rbp]
	comisd	xmm0, QWORD PTR -24[rbp]
	jbe	.L2191
	movsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR -88[rbp], xmm0
	jmp	.L2174
.L2191:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2175
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -108[rbp]
	lea	rsi, .LC501[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2175:
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, [rdx+rax]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	UnwindSPRStep
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR 8[rax]
	movsd	xmm0, QWORD PTR -80[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -80[rbp], xmm0
	sub	DWORD PTR -108[rbp], 1
.L2170:
	mov	eax, DWORD PTR slow[rip]
	test	eax, eax
	je	.L2174
	cmp	DWORD PTR -108[rbp], 0
	jns	.L2176
.L2174:
	cmp	DWORD PTR -108[rbp], 0
	js	.L2177
	mov	BYTE PTR -129[rbp], 1
.L2177:
	add	DWORD PTR -112[rbp], 1
.L2156:
	cmp	DWORD PTR -112[rbp], 1
	jg	.L2178
	movzx	eax, BYTE PTR -129[rbp]
	xor	eax, 1
	test	al, al
	jne	.L2179
.L2178:
	add	DWORD PTR -116[rbp], 1
.L2155:
	cmp	DWORD PTR -116[rbp], 1
	jg	.L2180
	movzx	eax, BYTE PTR -129[rbp]
	xor	eax, 1
	test	al, al
	jne	.L2181
.L2180:
	cmp	BYTE PTR -129[rbp], 0
	je	.L2153
	mov	rax, QWORD PTR nSPR[rip]
	add	rax, 1
	mov	QWORD PTR nSPR[rip], rax
	mov	DWORD PTR -100[rbp], 0
	jmp	.L2183
.L2184:
	mov	edx, DWORD PTR -100[rbp]
	mov	rcx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	add	DWORD PTR -100[rbp], 1
.L2183:
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -100[rbp], eax
	jl	.L2184
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -96[rbp], eax
	jmp	.L2185
.L2186:
	mov	edx, DWORD PTR -96[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	RecomputeProfile
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -96[rbp], eax
.L2185:
	cmp	DWORD PTR -96[rbp], 0
	jns	.L2186
	jmp	.L2153
.L2193:
	nop
.L2153:
	add	DWORD PTR -120[rbp], 1
.L2150:
	mov	eax, DWORD PTR -120[rbp]
	cmp	eax, DWORD PTR -128[rbp]
	jl	.L2187
	mov	eax, DWORD PTR -156[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -40[rbp], rax
	mov	rdx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeUpProfiles
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -64[rbp], rax
	jmp	.L2142
.L2192:
	nop
.L2142:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2188
	call	__stack_chk_fail@PLT
.L2188:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE583:
	.size	SPR, .-SPR
	.section	.rodata
.LC502:
	.string	"NJ->child[node].nChild==2"
	.align 8
.LC503:
	.string	"Recompute %d from %d %d lengths %.4f %.4f\n"
	.align 8
.LC504:
	.string	"Recompute %d from %d %d weight %.3f\n"
	.text
	.globl	RecomputeProfile
	.type	RecomputeProfile, @function
RecomputeProfile:
.LFB584:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 120
	.cfi_offset 3, -24
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	DWORD PTR -116[rbp], edx
	mov	eax, ecx
	mov	BYTE PTR -120[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -116[rbp], eax
	jl	.L2207
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -116[rbp], eax
	je	.L2207
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	je	.L2198
	lea	rcx, __PRETTY_FUNCTION__.30[rip]
	mov	edx, 6744
	lea	rsi, .LC131[rip]
	lea	rdi, .LC502[rip]
	call	__assert_fail@PLT
.L2198:
	movsd	xmm0, QWORD PTR .LC18[rip]
	movsd	QWORD PTR -88[rbp], xmm0
	cmp	BYTE PTR -120[rbp], 0
	jne	.L2199
	mov	eax, DWORD PTR bionj[rip]
	test	eax, eax
	jne	.L2200
.L2199:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rcx
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rcx
	mov	eax, DWORD PTR 8[rax]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -56[rbp], rax
	jmp	.L2201
.L2200:
	movzx	r8d, BYTE PTR -120[rbp]
	lea	rdi, -80[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	lea	rdx, -64[rbp]
	mov	esi, DWORD PTR -116[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	r9d, r8d
	mov	r8, rdi
	mov	rdi, rax
	call	SetupABCD
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR 16[rax]
	lea	rax, -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	QuartetWeight
	movq	rax, xmm0
	mov	QWORD PTR -88[rbp], rax
.L2201:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L2202
	cmp	BYTE PTR -120[rbp], 0
	je	.L2203
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rcx
	mov	eax, DWORD PTR 8[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rcx
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movq	rsi, xmm2
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	edi, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -116[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	mov	r8d, edi
	lea	rsi, .LC503[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	jmp	.L2202
.L2203:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	edi, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, QWORD PTR -88[rbp]
	mov	edx, DWORD PTR -116[rbp]
	movq	xmm0, rsi
	mov	r8d, edi
	lea	rsi, .LC504[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L2202:
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rax, QWORD PTR [rax]
	mov	rsi, QWORD PTR -104[rbp]
	mov	rdi, QWORD PTR 56[rsi]
	mov	esi, DWORD PTR -116[rbp]
	movsx	rsi, esi
	sal	rsi, 3
	lea	rbx, [rdi+rsi]
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR [rbx], rax
	cmp	BYTE PTR -120[rbp], 0
	je	.L2204
	mov	rax, QWORD PTR -104[rbp]
	mov	r9d, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	r10d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -104[rbp]
	lea	rcx, 168[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdi
	mov	eax, DWORD PTR 8[rax]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdi
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rsi
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm1
	movq	rdi, xmm3
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	r8, QWORD PTR -104[rbp]
	mov	r11, QWORD PTR 56[r8]
	mov	r8d, DWORD PTR -116[rbp]
	movsx	r8, r8d
	sal	r8, 3
	lea	rbx, [r11+r8]
	mov	r8d, r10d
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR [rbx], rax
	jmp	.L2194
.L2204:
	mov	rax, QWORD PTR -104[rbp]
	mov	r8, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, QWORD PTR -104[rbp]
	mov	r9, QWORD PTR 56[rdi]
	mov	edi, DWORD PTR -116[rbp]
	movsx	rdi, edi
	sal	rdi, 3
	lea	rbx, [r9+rdi]
	mov	rdi, QWORD PTR -88[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	AverageProfile
	mov	QWORD PTR [rbx], rax
	jmp	.L2194
.L2207:
	nop
.L2194:
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2206
	call	__stack_chk_fail@PLT
.L2206:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE584:
	.size	RecomputeProfile, .-RecomputeProfile
	.globl	QuartetWeight
	.type	QuartetWeight, @function
QuartetWeight:
.LFB585:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	DWORD PTR -100[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR bionj[rip]
	test	eax, eax
	jne	.L2209
	movsd	xmm0, QWORD PTR .LC222[rip]
	jmp	.L2217
.L2209:
	lea	rsi, -64[rbp]
	mov	ecx, DWORD PTR -100[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	r8, rsi
	mov	esi, 4
	mov	rdi, rax
	call	CorrectedPairDistances
	movsd	xmm1, QWORD PTR -64[rbp]
	movsd	xmm0, QWORD PTR .LC37[rip]
	comisd	xmm0, xmm1
	jbe	.L2222
	movsd	xmm0, QWORD PTR .LC222[rip]
	jmp	.L2217
.L2222:
	movsd	xmm1, QWORD PTR -40[rbp]
	movsd	xmm0, QWORD PTR -32[rbp]
	addsd	xmm0, xmm1
	movsd	xmm2, QWORD PTR -56[rbp]
	movsd	xmm1, QWORD PTR -48[rbp]
	addsd	xmm1, xmm2
	subsd	xmm0, xmm1
	movsd	xmm2, QWORD PTR -64[rbp]
	movsd	xmm1, QWORD PTR .LC150[rip]
	mulsd	xmm2, xmm1
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -72[rbp], xmm0
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -72[rbp]
	jbe	.L2213
	pxor	xmm0, xmm0
	movsd	QWORD PTR -72[rbp], xmm0
.L2213:
	movsd	xmm0, QWORD PTR -72[rbp]
	movsd	xmm1, QWORD PTR .LC4[rip]
	comisd	xmm0, xmm1
	jbe	.L2215
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -72[rbp], xmm0
.L2215:
	movsd	xmm0, QWORD PTR -72[rbp]
.L2217:
	movq	rax, xmm0
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L2218
	call	__stack_chk_fail@PLT
.L2218:
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE585:
	.size	QuartetWeight, .-QuartetWeight
	.globl	ReplaceChild
	.type	ReplaceChild, @function
ReplaceChild:
.LFB586:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	DWORD PTR -36[rbp], ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	DWORD PTR -4[rbp], 0
	jmp	.L2224
.L2227:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	cmp	DWORD PTR -32[rbp], eax
	jne	.L2225
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 4
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR 4[rcx+rax*4], edx
	jmp	.L2228
.L2225:
	add	DWORD PTR -4[rbp], 1
.L2224:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -4[rbp], eax
	jl	.L2227
	lea	rcx, __PRETTY_FUNCTION__.29[rip]
	mov	edx, 6811
	lea	rsi, .LC131[rip]
	lea	rdi, .LC390[rip]
	call	__assert_fail@PLT
.L2228:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE586:
	.size	ReplaceChild, .-ReplaceChild
	.globl	UpdateBranchLengths
	.type	UpdateBranchLengths, @function
UpdateBranchLengths:
.LFB587:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 224
	mov	QWORD PTR -216[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jle	.L2241
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L2232
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -196[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -192[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -188[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -216[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -216[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -192[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -144[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	movzx	eax, BYTE PTR logdist[rip]
	test	al, al
	je	.L2233
	movss	xmm0, DWORD PTR -132[rbp]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movq	rax, xmm3
	movq	xmm0, rax
	call	LogCorrect
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR -132[rbp], xmm0
.L2233:
	movss	xmm0, DWORD PTR -132[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -192[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR .LC209[rip]
	divss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -132[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR .LC209[rip]
	divss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	jmp	.L2229
.L2232:
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	UpProfiles
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -204[rbp], eax
	jmp	.L2234
.L2239:
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -204[rbp], eax
	jne	.L2235
	jmp	.L2234
.L2235:
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -204[rbp], eax
	jge	.L2236
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -152[rbp], rax
	mov	QWORD PTR -184[rbp], 0
	mov	QWORD PTR -176[rbp], 0
	mov	edx, DWORD PTR -204[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	Sibling
	mov	DWORD PTR -200[rbp], eax
	cmp	DWORD PTR -200[rbp], -1
	jne	.L2237
	lea	rdx, -64[rbp]
	mov	ecx, DWORD PTR -204[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	RootSiblings
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -176[rbp], rax
	jmp	.L2238
.L2237:
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -200[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rsi, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	GetUpProfile
	mov	QWORD PTR -176[rbp], rax
.L2238:
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 16[rax]
	lea	rsi, -64[rbp]
	lea	rax, -96[rbp]
	mov	r8, rsi
	mov	esi, 3
	mov	rdi, rax
	call	CorrectedPairDistances
	movsd	xmm1, QWORD PTR -64[rbp]
	movsd	xmm0, QWORD PTR -56[rbp]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -48[rbp]
	subsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	jmp	.L2234
.L2236:
	lea	rdi, -112[rbp]
	mov	rcx, QWORD PTR -168[rbp]
	lea	rdx, -96[rbp]
	mov	esi, DWORD PTR -204[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	rdi, rax
	call	SetupABCD
	mov	rax, QWORD PTR -216[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 16[rax]
	lea	rsi, -64[rbp]
	lea	rax, -96[rbp]
	mov	r8, rsi
	mov	esi, 4
	mov	rdi, rax
	call	CorrectedPairDistances
	movsd	xmm1, QWORD PTR -56[rbp]
	movsd	xmm0, QWORD PTR -48[rbp]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -32[rbp]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC150[rip]
	divsd	xmm0, xmm1
	movsd	xmm2, QWORD PTR -64[rbp]
	movsd	xmm1, QWORD PTR -24[rbp]
	addsd	xmm1, xmm2
	movsd	xmm2, QWORD PTR .LC218[rip]
	divsd	xmm1, xmm2
	subsd	xmm0, xmm1
	mov	rax, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	edx, DWORD PTR -112[rbp]
	mov	rcx, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	edx, DWORD PTR -108[rbp]
	mov	rcx, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
.L2234:
	mov	rdx, QWORD PTR -160[rbp]
	mov	rsi, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -204[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -204[rbp], eax
	cmp	DWORD PTR -204[rbp], 0
	jns	.L2239
	mov	rdx, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR -160[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -160[rbp], rax
	mov	rdx, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeUpProfiles
	mov	QWORD PTR -168[rbp], rax
	jmp	.L2229
.L2241:
	nop
.L2229:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2240
	call	__stack_chk_fail@PLT
.L2240:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE587:
	.size	UpdateBranchLengths, .-UpdateBranchLengths
	.section	.rodata
.LC505:
	.string	"Boot%d"
.LC506:
	.string	"\t%d"
	.text
	.globl	ResampleColumns
	.type	ResampleColumns, @function
ResampleColumns:
.LFB588:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -40[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	imul	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -32[rbp], 0
	jmp	.L2243
.L2248:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L2244
.L2247:
	mov	eax, 0
	call	knuth_rand
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -36[rbp]
	mulsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	jns	.L2245
	mov	DWORD PTR -24[rbp], 0
	jmp	.L2246
.L2245:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jne	.L2246
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
.L2246:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	imul	rax, QWORD PTR -16[rbp]
	mov	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -28[rbp], 1
.L2244:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L2247
	add	DWORD PTR -32[rbp], 1
.L2243:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -40[rbp]
	jl	.L2248
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L2249
	mov	DWORD PTR -32[rbp], 0
	jmp	.L2250
.L2253:
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -32[rbp]
	lea	rsi, .LC505[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	DWORD PTR -20[rbp], 0
	jmp	.L2251
.L2252:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	imul	rax, QWORD PTR -16[rbp]
	mov	rdx, rax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC506[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	DWORD PTR -20[rbp], 1
.L2251:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L2252
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	add	DWORD PTR -32[rbp], 1
.L2250:
	cmp	DWORD PTR -32[rbp], 2
	jg	.L2249
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -40[rbp]
	jl	.L2253
.L2249:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE588:
	.size	ResampleColumns, .-ResampleColumns
	.section	.rodata
	.align 8
.LC507:
	.string	"Local bootstrap for %6d of %6d internal splits"
	.text
	.globl	ReliabilityNJ
	.type	ReliabilityNJ, @function
ReliabilityNJ:
.LFB589:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -104[rbp], rdi
	mov	DWORD PTR -108[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jle	.L2265
	cmp	DWORD PTR -108[rbp], 0
	jle	.L2265
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -108[rbp]
	mov	esi, edx
	mov	edi, eax
	call	ResampleColumns
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	UpProfiles
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -96[rbp], eax
	mov	DWORD PTR -92[rbp], 0
	jmp	.L2259
.L2263:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -96[rbp], eax
	jl	.L2259
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -96[rbp], eax
	jne	.L2261
	jmp	.L2259
.L2261:
	cmp	DWORD PTR -92[rbp], 0
	jle	.L2262
	mov	edx, DWORD PTR -92[rbp]
	movsx	rax, edx
	imul	rax, rax, 1374389535
	shr	rax, 32
	sar	eax, 5
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 100
	mov	eax, edx
	sub	eax, ecx
	test	eax, eax
	jne	.L2262
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, -3[rax]
	mov	eax, DWORD PTR -92[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	esi, eax
	lea	rdi, .LC507[rip]
	call	ProgressReport
.L2262:
	add	DWORD PTR -92[rbp], 1
	lea	rdi, -64[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	lea	rdx, -48[rbp]
	mov	esi, DWORD PTR -96[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	rdi, rax
	call	SetupABCD
	mov	rax, QWORD PTR -104[rbp]
	mov	r9d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	r8, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rsi, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -48[rbp]
	push	QWORD PTR -88[rbp]
	mov	edi, DWORD PTR -108[rbp]
	push	rdi
	mov	rdi, rax
	call	SplitSupport
	add	rsp, 16
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	edx, DWORD PTR -64[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	edx, DWORD PTR -60[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	edx, DWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
.L2259:
	mov	rdx, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR -96[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 0
	jns	.L2263
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -72[rbp], rax
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeUpProfiles
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	imul	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -88[rbp], rax
	jmp	.L2255
.L2265:
	nop
.L2255:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2264
	call	__stack_chk_fail@PLT
.L2264:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE589:
	.size	ReliabilityNJ, .-ReliabilityNJ
	.globl	NewProfile
	.type	NewProfile, @function
NewProfile:
.LFB590:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	edi, 56
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], 0
	cmp	DWORD PTR -24[rbp], 0
	jne	.L2267
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 48[rax], 0
	jmp	.L2268
.L2267:
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rdx], rax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 48[rdx], rax
.L2268:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE590:
	.size	NewProfile, .-NewProfile
	.globl	FreeProfile
	.type	FreeProfile, @function
FreeProfile:
.LFB591:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	cmp	QWORD PTR -8[rbp], 0
	jne	.L2271
	mov	eax, 0
	jmp	.L2272
.L2271:
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	eax, DWORD PTR nCodes[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 24[rax]
	cdqe
	imul	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	eax, DWORD PTR nCodes[rip]
	movsx	rdx, eax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	imul	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	cmp	DWORD PTR -16[rbp], 0
	jle	.L2273
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
.L2273:
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 56
	mov	rdi, rax
	call	myfree
.L2272:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE591:
	.size	FreeProfile, .-FreeProfile
	.section	.rodata
.LC508:
	.string	"NJ->child[node].nChild == 2"
.LC509:
	.string	"nodeABCD[2] >= 0"
.LC510:
	.string	"upProfiles != NULL"
	.text
	.globl	SetupABCD
	.type	SetupABCD, @function
SetupABCD:
.LFB592:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 88
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -88[rbp], r8
	mov	eax, r9d
	mov	BYTE PTR -64[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -44[rbp], eax
	cmp	DWORD PTR -44[rbp], 0
	jns	.L2275
	lea	rcx, __PRETTY_FUNCTION__.28[rip]
	mov	edx, 7001
	lea	rsi, .LC131[rip]
	lea	rdi, .LC241[rip]
	call	__assert_fail@PLT
.L2275:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	je	.L2276
	lea	rcx, __PRETTY_FUNCTION__.28[rip]
	mov	edx, 7002
	lea	rsi, .LC131[rip]
	lea	rdi, .LC508[rip]
	call	__assert_fail@PLT
.L2276:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	rdx, QWORD PTR -88[rbp]
	add	rdx, 4
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR [rdx], eax
	mov	QWORD PTR -40[rbp], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -44[rbp], eax
	jne	.L2277
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -60[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	RootSiblings
	mov	rax, QWORD PTR -88[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -88[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	cmp	QWORD PTR -72[rbp], 0
	je	.L2287
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L2280
.L2277:
	mov	rax, QWORD PTR -88[rbp]
	lea	rbx, 8[rax]
	mov	edx, DWORD PTR -60[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	Sibling
	mov	DWORD PTR [rbx], eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2281
	lea	rcx, __PRETTY_FUNCTION__.28[rip]
	mov	edx, 7017
	lea	rsi, .LC131[rip]
	lea	rdi, .LC509[rip]
	call	__assert_fail@PLT
.L2281:
	mov	rax, QWORD PTR -88[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR [rdx], eax
	cmp	QWORD PTR -72[rbp], 0
	je	.L2288
	movzx	ecx, BYTE PTR -64[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	GetUpProfile
	mov	QWORD PTR -40[rbp], rax
.L2280:
	cmp	QWORD PTR -80[rbp], 0
	jne	.L2283
	lea	rcx, __PRETTY_FUNCTION__.28[rip]
	mov	edx, 7023
	lea	rsi, .LC131[rip]
	lea	rdi, .LC510[rip]
	call	__assert_fail@PLT
.L2283:
	mov	DWORD PTR -48[rbp], 0
	jmp	.L2284
.L2285:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	edx, DWORD PTR -48[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, rcx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rdx], rax
	add	DWORD PTR -48[rbp], 1
.L2284:
	cmp	DWORD PTR -48[rbp], 2
	jle	.L2285
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	jmp	.L2274
.L2287:
	nop
	jmp	.L2274
.L2288:
	nop
.L2274:
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2286
	call	__stack_chk_fail@PLT
.L2286:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE592:
	.size	SetupABCD, .-SetupABCD
	.globl	Sibling
	.type	Sibling, @function
Sibling:
.LFB593:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	js	.L2290
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -4[rbp], eax
	jne	.L2291
.L2290:
	mov	eax, -1
	jmp	.L2292
.L2291:
	mov	DWORD PTR -8[rbp], 0
	jmp	.L2293
.L2295:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	cmp	DWORD PTR -28[rbp], eax
	je	.L2294
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	jmp	.L2292
.L2294:
	add	DWORD PTR -8[rbp], 1
.L2293:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L2295
	lea	rcx, __PRETTY_FUNCTION__.27[rip]
	mov	edx, 7040
	lea	rsi, .LC131[rip]
	lea	rdi, .LC390[rip]
	call	__assert_fail@PLT
.L2292:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE593:
	.size	Sibling, .-Sibling
	.section	.rodata
.LC511:
	.string	"NJ->parent[node] == NJ->root"
	.align 8
.LC512:
	.string	"NJ->child[NJ->root].nChild == 3"
.LC513:
	.string	"nSibs==2"
	.text
	.globl	RootSiblings
	.type	RootSiblings, @function
RootSiblings:
.LFB594:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	edx, eax
	je	.L2297
	lea	rcx, __PRETTY_FUNCTION__.26[rip]
	mov	edx, 7045
	lea	rsi, .LC131[rip]
	lea	rdi, .LC511[rip]
	call	__assert_fail@PLT
.L2297:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 128[rax]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	je	.L2298
	lea	rcx, __PRETTY_FUNCTION__.26[rip]
	mov	edx, 7046
	lea	rsi, .LC131[rip]
	lea	rdi, .LC512[rip]
	call	__assert_fail@PLT
.L2298:
	mov	DWORD PTR -12[rbp], 0
	mov	DWORD PTR -8[rbp], 0
	jmp	.L2299
.L2301:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 128[rax]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	je	.L2300
	mov	eax, DWORD PTR -12[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -12[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
.L2300:
	add	DWORD PTR -8[rbp], 1
.L2299:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 128[rax]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L2301
	cmp	DWORD PTR -12[rbp], 2
	je	.L2303
	lea	rcx, __PRETTY_FUNCTION__.26[rip]
	mov	edx, 7054
	lea	rsi, .LC131[rip]
	lea	rdi, .LC513[rip]
	call	__assert_fail@PLT
.L2303:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE594:
	.size	RootSiblings, .-RootSiblings
	.section	.rodata
	.align 8
.LC514:
	.string	"ML split tests for %6d of %6d internal splits"
	.text
	.globl	TestSplitsML
	.type	TestSplitsML, @function
TestSplitsML:
.LFB595:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 432
	mov	QWORD PTR -408[rbp], rdi
	mov	QWORD PTR -416[rbp], rsi
	mov	DWORD PTR -420[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movsd	xmm0, QWORD PTR .LC374[rip]
	movsd	QWORD PTR -376[rbp], xmm0
	mov	rax, QWORD PTR -416[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -416[rbp]
	mov	DWORD PTR 4[rax], 0
	mov	rax, QWORD PTR -416[rbp]
	mov	DWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -416[rbp]
	mov	DWORD PTR 12[rax], 0
	mov	rax, QWORD PTR -416[rbp]
	pxor	xmm0, xmm0
	movsd	QWORD PTR 16[rax], xmm0
	mov	rax, QWORD PTR -416[rbp]
	pxor	xmm0, xmm0
	movsd	QWORD PTR 24[rax], xmm0
	mov	rax, QWORD PTR -408[rbp]
	mov	rdi, rax
	call	UpProfiles
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -396[rbp], eax
	cmp	DWORD PTR -420[rbp], 0
	jle	.L2305
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -420[rbp]
	mov	esi, edx
	mov	edi, eax
	call	ResampleColumns
	jmp	.L2306
.L2305:
	mov	eax, 0
.L2306:
	mov	QWORD PTR -352[rbp], rax
	mov	DWORD PTR -392[rbp], 0
	jmp	.L2307
.L2308:
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	edx, DWORD PTR -392[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -320[rbp+rdx*8], rax
	add	DWORD PTR -392[rbp], 1
.L2307:
	cmp	DWORD PTR -392[rbp], 2
	jle	.L2308
	mov	DWORD PTR -388[rbp], 0
	jmp	.L2309
.L2352:
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -396[rbp], eax
	jl	.L2309
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -396[rbp], eax
	jne	.L2311
	jmp	.L2309
.L2311:
	cmp	DWORD PTR -388[rbp], 0
	jle	.L2312
	mov	edx, DWORD PTR -388[rbp]
	movsx	rax, edx
	imul	rax, rax, 1374389535
	shr	rax, 32
	sar	eax, 5
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 100
	mov	eax, edx
	sub	eax, ecx
	test	eax, eax
	jne	.L2312
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, -3[rax]
	mov	eax, DWORD PTR -388[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	esi, eax
	lea	rdi, .LC514[rip]
	call	ProgressReport
.L2312:
	add	DWORD PTR -388[rbp], 1
	lea	rdi, -336[rbp]
	mov	rcx, QWORD PTR -368[rbp]
	lea	rdx, -224[rbp]
	mov	esi, DWORD PTR -396[rbp]
	mov	rax, QWORD PTR -408[rbp]
	mov	r9d, 1
	mov	r8, rdi
	mov	rdi, rax
	call	SetupABCD
	mov	DWORD PTR -384[rbp], 0
	jmp	.L2313
.L2314:
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	mov	eax, DWORD PTR -336[rbp+rax*4]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	movsd	QWORD PTR -192[rbp+rax*8], xmm0
	add	DWORD PTR -384[rbp], 1
.L2313:
	cmp	DWORD PTR -384[rbp], 3
	jle	.L2314
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -396[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -160[rbp], xmm0
	movsd	xmm0, QWORD PTR -192[rbp]
	movsd	QWORD PTR -144[rbp], xmm0
	movsd	xmm0, QWORD PTR -184[rbp]
	movsd	QWORD PTR -136[rbp], xmm0
	movsd	xmm0, QWORD PTR -176[rbp]
	movsd	QWORD PTR -128[rbp], xmm0
	movsd	xmm0, QWORD PTR -168[rbp]
	movsd	QWORD PTR -120[rbp], xmm0
	movsd	xmm0, QWORD PTR -160[rbp]
	movsd	QWORD PTR -112[rbp], xmm0
	movsd	xmm0, QWORD PTR -192[rbp]
	movsd	QWORD PTR -96[rbp], xmm0
	movsd	xmm0, QWORD PTR -176[rbp]
	movsd	QWORD PTR -88[rbp], xmm0
	movsd	xmm0, QWORD PTR -184[rbp]
	movsd	QWORD PTR -80[rbp], xmm0
	movsd	xmm0, QWORD PTR -168[rbp]
	movsd	QWORD PTR -72[rbp], xmm0
	movsd	xmm0, QWORD PTR -160[rbp]
	movsd	QWORD PTR -64[rbp], xmm0
	movsd	xmm0, QWORD PTR -192[rbp]
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR -168[rbp]
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm0, QWORD PTR -176[rbp]
	movsd	QWORD PTR -32[rbp], xmm0
	movsd	xmm0, QWORD PTR -184[rbp]
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	xmm0, QWORD PTR -160[rbp]
	movsd	QWORD PTR -16[rbp], xmm0
	mov	rdi, QWORD PTR -320[rbp]
	mov	rax, QWORD PTR -408[rbp]
	lea	r8, 168[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	r9, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	r10d, DWORD PTR 4[rax]
	mov	rcx, QWORD PTR -200[rbp]
	mov	rdx, QWORD PTR -208[rbp]
	mov	rsi, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR -224[rbp]
	sub	rsp, 8
	push	rdi
	lea	rdi, -144[rbp]
	push	rdi
	push	r8
	mov	r8d, r10d
	mov	rdi, rax
	call	MLQuartetLogLk
	add	rsp, 32
	movq	rax, xmm0
	mov	QWORD PTR -288[rbp], rax
	mov	rdi, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR -408[rbp]
	lea	r8, 168[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	r9, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	r10d, DWORD PTR 4[rax]
	mov	rcx, QWORD PTR -200[rbp]
	mov	rdx, QWORD PTR -216[rbp]
	mov	rsi, QWORD PTR -208[rbp]
	mov	rax, QWORD PTR -224[rbp]
	push	rdi
	push	0
	lea	rdi, -96[rbp]
	push	rdi
	push	r8
	mov	r8d, r10d
	mov	rdi, rax
	call	MLQuartetOptimize
	add	rsp, 32
	movq	rax, xmm0
	mov	QWORD PTR -280[rbp], rax
	mov	rdi, QWORD PTR -304[rbp]
	mov	rax, QWORD PTR -408[rbp]
	lea	r8, 168[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	r9, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	r10d, DWORD PTR 4[rax]
	mov	rcx, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR -208[rbp]
	mov	rsi, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR -224[rbp]
	push	rdi
	push	0
	lea	rdi, -48[rbp]
	push	rdi
	push	r8
	mov	r8d, r10d
	mov	rdi, rax
	call	MLQuartetOptimize
	add	rsp, 32
	movq	rax, xmm0
	mov	QWORD PTR -272[rbp], rax
	movsd	xmm0, QWORD PTR -280[rbp]
	movsd	xmm1, QWORD PTR -272[rbp]
	comisd	xmm0, xmm1
	jbe	.L2365
	mov	eax, DWORD PTR mlAccuracy[rip]
	cmp	eax, 1
	jg	.L2317
	movsd	xmm0, QWORD PTR -280[rbp]
	movsd	xmm1, QWORD PTR -288[rbp]
	movsd	xmm2, QWORD PTR closeLogLkLimit[rip]
	subsd	xmm1, xmm2
	comisd	xmm0, xmm1
	jbe	.L2318
.L2317:
	mov	rdi, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR -408[rbp]
	lea	r8, 168[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	r9, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	r10d, DWORD PTR 4[rax]
	mov	rcx, QWORD PTR -200[rbp]
	mov	rdx, QWORD PTR -216[rbp]
	mov	rsi, QWORD PTR -208[rbp]
	mov	rax, QWORD PTR -224[rbp]
	push	rdi
	push	0
	lea	rdi, -96[rbp]
	push	rdi
	push	r8
	mov	r8d, r10d
	mov	rdi, rax
	call	MLQuartetOptimize
	add	rsp, 32
	movq	rax, xmm0
	mov	QWORD PTR -280[rbp], rax
	jmp	.L2318
.L2365:
	mov	eax, DWORD PTR mlAccuracy[rip]
	cmp	eax, 1
	jg	.L2320
	movsd	xmm0, QWORD PTR -272[rbp]
	movsd	xmm1, QWORD PTR -288[rbp]
	movsd	xmm2, QWORD PTR closeLogLkLimit[rip]
	subsd	xmm1, xmm2
	comisd	xmm0, xmm1
	jbe	.L2318
.L2320:
	mov	rdi, QWORD PTR -304[rbp]
	mov	rax, QWORD PTR -408[rbp]
	lea	r8, 168[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	r9, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	r10d, DWORD PTR 4[rax]
	mov	rcx, QWORD PTR -216[rbp]
	mov	rdx, QWORD PTR -208[rbp]
	mov	rsi, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR -224[rbp]
	push	rdi
	push	0
	lea	rdi, -48[rbp]
	push	rdi
	push	r8
	mov	r8d, r10d
	mov	rdi, rax
	call	MLQuartetOptimize
	add	rsp, 32
	movq	rax, xmm0
	mov	QWORD PTR -272[rbp], rax
.L2318:
	movsd	xmm0, QWORD PTR -288[rbp]
	movsd	xmm1, QWORD PTR -280[rbp]
	comisd	xmm0, xmm1
	jb	.L2322
	movsd	xmm0, QWORD PTR -288[rbp]
	movsd	xmm1, QWORD PTR -272[rbp]
	comisd	xmm0, xmm1
	jb	.L2322
	mov	DWORD PTR -392[rbp], 0
	jmp	.L2325
.L2322:
	movsd	xmm0, QWORD PTR -280[rbp]
	movsd	xmm1, QWORD PTR -288[rbp]
	comisd	xmm0, xmm1
	jb	.L2326
	movsd	xmm0, QWORD PTR -280[rbp]
	movsd	xmm1, QWORD PTR -272[rbp]
	comisd	xmm0, xmm1
	jb	.L2326
	mov	DWORD PTR -392[rbp], 1
	jmp	.L2325
.L2326:
	mov	DWORD PTR -392[rbp], 2
.L2325:
	mov	eax, DWORD PTR -392[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -288[rbp+rax*8]
	movsd	xmm2, QWORD PTR -288[rbp]
	movsd	xmm1, QWORD PTR treeLogLkDelta[rip]
	addsd	xmm1, xmm2
	comisd	xmm0, xmm1
	seta	al
	mov	BYTE PTR -398[rbp], al
	mov	rax, QWORD PTR -408[rbp]
	mov	ecx, DWORD PTR 32[rax]
	lea	rdx, -256[rbp]
	lea	rax, -224[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	QuartetConstraintPenalties
	movsd	xmm0, QWORD PTR -256[rbp]
	movsd	xmm1, QWORD PTR -248[rbp]
	addsd	xmm1, QWORD PTR -376[rbp]
	comisd	xmm0, xmm1
	ja	.L2329
	movsd	xmm0, QWORD PTR -256[rbp]
	movsd	xmm1, QWORD PTR -240[rbp]
	addsd	xmm1, QWORD PTR -376[rbp]
	comisd	xmm0, xmm1
	jbe	.L2366
.L2329:
	mov	eax, 1
	jmp	.L2332
.L2366:
	mov	eax, 0
.L2332:
	mov	BYTE PTR -397[rbp], al
	and	BYTE PTR -397[rbp], 1
	mov	BYTE PTR -399[rbp], 0
	mov	DWORD PTR -380[rbp], 0
	jmp	.L2333
.L2336:
	mov	edx, DWORD PTR -380[rbp]
	lea	rax, -224[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	SplitViolatesConstraint
	test	al, al
	je	.L2334
	mov	BYTE PTR -399[rbp], 1
	jmp	.L2335
.L2334:
	add	DWORD PTR -380[rbp], 1
.L2333:
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -380[rbp], eax
	jl	.L2336
.L2335:
	mov	rax, QWORD PTR -416[rbp]
	mov	eax, DWORD PTR 12[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -416[rbp]
	mov	DWORD PTR 12[rax], edx
	cmp	BYTE PTR -399[rbp], 0
	je	.L2337
	mov	rax, QWORD PTR -416[rbp]
	mov	eax, DWORD PTR 4[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -416[rbp]
	mov	DWORD PTR 4[rax], edx
.L2337:
	cmp	BYTE PTR -398[rbp], 0
	je	.L2338
	mov	rax, QWORD PTR -416[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -416[rbp]
	mov	DWORD PTR [rax], edx
.L2338:
	cmp	BYTE PTR -398[rbp], 0
	je	.L2339
	cmp	BYTE PTR -397[rbp], 0
	je	.L2339
	mov	rax, QWORD PTR -416[rbp]
	mov	eax, DWORD PTR 8[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -416[rbp]
	mov	DWORD PTR 8[rax], edx
.L2339:
	cmp	BYTE PTR -398[rbp], 0
	je	.L2340
	mov	eax, DWORD PTR -392[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -288[rbp+rax*8]
	movsd	xmm1, QWORD PTR -288[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -344[rbp], xmm0
	mov	eax, DWORD PTR -392[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -256[rbp+rax*8]
	movsd	xmm1, QWORD PTR -256[rbp]
	addsd	xmm1, QWORD PTR -376[rbp]
	comisd	xmm0, xmm1
	jbe	.L2367
	mov	rax, QWORD PTR -416[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	movsd	xmm0, QWORD PTR -344[rbp]
	comisd	xmm0, xmm1
	jbe	.L2368
	movsd	xmm0, QWORD PTR -344[rbp]
	jmp	.L2345
.L2368:
	mov	rax, QWORD PTR -416[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
.L2345:
	mov	rax, QWORD PTR -416[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L2340
.L2367:
	mov	rax, QWORD PTR -416[rbp]
	movsd	xmm1, QWORD PTR 16[rax]
	movsd	xmm0, QWORD PTR -344[rbp]
	comisd	xmm0, xmm1
	jbe	.L2369
	movsd	xmm0, QWORD PTR -344[rbp]
	jmp	.L2348
.L2369:
	mov	rax, QWORD PTR -416[rbp]
	movsd	xmm0, QWORD PTR 16[rax]
.L2348:
	mov	rax, QWORD PTR -416[rbp]
	movsd	QWORD PTR 16[rax], xmm0
.L2340:
	cmp	DWORD PTR -420[rbp], 0
	jle	.L2349
	cmp	BYTE PTR -398[rbp], 0
	jne	.L2350
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR 4[rax]
	lea	rdi, -320[rbp]
	lea	rcx, -288[rbp]
	mov	rdx, QWORD PTR -352[rbp]
	mov	esi, DWORD PTR -420[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	SHSupport
	cvtsd2ss	xmm0, xmm0
	jmp	.L2351
.L2350:
	pxor	xmm0, xmm0
.L2351:
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	eax, DWORD PTR -396[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	DWORD PTR [rax], xmm0
.L2349:
	mov	edx, DWORD PTR -336[rbp]
	mov	rcx, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR -368[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	edx, DWORD PTR -332[rbp]
	mov	rcx, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR -368[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	edx, DWORD PTR -328[rbp]
	mov	rcx, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR -368[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
.L2309:
	mov	rdx, QWORD PTR -360[rbp]
	mov	rsi, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR -396[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -396[rbp], eax
	cmp	DWORD PTR -396[rbp], 0
	jns	.L2352
	mov	rdx, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR -360[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -360[rbp], rax
	mov	rdx, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR -368[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeUpProfiles
	mov	QWORD PTR -368[rbp], rax
	cmp	DWORD PTR -420[rbp], 0
	jle	.L2353
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	eax, DWORD PTR -420[rbp]
	cdqe
	imul	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -352[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -352[rbp], rax
.L2353:
	mov	DWORD PTR -392[rbp], 0
	jmp	.L2354
.L2355:
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	eax, DWORD PTR -392[rbp]
	cdqe
	mov	rax, QWORD PTR -320[rbp+rax*8]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	edx, DWORD PTR -392[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -320[rbp+rdx*8], rax
	add	DWORD PTR -392[rbp], 1
.L2354:
	cmp	DWORD PTR -392[rbp], 2
	jle	.L2355
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2356
	call	__stack_chk_fail@PLT
.L2356:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE595:
	.size	TestSplitsML, .-TestSplitsML
	.section	.rodata
	.align 8
.LC515:
	.string	"Testing Split around %d: A=%d B=%d C=%d D=up(%d) or node parent %d\n"
	.align 8
.LC516:
	.string	"Violate constraint %d at %d (children %d %d) penalties %.3f %.3f %.3f %d/%d %d/%d %d/%d %d/%d\n"
	.align 8
.LC517:
	.string	"Violate constraints %d distance_advantage %.3f constraint_penalty %.3f (children %d %d):"
	.text
	.globl	TestSplitsMinEvo
	.type	TestSplitsMinEvo, @function
TestSplitsMinEvo:
.LFB596:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 312
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -344[rbp], rdi
	mov	QWORD PTR -352[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	movsd	xmm0, QWORD PTR .LC374[rip]
	movsd	QWORD PTR -296[rbp], xmm0
	mov	rax, QWORD PTR -352[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -352[rbp]
	mov	DWORD PTR 4[rax], 0
	mov	rax, QWORD PTR -352[rbp]
	mov	DWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -352[rbp]
	mov	DWORD PTR 12[rax], 0
	mov	rax, QWORD PTR -352[rbp]
	pxor	xmm0, xmm0
	movsd	QWORD PTR 16[rax], xmm0
	mov	rax, QWORD PTR -352[rbp]
	pxor	xmm0, xmm0
	movsd	QWORD PTR 24[rax], xmm0
	mov	rax, QWORD PTR -344[rbp]
	mov	rdi, rax
	call	UpProfiles
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	rdi, rax
	call	InitTraversal
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	eax, DWORD PTR 128[rax]
	mov	DWORD PTR -328[rbp], eax
	jmp	.L2371
.L2409:
	mov	rax, QWORD PTR -344[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -328[rbp], eax
	jl	.L2371
	mov	rax, QWORD PTR -344[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -328[rbp], eax
	jne	.L2373
	jmp	.L2371
.L2373:
	lea	rdi, -240[rbp]
	mov	rcx, QWORD PTR -288[rbp]
	lea	rdx, -192[rbp]
	mov	esi, DWORD PTR -328[rbp]
	mov	rax, QWORD PTR -344[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	rdi, rax
	call	SetupABCD
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2374
	mov	rax, QWORD PTR -344[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -328[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edi, DWORD PTR [rax]
	mov	esi, DWORD PTR -228[rbp]
	mov	r9d, DWORD PTR -232[rbp]
	mov	r8d, DWORD PTR -236[rbp]
	mov	ecx, DWORD PTR -240[rbp]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -328[rbp]
	push	rdi
	push	rsi
	lea	rsi, .LC515[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 16
.L2374:
	mov	rax, QWORD PTR -344[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -344[rbp]
	mov	rdx, QWORD PTR 16[rax]
	lea	rsi, -160[rbp]
	lea	rax, -192[rbp]
	mov	r8, rsi
	mov	esi, 4
	mov	rdi, rax
	call	CorrectedPairDistances
	movsd	xmm1, QWORD PTR -160[rbp]
	movsd	xmm0, QWORD PTR -120[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -272[rbp], xmm0
	movsd	xmm1, QWORD PTR -152[rbp]
	movsd	xmm0, QWORD PTR -128[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -264[rbp], xmm0
	movsd	xmm1, QWORD PTR -144[rbp]
	movsd	xmm0, QWORD PTR -136[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -256[rbp], xmm0
	mov	rax, QWORD PTR -344[rbp]
	mov	ecx, DWORD PTR 32[rax]
	lea	rdx, -224[rbp]
	lea	rax, -192[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	QuartetConstraintPenalties
	mov	DWORD PTR -324[rbp], 0
	mov	DWORD PTR -320[rbp], 0
	jmp	.L2375
.L2377:
	mov	edx, DWORD PTR -320[rbp]
	lea	rax, -192[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	SplitViolatesConstraint
	test	al, al
	je	.L2376
	add	DWORD PTR -324[rbp], 1
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2376
	pxor	xmm0, xmm0
	movsd	QWORD PTR -112[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -104[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -96[rbp], xmm0
	lea	rdx, -112[rbp]
	mov	ecx, DWORD PTR -320[rbp]
	lea	rax, -192[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	QuartetConstraintPenaltiesPiece
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r13d, DWORD PTR [rax]
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r12d, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ebx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r11d, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r10d, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r9d, DWORD PTR [rax]
	mov	rax, QWORD PTR -192[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r8d, DWORD PTR [rax]
	mov	rax, QWORD PTR -192[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edi, DWORD PTR [rax]
	movsd	xmm1, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -344[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -328[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	r15d, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -344[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -328[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	r14d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -328[rbp]
	mov	edx, DWORD PTR -320[rbp]
	push	r13
	push	r12
	push	rbx
	push	r11
	push	r10
	push	r9
	push	r8
	push	rdi
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	mov	r9d, r15d
	mov	r8d, r14d
	lea	rsi, .LC516[rip]
	mov	rdi, rax
	mov	eax, 3
	call	fprintf@PLT
	add	rsp, 64
.L2376:
	add	DWORD PTR -320[rbp], 1
.L2375:
	mov	rax, QWORD PTR -344[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -320[rbp], eax
	jl	.L2377
	movsd	xmm0, QWORD PTR -256[rbp]
	comisd	xmm0, QWORD PTR -264[rbp]
	jbe	.L2417
	movsd	xmm0, QWORD PTR -264[rbp]
	jmp	.L2380
.L2417:
	movsd	xmm0, QWORD PTR -256[rbp]
.L2380:
	movsd	xmm1, QWORD PTR -272[rbp]
	subsd	xmm1, xmm0
	movsd	QWORD PTR -248[rbp], xmm1
	movsd	xmm0, QWORD PTR -248[rbp]
	comisd	xmm0, QWORD PTR -296[rbp]
	seta	al
	mov	BYTE PTR -330[rbp], al
	movsd	xmm0, QWORD PTR -224[rbp]
	movsd	xmm1, QWORD PTR -216[rbp]
	addsd	xmm1, QWORD PTR -296[rbp]
	comisd	xmm0, xmm1
	ja	.L2381
	movsd	xmm0, QWORD PTR -224[rbp]
	movsd	xmm1, QWORD PTR -208[rbp]
	addsd	xmm1, QWORD PTR -296[rbp]
	comisd	xmm0, xmm1
	jbe	.L2418
.L2381:
	mov	eax, 1
	jmp	.L2384
.L2418:
	mov	eax, 0
.L2384:
	mov	BYTE PTR -329[rbp], al
	and	BYTE PTR -329[rbp], 1
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR 12[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -352[rbp]
	mov	DWORD PTR 12[rax], edx
	cmp	BYTE PTR -330[rbp], 0
	je	.L2385
	movsd	xmm0, QWORD PTR -256[rbp]
	comisd	xmm0, QWORD PTR -264[rbp]
	jbe	.L2419
	mov	eax, 1
	jmp	.L2388
.L2419:
	mov	eax, 2
.L2388:
	mov	DWORD PTR -316[rbp], eax
	mov	eax, DWORD PTR -316[rbp]
	movsd	xmm0, QWORD PTR -224[rbp+rax*8]
	movsd	xmm1, QWORD PTR -224[rbp]
	addsd	xmm1, QWORD PTR -296[rbp]
	comisd	xmm0, xmm1
	jbe	.L2420
	mov	rax, QWORD PTR -352[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	movsd	xmm0, QWORD PTR -248[rbp]
	comisd	xmm0, xmm1
	jbe	.L2421
	movsd	xmm0, QWORD PTR -248[rbp]
	jmp	.L2393
.L2421:
	mov	rax, QWORD PTR -352[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
.L2393:
	mov	rax, QWORD PTR -352[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L2385
.L2420:
	mov	rax, QWORD PTR -352[rbp]
	movsd	xmm1, QWORD PTR 16[rax]
	movsd	xmm0, QWORD PTR -248[rbp]
	comisd	xmm0, xmm1
	jbe	.L2422
	movsd	xmm0, QWORD PTR -248[rbp]
	jmp	.L2396
.L2422:
	mov	rax, QWORD PTR -352[rbp]
	movsd	xmm0, QWORD PTR 16[rax]
.L2396:
	mov	rax, QWORD PTR -352[rbp]
	movsd	QWORD PTR 16[rax], xmm0
.L2385:
	cmp	DWORD PTR -324[rbp], 0
	jle	.L2397
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR 4[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -352[rbp]
	mov	DWORD PTR 4[rax], edx
.L2397:
	cmp	BYTE PTR -330[rbp], 0
	je	.L2398
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -352[rbp]
	mov	DWORD PTR [rax], edx
.L2398:
	cmp	BYTE PTR -330[rbp], 0
	je	.L2399
	cmp	BYTE PTR -329[rbp], 0
	je	.L2399
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR 8[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -352[rbp]
	mov	DWORD PTR 8[rax], edx
.L2399:
	cmp	BYTE PTR -329[rbp], 0
	je	.L2400
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2400
	pxor	xmm0, xmm0
	movsd	QWORD PTR -312[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -304[rbp], xmm0
	movsd	xmm1, QWORD PTR -216[rbp]
	movsd	xmm0, QWORD PTR -208[rbp]
	comisd	xmm0, xmm1
	jbe	.L2423
	movsd	xmm0, QWORD PTR -264[rbp]
	subsd	xmm0, QWORD PTR -272[rbp]
	movsd	QWORD PTR -312[rbp], xmm0
	movsd	xmm0, QWORD PTR -224[rbp]
	movsd	xmm1, QWORD PTR -216[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -304[rbp], xmm0
	jmp	.L2403
.L2423:
	movsd	xmm0, QWORD PTR -256[rbp]
	subsd	xmm0, QWORD PTR -272[rbp]
	movsd	QWORD PTR -312[rbp], xmm0
	movsd	xmm0, QWORD PTR -224[rbp]
	movsd	xmm1, QWORD PTR -208[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -304[rbp], xmm0
.L2403:
	mov	rax, QWORD PTR -344[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -328[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	edi, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -344[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -328[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm0, QWORD PTR -304[rbp]
	mov	rsi, QWORD PTR -312[rbp]
	mov	edx, DWORD PTR -328[rbp]
	mov	r8d, edi
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	lea	rsi, .LC517[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	mov	DWORD PTR -320[rbp], 0
	jmp	.L2404
.L2408:
	lea	rdx, -112[rbp]
	mov	ecx, DWORD PTR -320[rbp]
	lea	rax, -192[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	QuartetConstraintPenaltiesPiece
	test	al, al
	je	.L2405
	movsd	xmm1, QWORD PTR -112[rbp]
	movsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, xmm1
	movsd	xmm2, QWORD PTR -96[rbp]
	movsd	xmm1, QWORD PTR -88[rbp]
	addsd	xmm1, xmm2
	addsd	xmm1, QWORD PTR -296[rbp]
	comisd	xmm0, xmm1
	ja	.L2406
	movsd	xmm1, QWORD PTR -112[rbp]
	movsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, xmm1
	movsd	xmm2, QWORD PTR -104[rbp]
	movsd	xmm1, QWORD PTR -80[rbp]
	addsd	xmm1, xmm2
	addsd	xmm1, QWORD PTR -296[rbp]
	comisd	xmm0, xmm1
	jbe	.L2405
.L2406:
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r10d, DWORD PTR [rax]
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r9d, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r8d, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edi, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ebx, DWORD PTR [rax]
	mov	rax, QWORD PTR -192[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	r11d, DWORD PTR [rax]
	mov	rax, QWORD PTR -192[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -320[rbp]
	sub	rsp, 8
	push	r10
	push	r9
	push	r8
	push	rdi
	push	rsi
	mov	r9d, ebx
	mov	r8d, r11d
	lea	rsi, .LC379[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 48
.L2405:
	add	DWORD PTR -320[rbp], 1
.L2404:
	mov	rax, QWORD PTR -344[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -320[rbp], eax
	jl	.L2408
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L2400:
	mov	edx, DWORD PTR -240[rbp]
	mov	rcx, QWORD PTR -344[rbp]
	mov	rax, QWORD PTR -288[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	mov	edx, DWORD PTR -236[rbp]
	mov	rcx, QWORD PTR -344[rbp]
	mov	rax, QWORD PTR -288[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
.L2371:
	mov	rdx, QWORD PTR -280[rbp]
	mov	rsi, QWORD PTR -344[rbp]
	mov	eax, DWORD PTR -328[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	TraversePostorder
	mov	DWORD PTR -328[rbp], eax
	cmp	DWORD PTR -328[rbp], 0
	jns	.L2409
	mov	rdx, QWORD PTR -344[rbp]
	mov	rax, QWORD PTR -280[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeTraversal
	mov	QWORD PTR -280[rbp], rax
	mov	rdx, QWORD PTR -344[rbp]
	mov	rax, QWORD PTR -288[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreeUpProfiles
	mov	QWORD PTR -288[rbp], rax
	nop
	mov	rax, QWORD PTR -56[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2410
	call	__stack_chk_fail@PLT
.L2410:
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE596:
	.size	TestSplitsMinEvo, .-TestSplitsMinEvo
	.section	.rodata
.LC518:
	.string	"iFreqA == pA->nVectors"
.LC519:
	.string	"iFreqB == pB->nVectors"
.LC520:
	.string	"iFreqC == pC->nVectors"
.LC521:
	.string	"iFreqD == pD->nVectors"
.LC522:
	.string	"nBootstrap > 0"
	.text
	.globl	SplitSupport
	.type	SplitSupport, @function
SplitSupport:
.LFB597:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 464
	mov	QWORD PTR -408[rbp], rdi
	mov	QWORD PTR -416[rbp], rsi
	mov	QWORD PTR -424[rbp], rdx
	mov	QWORD PTR -432[rbp], rcx
	mov	QWORD PTR -440[rbp], r8
	mov	DWORD PTR -444[rbp], r9d
	mov	rax, QWORD PTR 24[rbp]
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -444[rbp]
	cdqe
	mov	QWORD PTR -336[rbp], rax
	mov	DWORD PTR -384[rbp], 0
	jmp	.L2425
.L2426:
	mov	eax, DWORD PTR -444[rbp]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	edx, DWORD PTR -384[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -256[rbp+rdx*8], rax
	mov	eax, DWORD PTR -444[rbp]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	edx, DWORD PTR -384[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -208[rbp+rdx*8], rax
	add	DWORD PTR -384[rbp], 1
.L2425:
	cmp	DWORD PTR -384[rbp], 5
	jle	.L2426
	mov	DWORD PTR -380[rbp], 0
	mov	DWORD PTR -376[rbp], 0
	mov	DWORD PTR -372[rbp], 0
	mov	DWORD PTR -368[rbp], 0
	mov	DWORD PTR -388[rbp], 0
	jmp	.L2427
.L2440:
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L2428
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L2428
	mov	rax, QWORD PTR -408[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -380[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -380[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L2430
.L2428:
	mov	eax, 0
.L2430:
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L2431
	mov	rax, QWORD PTR -416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L2431
	mov	rax, QWORD PTR -416[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -376[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -376[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L2433
.L2431:
	mov	eax, 0
.L2433:
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L2434
	mov	rax, QWORD PTR -424[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L2434
	mov	rax, QWORD PTR -424[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -372[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -372[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L2436
.L2434:
	mov	eax, 0
.L2436:
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L2437
	mov	rax, QWORD PTR -432[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L2437
	mov	rax, QWORD PTR -432[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -368[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -368[rbp], edx
	mov	edx, DWORD PTR nCodes[rip]
	imul	eax, edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	jmp	.L2439
.L2437:
	mov	eax, 0
.L2439:
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -416[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rdx, QWORD PTR -208[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -424[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rdx, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -432[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rdx, QWORD PTR -192[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -416[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -424[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rdx, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -416[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -432[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rdx, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -424[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -432[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rdx, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	rdx, QWORD PTR -208[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm2, QWORD PTR [rax]
	movsd	QWORD PTR -464[rbp], xmm2
	mov	rax, QWORD PTR -416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rdi, QWORD PTR -440[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -288[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	edi, eax
	call	ProfileDistPiece
	mov	rdx, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mulsd	xmm0, QWORD PTR -464[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	rdx, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm3, QWORD PTR [rax]
	movsd	QWORD PTR -464[rbp], xmm3
	mov	rax, QWORD PTR -424[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rdi, QWORD PTR -440[rbp]
	mov	rcx, QWORD PTR -272[rbp]
	mov	rdx, QWORD PTR -288[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	edi, eax
	call	ProfileDistPiece
	mov	rdx, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mulsd	xmm0, QWORD PTR -464[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	rdx, QWORD PTR -192[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm4, QWORD PTR [rax]
	movsd	QWORD PTR -464[rbp], xmm4
	mov	rax, QWORD PTR -432[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rdi, QWORD PTR -440[rbp]
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -288[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	edi, eax
	call	ProfileDistPiece
	mov	rdx, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mulsd	xmm0, QWORD PTR -464[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	rdx, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm5, QWORD PTR [rax]
	movsd	QWORD PTR -464[rbp], xmm5
	mov	rax, QWORD PTR -424[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rdi, QWORD PTR -440[rbp]
	mov	rcx, QWORD PTR -272[rbp]
	mov	rdx, QWORD PTR -280[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	edi, eax
	call	ProfileDistPiece
	mov	rdx, QWORD PTR -232[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mulsd	xmm0, QWORD PTR -464[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	rdx, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm6, QWORD PTR [rax]
	movsd	QWORD PTR -464[rbp], xmm6
	mov	rax, QWORD PTR -432[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -416[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rdi, QWORD PTR -440[rbp]
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -280[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	edi, eax
	call	ProfileDistPiece
	mov	rdx, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mulsd	xmm0, QWORD PTR -464[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	rdx, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm7, QWORD PTR [rax]
	movsd	QWORD PTR -464[rbp], xmm7
	mov	rax, QWORD PTR -432[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	esi, al
	mov	rax, QWORD PTR -424[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rdi, QWORD PTR -440[rbp]
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -272[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	edi, eax
	call	ProfileDistPiece
	mov	rdx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mulsd	xmm0, QWORD PTR -464[rbp]
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -388[rbp], 1
.L2427:
	mov	eax, DWORD PTR -388[rbp]
	cmp	eax, DWORD PTR -444[rbp]
	jl	.L2440
	mov	rax, QWORD PTR -408[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -380[rbp], eax
	je	.L2441
	lea	rcx, __PRETTY_FUNCTION__.25[rip]
	mov	edx, 7359
	lea	rsi, .LC131[rip]
	lea	rdi, .LC518[rip]
	call	__assert_fail@PLT
.L2441:
	mov	rax, QWORD PTR -416[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -376[rbp], eax
	je	.L2442
	lea	rcx, __PRETTY_FUNCTION__.25[rip]
	mov	edx, 7360
	lea	rsi, .LC131[rip]
	lea	rdi, .LC519[rip]
	call	__assert_fail@PLT
.L2442:
	mov	rax, QWORD PTR -424[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -372[rbp], eax
	je	.L2443
	lea	rcx, __PRETTY_FUNCTION__.25[rip]
	mov	edx, 7361
	lea	rsi, .LC131[rip]
	lea	rdi, .LC520[rip]
	call	__assert_fail@PLT
.L2443:
	mov	rax, QWORD PTR -432[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -368[rbp], eax
	je	.L2444
	lea	rcx, __PRETTY_FUNCTION__.25[rip]
	mov	edx, 7362
	lea	rsi, .LC131[rip]
	lea	rdi, .LC521[rip]
	call	__assert_fail@PLT
.L2444:
	mov	DWORD PTR -384[rbp], 0
	jmp	.L2445
.L2452:
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	pxor	xmm0, xmm0
	movsd	QWORD PTR -160[rbp+rax*8], xmm0
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	pxor	xmm0, xmm0
	movsd	QWORD PTR -112[rbp+rax*8], xmm0
	mov	DWORD PTR -388[rbp], 0
	jmp	.L2446
.L2447:
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -160[rbp+rax*8]
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	mov	rdx, QWORD PTR -256[rbp+rax*8]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	movsd	QWORD PTR -160[rbp+rax*8], xmm0
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -112[rbp+rax*8]
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	mov	rdx, QWORD PTR -208[rbp+rax*8]
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	movsd	QWORD PTR -112[rbp+rax*8], xmm0
	add	DWORD PTR -388[rbp], 1
.L2446:
	mov	eax, DWORD PTR -388[rbp]
	cmp	eax, DWORD PTR -444[rbp]
	jl	.L2447
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -112[rbp+rax*8]
	comisd	xmm0, QWORD PTR .LC37[rip]
	jbe	.L2482
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -160[rbp+rax*8]
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -112[rbp+rax*8]
	divsd	xmm0, xmm1
	jmp	.L2450
.L2482:
	movsd	xmm0, QWORD PTR .LC325[rip]
.L2450:
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	movsd	QWORD PTR -64[rbp+rax*8], xmm0
	movzx	eax, BYTE PTR logdist[rip]
	test	al, al
	je	.L2451
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	mov	rax, QWORD PTR -64[rbp+rax*8]
	movq	xmm0, rax
	call	LogCorrect
	movq	rax, xmm0
	mov	edx, DWORD PTR -384[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -64[rbp+rdx*8], rax
.L2451:
	add	DWORD PTR -384[rbp], 1
.L2445:
	cmp	DWORD PTR -384[rbp], 5
	jle	.L2452
	movsd	xmm1, QWORD PTR -56[rbp]
	movsd	xmm0, QWORD PTR -32[rbp]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -64[rbp]
	subsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -24[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -328[rbp], xmm0
	movsd	xmm1, QWORD PTR -48[rbp]
	movsd	xmm0, QWORD PTR -40[rbp]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -64[rbp]
	subsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -24[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -320[rbp], xmm0
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -328[rbp]
	ja	.L2453
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -320[rbp]
	jbe	.L2454
.L2453:
	mov	rax, QWORD PTR nSuboptimalSplits[rip]
	add	rax, 1
	mov	QWORD PTR nSuboptimalSplits[rip], rax
.L2454:
	cmp	DWORD PTR 16[rbp], 0
	jg	.L2456
	lea	rcx, __PRETTY_FUNCTION__.25[rip]
	mov	edx, 7389
	lea	rsi, .LC131[rip]
	lea	rdi, .LC522[rip]
	call	__assert_fail@PLT
.L2456:
	mov	DWORD PTR -364[rbp], 0
	mov	DWORD PTR -360[rbp], 0
	jmp	.L2457
.L2469:
	mov	eax, DWORD PTR -360[rbp]
	cdqe
	imul	rax, QWORD PTR -336[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -456[rbp]
	add	rax, rdx
	mov	QWORD PTR -312[rbp], rax
	mov	DWORD PTR -384[rbp], 0
	jmp	.L2458
.L2465:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -352[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -344[rbp], xmm0
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	mov	rax, QWORD PTR -256[rbp+rax*8]
	mov	QWORD PTR -304[rbp], rax
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	mov	rax, QWORD PTR -208[rbp+rax*8]
	mov	QWORD PTR -296[rbp], rax
	mov	DWORD PTR -388[rbp], 0
	jmp	.L2459
.L2460:
	mov	eax, DWORD PTR -388[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -312[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR -352[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -352[rbp], xmm0
	mov	eax, DWORD PTR -356[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR -344[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -344[rbp], xmm0
	add	DWORD PTR -388[rbp], 1
.L2459:
	mov	eax, DWORD PTR -388[rbp]
	cmp	eax, DWORD PTR -444[rbp]
	jl	.L2460
	movsd	xmm0, QWORD PTR -344[rbp]
	comisd	xmm0, QWORD PTR .LC37[rip]
	jbe	.L2483
	movsd	xmm0, QWORD PTR -352[rbp]
	divsd	xmm0, QWORD PTR -344[rbp]
	jmp	.L2463
.L2483:
	movsd	xmm0, QWORD PTR .LC325[rip]
.L2463:
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	movsd	QWORD PTR -64[rbp+rax*8], xmm0
	movzx	eax, BYTE PTR logdist[rip]
	test	al, al
	je	.L2464
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	mov	rax, QWORD PTR -64[rbp+rax*8]
	movq	xmm0, rax
	call	LogCorrect
	movq	rax, xmm0
	mov	edx, DWORD PTR -384[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -64[rbp+rdx*8], rax
.L2464:
	add	DWORD PTR -384[rbp], 1
.L2458:
	cmp	DWORD PTR -384[rbp], 5
	jle	.L2465
	movsd	xmm1, QWORD PTR -56[rbp]
	movsd	xmm0, QWORD PTR -32[rbp]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -64[rbp]
	subsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -24[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -328[rbp], xmm0
	movsd	xmm1, QWORD PTR -48[rbp]
	movsd	xmm0, QWORD PTR -40[rbp]
	addsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -64[rbp]
	subsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -24[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -320[rbp], xmm0
	movsd	xmm0, QWORD PTR -328[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L2466
	movsd	xmm0, QWORD PTR -320[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L2466
	add	DWORD PTR -364[rbp], 1
.L2466:
	add	DWORD PTR -360[rbp], 1
.L2457:
	mov	eax, DWORD PTR -360[rbp]
	cmp	eax, DWORD PTR 16[rbp]
	jl	.L2469
	mov	DWORD PTR -384[rbp], 0
	jmp	.L2470
.L2471:
	mov	eax, DWORD PTR -444[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	mov	rax, QWORD PTR -256[rbp+rax*8]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	edx, DWORD PTR -384[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -256[rbp+rdx*8], rax
	mov	eax, DWORD PTR -444[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	eax, DWORD PTR -384[rbp]
	cdqe
	mov	rax, QWORD PTR -208[rbp+rax*8]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	edx, DWORD PTR -384[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -208[rbp+rdx*8], rax
	add	DWORD PTR -384[rbp], 1
.L2470:
	cmp	DWORD PTR -384[rbp], 5
	jle	.L2471
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -364[rbp]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR 16[rbp]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L2473
	call	__stack_chk_fail@PLT
.L2473:
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE597:
	.size	SplitSupport, .-SplitSupport
	.section	.rodata
.LC523:
	.string	"nBootstrap>0"
	.text
	.globl	SHSupport
	.type	SHSupport, @function
SHSupport:
.LFB598:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 184
	.cfi_offset 3, -24
	mov	DWORD PTR -164[rbp], edi
	mov	DWORD PTR -168[rbp], esi
	mov	QWORD PTR -176[rbp], rdx
	mov	QWORD PTR -184[rbp], rcx
	mov	QWORD PTR -192[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	mov	QWORD PTR -136[rbp], rax
	cmp	DWORD PTR -168[rbp], 0
	jg	.L2485
	lea	rcx, __PRETTY_FUNCTION__.24[rip]
	mov	edx, 7425
	lea	rsi, .LC131[rip]
	lea	rdi, .LC523[rip]
	call	__assert_fail@PLT
.L2485:
	mov	rax, QWORD PTR -184[rbp]
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 8
	movsd	xmm1, QWORD PTR [rax]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -128[rbp], xmm0
	mov	rax, QWORD PTR -184[rbp]
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -120[rbp], xmm0
	movsd	xmm0, QWORD PTR -120[rbp]
	comisd	xmm0, QWORD PTR -128[rbp]
	jbe	.L2518
	movsd	xmm0, QWORD PTR -128[rbp]
	jmp	.L2488
.L2518:
	movsd	xmm0, QWORD PTR -120[rbp]
.L2488:
	movsd	QWORD PTR -112[rbp], xmm0
	mov	DWORD PTR -160[rbp], 0
	jmp	.L2489
.L2492:
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	edx, DWORD PTR -160[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -80[rbp+rdx*8], rax
	mov	DWORD PTR -156[rbp], 0
	jmp	.L2490
.L2491:
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -156[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -160[rbp]
	movsx	rdx, edx
	mov	rcx, QWORD PTR -80[rbp+rdx*8]
	mov	edx, DWORD PTR -156[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	movq	xmm0, rax
	call	log@PLT
	movq	rax, xmm0
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -156[rbp], 1
.L2490:
	mov	eax, DWORD PTR -156[rbp]
	cmp	eax, DWORD PTR -164[rbp]
	jl	.L2491
	add	DWORD PTR -160[rbp], 1
.L2489:
	cmp	DWORD PTR -160[rbp], 2
	jle	.L2492
	mov	DWORD PTR -152[rbp], 0
	mov	DWORD PTR -148[rbp], 0
	jmp	.L2493
.L2509:
	mov	DWORD PTR -160[rbp], 0
	jmp	.L2494
.L2495:
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	movsd	QWORD PTR -48[rbp+rax*8], xmm0
	add	DWORD PTR -160[rbp], 1
.L2494:
	cmp	DWORD PTR -160[rbp], 2
	jle	.L2495
	mov	DWORD PTR -156[rbp], 0
	jmp	.L2496
.L2499:
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	imul	rax, QWORD PTR -136[rbp]
	mov	rdx, rax
	mov	eax, DWORD PTR -156[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -140[rbp], eax
	mov	DWORD PTR -160[rbp], 0
	jmp	.L2497
.L2498:
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -48[rbp+rax*8]
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	mov	rdx, QWORD PTR -80[rbp+rax*8]
	mov	eax, DWORD PTR -140[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	movsd	QWORD PTR -48[rbp+rax*8], xmm0
	add	DWORD PTR -160[rbp], 1
.L2497:
	cmp	DWORD PTR -160[rbp], 2
	jle	.L2498
	add	DWORD PTR -156[rbp], 1
.L2496:
	mov	eax, DWORD PTR -156[rbp]
	cmp	eax, DWORD PTR -164[rbp]
	jl	.L2499
	mov	DWORD PTR -144[rbp], 0
	mov	DWORD PTR -160[rbp], 1
	jmp	.L2500
.L2503:
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -48[rbp+rax*8]
	mov	eax, DWORD PTR -144[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -48[rbp+rax*8]
	comisd	xmm0, xmm1
	jbe	.L2501
	mov	eax, DWORD PTR -160[rbp]
	mov	DWORD PTR -144[rbp], eax
.L2501:
	add	DWORD PTR -160[rbp], 1
.L2500:
	cmp	DWORD PTR -160[rbp], 2
	jle	.L2503
	mov	eax, DWORD PTR -144[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -48[rbp+rax*8]
	mov	eax, DWORD PTR -144[rbp]
	lea	edx, 1[rax]
	movsx	rax, edx
	imul	rax, rax, 1431655766
	shr	rax, 32
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	mov	ecx, eax
	add	ecx, ecx
	add	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	cdqe
	movsd	xmm1, QWORD PTR -48[rbp+rax*8]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -104[rbp], xmm0
	mov	eax, DWORD PTR -144[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -48[rbp+rax*8]
	mov	eax, DWORD PTR -144[rbp]
	lea	edx, 2[rax]
	movsx	rax, edx
	imul	rax, rax, 1431655766
	shr	rax, 32
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	mov	ecx, eax
	add	ecx, ecx
	add	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	cdqe
	movsd	xmm1, QWORD PTR -48[rbp+rax*8]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -96[rbp], xmm0
	movsd	xmm0, QWORD PTR -96[rbp]
	comisd	xmm0, QWORD PTR -104[rbp]
	jbe	.L2519
	movsd	xmm0, QWORD PTR -104[rbp]
	jmp	.L2506
.L2519:
	movsd	xmm0, QWORD PTR -96[rbp]
.L2506:
	movsd	QWORD PTR -88[rbp], xmm0
	movsd	xmm0, QWORD PTR -112[rbp]
	comisd	xmm0, QWORD PTR -88[rbp]
	jbe	.L2507
	add	DWORD PTR -152[rbp], 1
.L2507:
	add	DWORD PTR -148[rbp], 1
.L2493:
	mov	eax, DWORD PTR -148[rbp]
	cmp	eax, DWORD PTR -168[rbp]
	jl	.L2509
	mov	DWORD PTR -160[rbp], 0
	jmp	.L2510
.L2511:
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	mov	rax, QWORD PTR -80[rbp+rax*8]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	edx, DWORD PTR -160[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -80[rbp+rdx*8], rax
	add	DWORD PTR -160[rbp], 1
.L2510:
	cmp	DWORD PTR -160[rbp], 2
	jle	.L2511
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -152[rbp]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -168[rbp]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L2513
	call	__stack_chk_fail@PLT
.L2513:
	movq	xmm0, rax
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE598:
	.size	SHSupport, .-SHSupport
	.globl	SetDistCriterion
	.type	SetDistCriterion, @function
SetDistCriterion:
.LFB599:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	QWORD PTR -24[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jge	.L2521
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jge	.L2521
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rax, QWORD PTR [rax]
	mov	rsi, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, QWORD PTR -24[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	SeqDist
	jmp	.L2522
.L2521:
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	mov	rdi, QWORD PTR -24[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	mov	rax, QWORD PTR -24[rbp]
	movss	xmm0, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	addss	xmm1, xmm2
	subss	xmm0, xmm1
	mov	rax, QWORD PTR -24[rbp]
	movss	DWORD PTR 12[rax], xmm0
.L2522:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	JoinConstraintPenalty
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR constraintWeight[rip]
	mulsd	xmm1, xmm0
	mov	rax, QWORD PTR -24[rbp]
	movss	xmm0, DWORD PTR 12[rax]
	cvtss2sd	xmm0, xmm0
	addsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	rax, QWORD PTR -24[rbp]
	movss	DWORD PTR 12[rax], xmm0
	mov	rdx, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE599:
	.size	SetDistCriterion, .-SetDistCriterion
	.section	.rodata
	.align 8
.LC524:
	.string	"NJ->nOutDistActive[join->i] >= nActive"
	.align 8
.LC525:
	.string	"NJ->nOutDistActive[join->j] >= nActive"
	.align 8
.LC526:
	.string	"Set Criterion to join %d %d with nActive=%d dist+penalty %.3f criterion %.3f\n"
	.text
	.globl	SetCriterion
	.type	SetCriterion, @function
SetCriterion:
.LFB600:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2538
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	js	.L2538
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2538
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2538
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -44[rbp], eax
	jle	.L2527
	lea	rcx, __PRETTY_FUNCTION__.23[rip]
	mov	edx, 7487
	lea	rsi, .LC131[rip]
	lea	rdi, .LC524[rip]
	call	__assert_fail@PLT
.L2527:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -44[rbp], eax
	jle	.L2528
	lea	rcx, __PRETTY_FUNCTION__.23[rip]
	mov	edx, 7488
	lea	rsi, .LC131[rip]
	lea	rdi, .LC525[rip]
	call	__assert_fail@PLT
.L2528:
	movsd	xmm0, QWORD PTR tophitsMult[rip]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L2537
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -44[rbp]
	movsd	xmm0, QWORD PTR staleOutLimit[rip]
	mulsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L2531
.L2537:
	mov	eax, 0
.L2531:
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	sub	eax, DWORD PTR -44[rbp]
	cmp	DWORD PTR -20[rbp], eax
	jge	.L2532
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetOutDistance
.L2532:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	sub	eax, DWORD PTR -44[rbp]
	cmp	DWORD PTR -20[rbp], eax
	jge	.L2533
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetOutDistance
.L2533:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 112[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -16[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -44[rbp], eax
	je	.L2534
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, 1
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	sub	eax, 1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	divsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -16[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
.L2534:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 112[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -8[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -44[rbp], eax
	je	.L2535
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, 1
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	sub	eax, 1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	divsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -8[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
.L2535:
	mov	rax, QWORD PTR -56[rbp]
	movss	xmm0, DWORD PTR 12[rax]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -16[rbp]
	addsd	xmm1, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, 2
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, eax
	divsd	xmm1, xmm2
	subsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	rax, QWORD PTR -56[rbp]
	movss	DWORD PTR 16[rax], xmm0
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2523
	cmp	DWORD PTR -44[rbp], 5
	jg	.L2523
	mov	rax, QWORD PTR -56[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -56[rbp]
	movss	xmm1, DWORD PTR 12[rax]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm1
	movq	rsi, xmm3
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edi, DWORD PTR -44[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	mov	r8d, edi
	lea	rsi, .LC526[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
	jmp	.L2523
.L2538:
	nop
.L2523:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE600:
	.size	SetCriterion, .-SetCriterion
	.section	.rodata
	.align 8
.LC527:
	.string	"iNode>=0 && (NJ->parent == NULL || NJ->parent[iNode]<0)"
	.align 8
.LC529:
	.string	"NewOutDist for %d %f from dist %f selfd %f diam %f totdiam %f newActive %d\n"
	.align 8
.LC530:
	.string	"OutDist for Node %d %f truth %f profiled %f truth %f pd_err %f\n"
	.text
	.globl	SetOutDistance
	.type	SetOutDistance, @function
SetOutDistance:
.LFB601:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -120[rbp], rdi
	mov	DWORD PTR -124[rbp], esi
	mov	DWORD PTR -128[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -128[rbp], eax
	je	.L2557
	cmp	DWORD PTR -124[rbp], 0
	js	.L2542
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 136[rax]
	test	rax, rax
	je	.L2558
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2558
.L2542:
	lea	rcx, __PRETTY_FUNCTION__.22[rip]
	mov	edx, 7513
	lea	rsi, .LC131[rip]
	lea	rdi, .LC527[rip]
	call	__assert_fail@PLT
.L2558:
	nop
	mov	rax, QWORD PTR -120[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, QWORD PTR 96[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -64[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	mov	rax, QWORD PTR outprofileOps[rip]
	add	rax, 1
	mov	QWORD PTR outprofileOps[rip], rax
	mov	eax, DWORD PTR -128[rbp]
	sub	eax, 1
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	movss	xmm2, DWORD PTR -52[rbp]
	movss	xmm0, DWORD PTR -56[rbp]
	mulss	xmm2, xmm0
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -128[rbp]
	mulss	xmm0, xmm2
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm3, DWORD PTR [rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	mulss	xmm2, xmm3
	subss	xmm0, xmm2
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -88[rbp], xmm0
	movss	xmm1, DWORD PTR -56[rbp]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -128[rbp]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -80[rbp], xmm0
	movsd	xmm0, QWORD PTR -88[rbp]
	divsd	xmm0, QWORD PTR -80[rbp]
	movsd	QWORD PTR -72[rbp], xmm0
	movsd	xmm0, QWORD PTR -80[rbp]
	comisd	xmm0, QWORD PTR .LC37[rip]
	jbe	.L2556
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -128[rbp]
	sub	eax, 1
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	mulss	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -72[rbp]
	subsd	xmm0, xmm1
	mov	rax, QWORD PTR -120[rbp]
	movsd	xmm1, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	cvtss2sd	xmm2, xmm2
	subsd	xmm1, xmm2
	subsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	jmp	.L2547
.L2556:
	movss	xmm0, DWORD PTR .LC528[rip]
.L2547:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 112[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -128[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L2548
	cmp	DWORD PTR -124[rbp], 4
	jg	.L2548
	mov	rax, QWORD PTR -120[rbp]
	movsd	xmm3, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movss	xmm0, DWORD PTR -52[rbp]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 112[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm4, DWORD PTR [rax]
	pxor	xmm5, xmm5
	cvtss2sd	xmm5, xmm4
	movq	rsi, xmm5
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -128[rbp]
	mov	edx, DWORD PTR -124[rbp]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	lea	rsi, .LC529[rip]
	mov	rdi, rax
	mov	eax, 5
	call	fprintf@PLT
.L2548:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 6
	jle	.L2539
	mov	ecx, DWORD PTR -124[rbp]
	movsx	rax, ecx
	imul	rax, rax, 1717986919
	shr	rax, 32
	sar	eax, 2
	mov	esi, ecx
	sar	esi, 31
	sub	eax, esi
	mov	edx, eax
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	add	eax, eax
	sub	ecx, eax
	mov	edx, ecx
	test	edx, edx
	jne	.L2539
	pxor	xmm0, xmm0
	movsd	QWORD PTR -104[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -96[rbp], xmm0
	mov	DWORD PTR -108[rbp], 0
	jmp	.L2550
.L2553:
	mov	eax, DWORD PTR -108[rbp]
	cmp	eax, DWORD PTR -124[rbp]
	je	.L2551
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 136[rax]
	test	rax, rax
	je	.L2552
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2551
.L2552:
	mov	rax, QWORD PTR -120[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdi
	mov	rax, QWORD PTR [rax]
	lea	rdi, -32[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	ProfileDist
	movss	xmm0, DWORD PTR -20[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -96[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -96[rbp], xmm0
	movss	xmm0, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	addss	xmm1, xmm2
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -104[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -104[rbp], xmm0
.L2551:
	add	DWORD PTR -108[rbp], 1
.L2550:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -108[rbp], eax
	jl	.L2553
	movsd	xmm0, QWORD PTR -72[rbp]
	subsd	xmm0, QWORD PTR -96[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	movapd	xmm3, xmm0
	andpd	xmm3, xmm1
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 112[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm6, xmm6
	cvtss2sd	xmm6, xmm0
	movq	rcx, xmm6
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm2, QWORD PTR -96[rbp]
	movsd	xmm1, QWORD PTR -72[rbp]
	movsd	xmm0, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -124[rbp]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC530[rip]
	mov	rdi, rax
	mov	eax, 5
	call	fprintf@PLT
	jmp	.L2539
.L2557:
	nop
.L2539:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2554
	call	__stack_chk_fail@PLT
.L2554:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE601:
	.size	SetOutDistance, .-SetOutDistance
	.globl	FreeTopHits
	.type	FreeTopHits, @function
FreeTopHits:
.LFB602:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	cmp	QWORD PTR -24[rbp], 0
	jne	.L2560
	mov	eax, 0
	jmp	.L2561
.L2560:
	mov	DWORD PTR -12[rbp], 0
	jmp	.L2562
.L2564:
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L2563
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rdx], rax
.L2563:
	add	DWORD PTR -12[rbp], 1
.L2562:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L2564
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 56
	mov	rdi, rax
	call	myfree
.L2561:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE602:
	.size	FreeTopHits, .-FreeTopHits
	.section	.rodata
.LC531:
	.string	"m > 0"
	.text
	.globl	InitTopHits
	.type	InitTopHits, @function
InitTopHits:
.LFB603:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	cmp	DWORD PTR -44[rbp], 0
	jg	.L2566
	lea	rcx, __PRETTY_FUNCTION__.21[rip]
	mov	edx, 7594
	lea	rsi, .LC131[rip]
	lea	rdi, .LC531[rip]
	call	__assert_fail@PLT
.L2566:
	mov	edi, 56
	call	mymalloc
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, eax
	movq	rax, xmm2
	movq	xmm0, rax
	call	sqrt@PLT
	movsd	xmm1, QWORD PTR tophits2Mult[rip]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	edx, xmm0
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], edx
	movzx	eax, BYTE PTR useTopHits2nd[rip]
	xor	eax, 1
	test	al, al
	jne	.L2567
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jl	.L2568
.L2567:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], 0
.L2568:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 52[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rdx], rax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -44[rbp]
	movsd	xmm0, QWORD PTR topvisibleMult[rip]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	edx, xmm0
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rdx], rax
	mov	DWORD PTR -28[rbp], 0
	jmp	.L2569
.L2570:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	add	DWORD PTR -28[rbp], 1
.L2569:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L2570
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 48[rax], 0
	mov	DWORD PTR -32[rbp], 0
	jmp	.L2571
.L2572:
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 16[rax], -1
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 20[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 4[rax], xmm0
	add	DWORD PTR -32[rbp], 1
.L2571:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L2572
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE603:
	.size	InitTopHits, .-InitTopHits
	.globl	CompareSeedNJ
	.bss
	.align 8
	.type	CompareSeedNJ, @object
	.size	CompareSeedNJ, 8
CompareSeedNJ:
	.zero	8
	.globl	CompareSeedGaps
	.align 8
	.type	CompareSeedGaps, @object
	.size	CompareSeedGaps, 8
CompareSeedGaps:
	.zero	8
	.text
	.globl	CompareSeeds
	.type	CompareSeeds, @function
CompareSeeds:
.LFB604:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -16[rbp], eax
	mov	rdx, QWORD PTR CompareSeedGaps[rip]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	rcx, QWORD PTR CompareSeedGaps[rip]
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	sal	rdx, 2
	add	rdx, rcx
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	je	.L2575
	mov	eax, DWORD PTR -12[rbp]
	jmp	.L2576
.L2575:
	mov	rax, QWORD PTR CompareSeedNJ[rip]
	mov	rdx, QWORD PTR 112[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR CompareSeedNJ[rip]
	mov	rdx, QWORD PTR 112[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -8[rbp], xmm0
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -8[rbp]
	jbe	.L2583
	mov	eax, -1
	jmp	.L2576
.L2583:
	movsd	xmm0, QWORD PTR -8[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L2584
	mov	eax, 1
	jmp	.L2576
.L2584:
	mov	eax, 0
.L2576:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE604:
	.size	CompareSeeds, .-CompareSeeds
	.section	.rodata
.LC532:
	.string	"2 * tophits->m <= NJ->nSeq"
	.align 8
.LC533:
	.string	"Top hits for %6d of %6d seqs (at seed %6d)"
.LC534:
	.string	"Skipping seed %d\n"
.LC535:
	.string	"Trying seed %d\n"
	.align 8
.LC536:
	.string	"Distance limit for close neighbors %f weight %f ungapped %d\n"
	.align 8
.LC537:
	.string	"Near neighbor %d (rank %d weight %f ungapped %d %d)\n"
.LC538:
	.string	"closeNode2 >= 0"
.LC539:
	.string	"l->hits != NULL"
.LC540:
	.string	"l->hits[0].j >= 0"
.LC541:
	.string	"l->hits[0].j < NJ->nSeq"
.LC542:
	.string	"l->hits[0].j != iNode"
	.align 8
.LC543:
	.string	"#Close neighbors among leaves: 1st-level %ld 2nd-level %ld seeds %ld\n"
	.align 8
.LC544:
	.string	"Checking top hits for %6d of %6d seqs"
.LC545:
	.string	"nCheck > 0"
.LC546:
	.string	"nCheck <= lTarget->nHits"
.LC547:
	.string	"iWorst >= 0"
.LC548:
	.string	"bSuccess"
.LC549:
	.string	"Replaced %ld top hit entries\n"
	.text
	.globl	SetAllLeafTopHits
	.type	SetAllLeafTopHits, @function
SetAllLeafTopHits:
.LFB605:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 320
	mov	QWORD PTR -312[rbp], rdi
	mov	QWORD PTR -320[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movsd	xmm0, QWORD PTR tophitsClose[rip]
	movsd	QWORD PTR -232[rbp], xmm0
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -232[rbp]
	jbe	.L2586
	mov	eax, DWORD PTR fastest[rip]
	test	eax, eax
	je	.L2588
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 49999
	jle	.L2588
	movsd	xmm0, QWORD PTR .LC330[rip]
	movsd	QWORD PTR -232[rbp], xmm0
	jmp	.L2586
.L2588:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm3, xmm3
	cvtsi2sd	xmm3, eax
	movq	rax, xmm3
	movq	xmm0, rax
	call	log@PLT
	movq	rax, xmm0
	movsd	xmm1, QWORD PTR .LC151[rip]
	movq	xmm0, rax
	divsd	xmm0, xmm1
	movsd	QWORD PTR -200[rbp], xmm0
	movsd	xmm1, QWORD PTR -200[rbp]
	movsd	xmm0, QWORD PTR .LC218[rip]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -200[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -232[rbp], xmm0
.L2586:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -192[rbp], rax
	mov	DWORD PTR -288[rbp], 0
	jmp	.L2589
.L2590:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR 4[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -288[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	cvtss2sd	xmm1, xmm1
	subsd	xmm0, xmm1
	mov	eax, DWORD PTR -288[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -192[rbp]
	add	rdx, rax
	cvttsd2si	eax, xmm0
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -288[rbp], 1
.L2589:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -288[rbp], eax
	jl	.L2590
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -184[rbp], rax
	mov	DWORD PTR -288[rbp], 0
	jmp	.L2591
.L2592:
	mov	eax, DWORD PTR -288[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -288[rbp]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -288[rbp], 1
.L2591:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -288[rbp], eax
	jl	.L2592
	mov	rax, QWORD PTR -312[rbp]
	mov	QWORD PTR CompareSeedNJ[rip], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	QWORD PTR CompareSeedGaps[rip], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rsi, eax
	mov	rax, QWORD PTR -184[rbp]
	lea	rcx, CompareSeeds[rip]
	mov	edx, 4
	mov	rdi, rax
	call	qsort@PLT
	mov	QWORD PTR CompareSeedNJ[rip], 0
	mov	QWORD PTR CompareSeedGaps[rip], 0
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, [rax+rax]
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jle	.L2593
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 7672
	lea	rsi, .LC131[rip]
	lea	rdi, .LC532[rip]
	call	__assert_fail@PLT
.L2593:
	mov	DWORD PTR -280[rbp], 0
	mov	DWORD PTR -284[rbp], 0
	jmp	.L2594
.L2625:
	mov	eax, DWORD PTR -284[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -252[rbp], eax
	cmp	DWORD PTR -284[rbp], 0
	jle	.L2595
	mov	edx, DWORD PTR -284[rbp]
	movsx	rax, edx
	imul	rax, rax, 1374389535
	shr	rax, 32
	sar	eax, 5
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 100
	mov	eax, edx
	sub	eax, ecx
	test	eax, eax
	jne	.L2595
	mov	rax, QWORD PTR -312[rbp]
	mov	edx, DWORD PTR [rax]
	mov	ecx, DWORD PTR -284[rbp]
	mov	eax, DWORD PTR -280[rbp]
	mov	r8d, 0
	mov	esi, eax
	lea	rdi, .LC533[rip]
	call	ProgressReport
.L2595:
	mov	rax, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -252[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jle	.L2596
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2670
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -252[rbp]
	lea	rsi, .LC534[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L2598
.L2596:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -144[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2599
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -252[rbp]
	lea	rsi, .LC535[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2599:
	mov	rax, QWORD PTR -312[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rdi, QWORD PTR -152[rbp]
	lea	rcx, -32[rbp]
	mov	rsi, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR -252[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	SetBestHit
	mov	rax, QWORD PTR -320[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -312[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rdi, QWORD PTR -320[rbp]
	mov	rsi, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR -252[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	SortSaveBestHits
	add	DWORD PTR -280[rbp], 1
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	lea	rdx, -20[rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 12[rax]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -232[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -136[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -224[rbp], xmm0
	mov	DWORD PTR -276[rbp], 0
	jmp	.L2600
.L2601:
	mov	eax, DWORD PTR -276[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 8[rax]
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -224[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -224[rbp], xmm0
	add	DWORD PTR -276[rbp], 1
.L2600:
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	cmp	DWORD PTR -276[rbp], eax
	jl	.L2601
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	movapd	xmm1, xmm0
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -224[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -224[rbp], xmm0
	movsd	xmm0, QWORD PTR -136[rbp]
	addsd	xmm0, xmm0
	movsd	xmm2, QWORD PTR .LC325[rip]
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -224[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -224[rbp], xmm0
	movsd	xmm0, QWORD PTR -136[rbp]
	movsd	xmm2, QWORD PTR .LC218[rip]
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -128[rbp], xmm0
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2602
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -252[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -192[rbp]
	add	rdx, rcx
	mov	ecx, DWORD PTR [rdx]
	sub	eax, ecx
	mov	edx, eax
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm0, QWORD PTR -224[rbp]
	mov	rcx, QWORD PTR -136[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC536[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L2602:
	mov	DWORD PTR -276[rbp], 0
	jmp	.L2603
.L2624:
	mov	eax, DWORD PTR -276[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -248[rbp], eax
	mov	rax, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -248[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jg	.L2671
	mov	rax, QWORD PTR -120[rbp]
	movss	xmm0, DWORD PTR 12[rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -136[rbp]
	comisd	xmm0, xmm1
	jb	.L2606
	mov	rax, QWORD PTR -120[rbp]
	movss	xmm0, DWORD PTR 8[rax]
	cvtss2sd	xmm0, xmm0
	comisd	xmm0, QWORD PTR -224[rbp]
	jnb	.L2608
	mov	rax, QWORD PTR -120[rbp]
	movss	xmm0, DWORD PTR 8[rax]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -248[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -192[rbp]
	add	rdx, rcx
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	mulsd	xmm1, QWORD PTR -128[rbp]
	comisd	xmm0, xmm1
	jb	.L2606
.L2608:
	mov	eax, 1
	jmp	.L2610
.L2606:
	mov	eax, 0
.L2610:
	mov	BYTE PTR -290[rbp], al
	and	BYTE PTR -290[rbp], 1
	mov	rax, QWORD PTR -120[rbp]
	movss	xmm0, DWORD PTR 12[rax]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC374[rip]
	comisd	xmm0, xmm1
	jbe	.L2611
	mov	rax, QWORD PTR -120[rbp]
	movss	xmm0, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -252[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -192[rbp]
	add	rdx, rcx
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	subss	xmm0, xmm1
	movss	xmm1, DWORD PTR .LC158[rip]
	andps	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC76[rip]
	comisd	xmm0, xmm1
	jbe	.L2611
	mov	rax, QWORD PTR -120[rbp]
	movss	xmm0, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -248[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -192[rbp]
	add	rdx, rcx
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	subss	xmm0, xmm1
	movss	xmm1, DWORD PTR .LC158[rip]
	andps	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC76[rip]
	comisd	xmm0, xmm1
	jbe	.L2611
	mov	eax, 1
	jmp	.L2615
.L2611:
	mov	eax, 0
.L2615:
	mov	BYTE PTR -289[rbp], al
	and	BYTE PTR -289[rbp], 1
	movzx	eax, BYTE PTR useTopHits2nd[rip]
	test	al, al
	je	.L2616
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -276[rbp], eax
	jge	.L2616
	cmp	BYTE PTR -290[rbp], 0
	jne	.L2617
	cmp	BYTE PTR -289[rbp], 0
	je	.L2616
.L2617:
	add	DWORD PTR -280[rbp], 1
	mov	rax, QWORD PTR nClose2Used[rip]
	add	rax, 1
	mov	QWORD PTR nClose2Used[rip], rax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, [rax+rax]
	mov	rax, QWORD PTR -320[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR tophits2Safety[rip]
	imul	eax, ecx
	cmp	edx, eax
	cmovle	eax, edx
	mov	DWORD PTR -244[rbp], eax
	mov	eax, DWORD PTR -244[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	esi, DWORD PTR [rax]
	mov	r8, QWORD PTR -112[rbp]
	mov	edi, DWORD PTR -244[rbp]
	mov	rcx, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -312[rbp]
	sub	rsp, 8
	push	1
	mov	r9, r8
	mov	r8d, edi
	mov	rdi, rax
	call	TransferBestHits
	add	rsp, 16
	mov	rax, QWORD PTR -320[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rdi, QWORD PTR -320[rbp]
	mov	edx, DWORD PTR -244[rbp]
	mov	rsi, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR -248[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	SortSaveBestHits
	mov	rax, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -248[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rdx, [rcx+rax]
	mov	eax, DWORD PTR -252[rbp]
	mov	DWORD PTR 16[rdx], eax
	mov	eax, DWORD PTR -244[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -112[rbp], rax
	jmp	.L2605
.L2616:
	cmp	BYTE PTR -290[rbp], 0
	jne	.L2618
	cmp	BYTE PTR -289[rbp], 0
	jne	.L2618
	mov	eax, DWORD PTR fastest[rip]
	test	eax, eax
	je	.L2605
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 4[rax]
	add	eax, 1
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	cmp	DWORD PTR -276[rbp], eax
	jge	.L2605
.L2618:
	add	DWORD PTR -280[rbp], 1
	mov	rax, QWORD PTR nCloseUsed[rip]
	add	rax, 1
	mov	QWORD PTR nCloseUsed[rip], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2619
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -248[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -192[rbp]
	add	rdx, rcx
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	r8d, eax
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -252[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -192[rbp]
	add	rdx, rcx
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	edi, eax
	mov	eax, DWORD PTR -276[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR 8[rax]
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm0
	movq	rsi, xmm4
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -276[rbp]
	mov	edx, DWORD PTR -248[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	movq	xmm0, rsi
	lea	rsi, .LC537[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L2619:
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	lea	r8d, [rax+rax]
	mov	rax, QWORD PTR -312[rbp]
	mov	esi, DWORD PTR [rax]
	mov	rdi, QWORD PTR -144[rbp]
	mov	rcx, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -312[rbp]
	sub	rsp, 8
	push	1
	mov	r9, rdi
	mov	rdi, rax
	call	TransferBestHits
	add	rsp, 16
	mov	rax, QWORD PTR -320[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edi, [rax+rax]
	mov	rcx, QWORD PTR -320[rbp]
	mov	rsi, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR -248[rbp]
	mov	r8, rcx
	mov	ecx, edx
	mov	edx, edi
	mov	edi, eax
	call	SortSaveBestHits
	mov	DWORD PTR -272[rbp], 0
	jmp	.L2620
.L2623:
	mov	eax, DWORD PTR -272[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -240[rbp], eax
	cmp	DWORD PTR -240[rbp], 0
	jns	.L2621
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 7777
	lea	rsi, .LC131[rip]
	lea	rdi, .LC538[rip]
	call	__assert_fail@PLT
.L2621:
	mov	rax, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -240[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L2622
	mov	rax, QWORD PTR nClose2Used[rip]
	add	rax, 1
	mov	QWORD PTR nClose2Used[rip], rax
	add	DWORD PTR -280[rbp], 1
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, [rax+rax]
	mov	rax, QWORD PTR -320[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR tophits2Safety[rip]
	imul	eax, ecx
	cmp	edx, eax
	cmovle	eax, edx
	mov	DWORD PTR -236[rbp], eax
	mov	eax, DWORD PTR -236[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	esi, DWORD PTR [rax]
	mov	r8, QWORD PTR -104[rbp]
	mov	edi, DWORD PTR -236[rbp]
	mov	rcx, QWORD PTR -144[rbp]
	mov	edx, DWORD PTR -240[rbp]
	mov	rax, QWORD PTR -312[rbp]
	sub	rsp, 8
	push	1
	mov	r9, r8
	mov	r8d, edi
	mov	rdi, rax
	call	TransferBestHits
	add	rsp, 16
	mov	rax, QWORD PTR -320[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rdi, QWORD PTR -320[rbp]
	mov	edx, DWORD PTR -236[rbp]
	mov	rsi, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR -240[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	SortSaveBestHits
	mov	rax, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -240[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rdx, [rcx+rax]
	mov	eax, DWORD PTR -248[rbp]
	mov	DWORD PTR 16[rdx], eax
	mov	eax, DWORD PTR -236[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -104[rbp], rax
.L2622:
	add	DWORD PTR -272[rbp], 1
.L2620:
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -272[rbp], eax
	jge	.L2605
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	cmp	DWORD PTR -272[rbp], eax
	jl	.L2623
	jmp	.L2605
.L2671:
	nop
.L2605:
	add	DWORD PTR -276[rbp], 1
.L2603:
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -276[rbp], eax
	jl	.L2624
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -144[rbp], rax
	jmp	.L2598
.L2670:
	nop
.L2598:
	add	DWORD PTR -284[rbp], 1
.L2594:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -284[rbp], eax
	jl	.L2625
	mov	DWORD PTR -288[rbp], 0
	jmp	.L2626
.L2631:
	mov	rax, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -288[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L2627
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 7803
	lea	rsi, .LC131[rip]
	lea	rdi, .LC539[rip]
	call	__assert_fail@PLT
.L2627:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2628
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 7804
	lea	rsi, .LC131[rip]
	lea	rdi, .LC540[rip]
	call	__assert_fail@PLT
.L2628:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jl	.L2629
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 7805
	lea	rsi, .LC131[rip]
	lea	rdi, .LC541[rip]
	call	__assert_fail@PLT
.L2629:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -288[rbp], eax
	jne	.L2630
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 7806
	lea	rsi, .LC131[rip]
	lea	rdi, .LC542[rip]
	call	__assert_fail@PLT
.L2630:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR 24[rdx]
	mov	edx, DWORD PTR -288[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rdx], rax
	add	DWORD PTR -288[rbp], 1
.L2626:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -288[rbp], eax
	jl	.L2631
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jle	.L2632
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdx, QWORD PTR nCloseUsed[rip]
	sub	rax, rdx
	mov	rdx, QWORD PTR nClose2Used[rip]
	sub	rax, rdx
	mov	rsi, rax
	mov	rcx, QWORD PTR nClose2Used[rip]
	mov	rdx, QWORD PTR nCloseUsed[rip]
	mov	rax, QWORD PTR stderr[rip]
	mov	r8, rsi
	lea	rsi, .LC543[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2632:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -192[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -184[rbp], rax
	mov	QWORD PTR -216[rbp], 0
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jle	.L2633
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 4[rax]
	jmp	.L2634
.L2633:
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm5, xmm5
	cvtsi2sd	xmm5, eax
	movq	rax, xmm5
	movq	xmm0, rax
	call	sqrt@PLT
	movapd	xmm1, xmm0
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
.L2634:
	mov	DWORD PTR -256[rbp], eax
	mov	DWORD PTR -288[rbp], 0
	jmp	.L2635
.L2659:
	mov	edx, DWORD PTR -288[rbp]
	movsx	rax, edx
	imul	rax, rax, 1374389535
	shr	rax, 32
	sar	eax, 5
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 100
	mov	eax, edx
	sub	eax, ecx
	test	eax, eax
	jne	.L2636
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, DWORD PTR -288[rbp]
	lea	esi, 1[rdx]
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, eax
	lea	rdi, .LC544[rip]
	call	ProgressReport
.L2636:
	mov	rax, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -288[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -176[rbp], rax
	mov	DWORD PTR -268[rbp], 0
	jmp	.L2637
.L2658:
	mov	rax, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -268[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	lea	rax, -96[rbp]
	mov	ecx, DWORD PTR -288[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	esi, ecx
	mov	rdi, rax
	call	HitToBestHit
	mov	rax, QWORD PTR -312[rbp]
	mov	ecx, DWORD PTR [rax]
	lea	rdx, -96[rbp]
	mov	rax, QWORD PTR -312[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	mov	rax, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -92[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -168[rbp], rax
	cmp	DWORD PTR -256[rbp], 0
	jg	.L2638
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 7837
	lea	rsi, .LC131[rip]
	lea	rdi, .LC545[rip]
	call	__assert_fail@PLT
.L2638:
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -256[rbp], eax
	jle	.L2639
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 7838
	lea	rsi, .LC131[rip]
	lea	rdi, .LC546[rip]
	call	__assert_fail@PLT
.L2639:
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -256[rbp]
	cdqe
	sal	rax, 3
	sub	rax, 8
	add	rdx, rax
	mov	ecx, DWORD PTR -92[rbp]
	lea	rax, -64[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	esi, ecx
	mov	rdi, rax
	call	HitToBestHit
	mov	rax, QWORD PTR -312[rbp]
	mov	ecx, DWORD PTR [rax]
	lea	rdx, -64[rbp]
	mov	rax, QWORD PTR -312[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	movss	xmm1, DWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR -80[rbp]
	comiss	xmm0, xmm1
	ja	.L2672
	mov	BYTE PTR -292[rbp], 0
	mov	DWORD PTR -264[rbp], 0
	jmp	.L2643
.L2646:
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -264[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -288[rbp], eax
	jne	.L2644
	mov	BYTE PTR -292[rbp], 1
.L2644:
	add	DWORD PTR -264[rbp], 1
.L2643:
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -264[rbp], eax
	jge	.L2645
	movzx	eax, BYTE PTR -292[rbp]
	xor	eax, 1
	test	al, al
	jne	.L2646
.L2645:
	movzx	eax, BYTE PTR -292[rbp]
	xor	eax, 1
	test	al, al
	je	.L2642
	mov	DWORD PTR -260[rbp], -1
	movsd	xmm0, QWORD PTR .LC160[rip]
	movsd	QWORD PTR -208[rbp], xmm0
	mov	DWORD PTR -264[rbp], 0
	jmp	.L2648
.L2651:
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -264[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	ecx, DWORD PTR -92[rbp]
	lea	rax, -32[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	esi, ecx
	mov	rdi, rax
	call	HitToBestHit
	mov	rax, QWORD PTR -312[rbp]
	mov	ecx, DWORD PTR [rax]
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -312[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	movss	xmm0, DWORD PTR -16[rbp]
	cvtss2sd	xmm0, xmm0
	comisd	xmm0, QWORD PTR -208[rbp]
	jbe	.L2649
	mov	eax, DWORD PTR -264[rbp]
	mov	DWORD PTR -260[rbp], eax
	movss	xmm0, DWORD PTR -16[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -208[rbp], xmm0
.L2649:
	add	DWORD PTR -264[rbp], 1
.L2648:
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -264[rbp], eax
	jl	.L2651
	movss	xmm0, DWORD PTR -80[rbp]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -208[rbp]
	comisd	xmm0, xmm1
	jbe	.L2642
	cmp	DWORD PTR -260[rbp], 0
	jns	.L2653
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 7863
	lea	rsi, .LC131[rip]
	lea	rdi, .LC547[rip]
	call	__assert_fail@PLT
.L2653:
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	eax, DWORD PTR -288[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movss	xmm0, DWORD PTR -84[rbp]
	movss	DWORD PTR 4[rax], xmm0
	add	QWORD PTR -216[rbp], 1
	mov	ecx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -312[rbp]
	mov	esi, DWORD PTR [rax]
	lea	rdi, -32[rbp]
	mov	rdx, QWORD PTR -320[rbp]
	mov	rax, QWORD PTR -312[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	GetVisible
	mov	BYTE PTR -291[rbp], al
	cmp	BYTE PTR -291[rbp], 0
	jne	.L2654
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 7870
	lea	rsi, .LC131[rip]
	lea	rdi, .LC548[rip]
	call	__assert_fail@PLT
.L2654:
	movss	xmm1, DWORD PTR -80[rbp]
	movss	xmm0, DWORD PTR -16[rbp]
	comiss	xmm0, xmm1
	jbe	.L2642
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -320[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR [rcx]
	mov	QWORD PTR [rdx], rax
	jmp	.L2642
.L2672:
	nop
.L2642:
	add	DWORD PTR -268[rbp], 1
.L2637:
	mov	eax, DWORD PTR -268[rbp]
	cmp	eax, DWORD PTR -256[rbp]
	jge	.L2657
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -268[rbp], eax
	jl	.L2658
.L2657:
	add	DWORD PTR -288[rbp], 1
.L2635:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -288[rbp], eax
	jl	.L2659
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 1
	jle	.L2673
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -216[rbp]
	lea	rsi, .LC549[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2673:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2661
	call	__stack_chk_fail@PLT
.L2661:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE605:
	.size	SetAllLeafTopHits, .-SetAllLeafTopHits
	.section	.rodata
.LC550:
	.string	"iNode >= 0"
.LC551:
	.string	"NJ->parent[iNode] < 0"
.LC552:
	.string	"l->nHits > 0"
.LC553:
	.string	"bestjoin->j >= 0"
.LC554:
	.string	"bestjoin->i == iNode"
	.text
	.globl	GetBestFromTopHits
	.type	GetBestFromTopHits, @function
GetBestFromTopHits:
.LFB606:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	DWORD PTR -52[rbp], edi
	mov	QWORD PTR -64[rbp], rsi
	mov	DWORD PTR -56[rbp], edx
	mov	QWORD PTR -72[rbp], rcx
	mov	QWORD PTR -80[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -52[rbp], 0
	jns	.L2675
	lea	rcx, __PRETTY_FUNCTION__.19[rip]
	mov	edx, 7888
	lea	rsi, .LC131[rip]
	lea	rdi, .LC550[rip]
	call	__assert_fail@PLT
.L2675:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2676
	lea	rcx, __PRETTY_FUNCTION__.19[rip]
	mov	edx, 7889
	lea	rsi, .LC131[rip]
	lea	rdi, .LC551[rip]
	call	__assert_fail@PLT
.L2676:
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jg	.L2677
	lea	rcx, __PRETTY_FUNCTION__.19[rip]
	mov	edx, 7891
	lea	rsi, .LC131[rip]
	lea	rdi, .LC552[rip]
	call	__assert_fail@PLT
.L2677:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L2678
	lea	rcx, __PRETTY_FUNCTION__.19[rip]
	mov	edx, 7892
	lea	rsi, .LC131[rip]
	lea	rdi, .LC539[rip]
	call	__assert_fail@PLT
.L2678:
	mov	eax, DWORD PTR fastest[rip]
	test	eax, eax
	jne	.L2679
	mov	edx, DWORD PTR -56[rbp]
	mov	ecx, DWORD PTR -52[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetOutDistance
.L2679:
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], -1
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR 4[rax], -1
	mov	rax, QWORD PTR -80[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -80[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 16[rax], xmm0
	mov	DWORD PTR -44[rbp], 0
	jmp	.L2680
.L2683:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	lea	rax, -32[rbp]
	mov	ecx, DWORD PTR -52[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	esi, ecx
	mov	rdi, rax
	call	HitToBestHit
	lea	rdx, -32[rbp]
	mov	esi, DWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	UpdateBestHit
	test	al, al
	je	.L2681
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	movss	xmm1, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -80[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	comiss	xmm0, xmm1
	jbe	.L2681
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR 16[rcx], eax
.L2681:
	add	DWORD PTR -44[rbp], 1
.L2680:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -44[rbp], eax
	jl	.L2683
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jns	.L2684
	lea	rcx, __PRETTY_FUNCTION__.19[rip]
	mov	edx, 7911
	lea	rsi, .LC131[rip]
	lea	rdi, .LC553[rip]
	call	__assert_fail@PLT
.L2684:
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	je	.L2688
	lea	rcx, __PRETTY_FUNCTION__.19[rip]
	mov	edx, 7912
	lea	rsi, .LC131[rip]
	lea	rdi, .LC554[rip]
	call	__assert_fail@PLT
.L2688:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2686
	call	__stack_chk_fail@PLT
.L2686:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE606:
	.size	GetBestFromTopHits, .-GetBestFromTopHits
	.globl	ActiveAncestor
	.type	ActiveAncestor, @function
ActiveAncestor:
.LFB607:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	cmp	DWORD PTR -12[rbp], 0
	jns	.L2692
	mov	eax, DWORD PTR -12[rbp]
	jmp	.L2691
.L2693:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
.L2692:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2693
	mov	eax, DWORD PTR -12[rbp]
.L2691:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE607:
	.size	ActiveAncestor, .-ActiveAncestor
	.globl	UpdateBestHit
	.type	UpdateBestHit, @function
UpdateBestHit:
.LFB608:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, ecx
	mov	BYTE PTR -32[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	ActiveAncestor
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	ActiveAncestor
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	js	.L2695
	cmp	DWORD PTR -4[rbp], 0
	js	.L2695
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jne	.L2696
.L2695:
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], -1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], -1
	mov	rax, QWORD PTR -40[rbp]
	pxor	xmm0, xmm0
	movss	DWORD PTR 8[rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 16[rax], xmm0
	mov	eax, 0
	jmp	.L2697
.L2696:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	jne	.L2698
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -4[rbp], eax
	je	.L2699
.L2698:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR 4[rax], edx
	cmp	BYTE PTR -32[rbp], 0
	je	.L2700
	mov	rdx, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetDistCriterion
	jmp	.L2699
.L2700:
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR .LC555[rip]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 16[rax], xmm0
.L2699:
	mov	eax, 1
.L2697:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE608:
	.size	UpdateBestHit, .-UpdateBestHit
	.globl	GetVisible
	.type	GetVisible, @function
GetVisible:
.LFB609:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 88
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -48[rbp], ecx
	mov	QWORD PTR -64[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -48[rbp], 0
	js	.L2702
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2703
.L2702:
	mov	eax, 0
	jmp	.L2704
.L2703:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2705
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2706
.L2705:
	mov	eax, 0
	jmp	.L2704
.L2706:
	mov	rbx, QWORD PTR -64[rbp]
	lea	rax, -96[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	ecx, DWORD PTR -48[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	esi, ecx
	mov	rdi, rax
	call	HitToBestHit
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rbx], rax
	mov	QWORD PTR 8[rbx], rdx
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR 16[rbx], eax
	mov	rdx, QWORD PTR -64[rbp]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	mov	eax, 1
.L2704:
	mov	rsi, QWORD PTR -24[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L2707
	call	__stack_chk_fail@PLT
.L2707:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE609:
	.size	GetVisible, .-GetVisible
	.section	.rodata
.LC556:
	.string	"nUnique < nCombined"
	.align 8
.LC557:
	.string	"hit->j >= 0 && NJ->parent[hit->j] < 0"
	.text
	.globl	UniqueBestHits
	.type	UniqueBestHits, @function
UniqueBestHits:
.LFB610:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	QWORD PTR -88[rbp], rdx
	mov	DWORD PTR -80[rbp], ecx
	mov	QWORD PTR -96[rbp], r8
	mov	DWORD PTR -52[rbp], 0
	jmp	.L2709
.L2710:
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	esi, DWORD PTR -76[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	UpdateBestHit
	add	DWORD PTR -52[rbp], 1
.L2709:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jl	.L2710
	mov	eax, DWORD PTR -80[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -88[rbp]
	lea	rcx, CompareHitsByIJ[rip]
	mov	edx, 20
	mov	rdi, rax
	call	qsort@PLT
	mov	eax, DWORD PTR -80[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -40[rbp], rax
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR -44[rbp], -1
	mov	DWORD PTR -52[rbp], 0
	jmp	.L2711
.L2719:
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2729
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	js	.L2729
	cmp	DWORD PTR -44[rbp], 0
	js	.L2715
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jne	.L2715
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	je	.L2730
.L2715:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jl	.L2716
	lea	rcx, __PRETTY_FUNCTION__.18[rip]
	mov	edx, 7986
	lea	rsi, .LC131[rip]
	lea	rdi, .LC556[rip]
	call	__assert_fail@PLT
.L2716:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	js	.L2717
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2727
.L2717:
	lea	rcx, __PRETTY_FUNCTION__.18[rip]
	mov	edx, 7987
	lea	rsi, .LC131[rip]
	lea	rdi, .LC557[rip]
	call	__assert_fail@PLT
.L2727:
	mov	eax, DWORD PTR -48[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -48[rbp], edx
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, [rdx+rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rcx]
	mov	rdx, QWORD PTR 8[rcx]
	mov	QWORD PTR [rsi], rax
	mov	QWORD PTR 8[rsi], rdx
	mov	eax, DWORD PTR 16[rcx]
	mov	DWORD PTR 16[rsi], eax
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -44[rbp], eax
	jmp	.L2714
.L2729:
	nop
	jmp	.L2714
.L2730:
	nop
.L2714:
	add	DWORD PTR -52[rbp], 1
.L2711:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jl	.L2719
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR -52[rbp], 0
	jmp	.L2720
.L2724:
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	movss	xmm1, DWORD PTR 12[rax]
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jbe	.L2728
	mov	rdx, QWORD PTR -32[rbp]
	mov	ecx, DWORD PTR -76[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetDistCriterion
	jmp	.L2723
.L2728:
	mov	rdx, QWORD PTR -32[rbp]
	mov	ecx, DWORD PTR -76[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
.L2723:
	add	DWORD PTR -52[rbp], 1
.L2720:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	jl	.L2724
	mov	rax, QWORD PTR -40[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE610:
	.size	UniqueBestHits, .-UniqueBestHits
	.section	.rodata
	.align 8
.LC558:
	.string	"NJ->child[newnode].nChild == 2"
.LC559:
	.string	"lNew->hits == NULL"
	.align 8
.LC560:
	.string	"lChild[i]->hits != NULL && lChild[i]->nHits > 0"
.LC561:
	.string	"2ndlevel"
.LC562:
	.string	"1stlevel"
	.align 8
.LC563:
	.string	"Top hits for %d from combined %d nActive=%d tophitsage %d %s\n"
.LC564:
	.string	"lSource->hitSource < 0"
.LC565:
	.string	"lSource->nHits > 0"
.LC566:
	.string	"iMerge == nMerge"
.LC567:
	.string	"nUnique > 0"
	.align 8
.LC568:
	.string	"Top hits for %d from children and source %d's %d hits, nUnique %d\n"
.LC569:
	.string	"nSave>0"
.LC570:
	.string	"Combined %d ops so far %ld\n"
.LC571:
	.string	"lNew->hits != NULL"
	.align 8
.LC572:
	.string	"Top hits for %d by refresh (%d unique age %d) nActive=%d\n"
.LC573:
	.string	"2 * tophits->m <= NJ->maxnode"
.LC574:
	.string	"iNode>=0"
.LC575:
	.string	"nHitsOld <= tophits->m"
.LC576:
	.string	"nNewHits > 0"
.LC577:
	.string	"nUnique2 > 0"
	.align 8
.LC578:
	.string	"New top-hit list for %d profile-ops %ld (out-ops %ld): source %d age %d members "
	.text
	.globl	TopHitJoin
	.type	TopHitJoin, @function
TopHitJoin:
.LFB611:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 264
	.cfi_offset 3, -24
	mov	DWORD PTR -244[rbp], edi
	mov	QWORD PTR -256[rbp], rsi
	mov	DWORD PTR -248[rbp], edx
	mov	QWORD PTR -264[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR profileOps[rip]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR outprofileOps[rip]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -244[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	je	.L2732
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8020
	lea	rsi, .LC131[rip]
	lea	rdi, .LC558[rip]
	call	__assert_fail@PLT
.L2732:
	mov	rax, QWORD PTR -264[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -244[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L2733
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8022
	lea	rsi, .LC131[rip]
	lea	rdi, .LC559[rip]
	call	__assert_fail@PLT
.L2733:
	mov	DWORD PTR -224[rbp], 0
	jmp	.L2734
.L2737:
	mov	rax, QWORD PTR -264[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -244[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rdx, [rcx+rax]
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	mov	QWORD PTR -48[rbp+rax*8], rdx
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	mov	rax, QWORD PTR -48[rbp+rax*8]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L2735
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	mov	rax, QWORD PTR -48[rbp+rax*8]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jg	.L2793
.L2735:
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8029
	lea	rsi, .LC131[rip]
	lea	rdi, .LC560[rip]
	call	__assert_fail@PLT
.L2793:
	add	DWORD PTR -224[rbp], 1
.L2734:
	cmp	DWORD PTR -224[rbp], 1
	jle	.L2737
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -196[rbp], eax
	mov	eax, DWORD PTR -196[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -244[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	HitsToBestHits
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -244[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	HitsToBestHits
	lea	rdi, -232[rbp]
	mov	ecx, DWORD PTR -196[rbp]
	mov	rdx, QWORD PTR -136[rbp]
	mov	esi, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	UniqueBestHits
	mov	QWORD PTR -168[rbp], rax
	mov	eax, DWORD PTR -196[rbp]
	mov	DWORD PTR -220[rbp], eax
	mov	eax, DWORD PTR -196[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -136[rbp], rax
	mov	DWORD PTR -224[rbp], 0
	jmp	.L2738
.L2739:
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	mov	rax, QWORD PTR -48[rbp+rax*8]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	mov	rax, QWORD PTR -48[rbp+rax*8]
	mov	rax, QWORD PTR 8[rax]
	mov	ecx, DWORD PTR -224[rbp]
	movsx	rcx, ecx
	mov	rbx, QWORD PTR -48[rbp+rcx*8]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR 8[rbx], rax
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	mov	rax, QWORD PTR -48[rbp+rax*8]
	mov	DWORD PTR [rax], 0
	add	DWORD PTR -224[rbp], 1
.L2738:
	cmp	DWORD PTR -224[rbp], 1
	jle	.L2739
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR 20[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 20[rax]
	add	eax, edx
	add	eax, 1
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, eax
	movq	rax, xmm2
	movq	xmm0, rax
	call	log@PLT
	movq	rax, xmm0
	movsd	xmm0, QWORD PTR .LC151[rip]
	movq	xmm1, rax
	divsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	test	eax, eax
	jle	.L2740
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm3, xmm3
	cvtsi2sd	xmm3, eax
	movq	rax, xmm3
	movq	xmm0, rax
	call	log@PLT
	movq	rax, xmm0
	movsd	xmm0, QWORD PTR .LC151[rip]
	movq	xmm1, rax
	divsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L2741
.L2740:
	mov	eax, 1
.L2741:
	mov	DWORD PTR -192[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	js	.L2742
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	js	.L2742
	mov	eax, 1
	jmp	.L2743
.L2742:
	mov	eax, 0
.L2743:
	mov	BYTE PTR -234[rbp], al
	and	BYTE PTR -234[rbp], 1
	mov	eax, DWORD PTR -248[rbp]
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -232[rbp]
	cmp	edx, eax
	je	.L2744
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 20[rax]
	cmp	DWORD PTR -192[rbp], eax
	jl	.L2745
	cmp	BYTE PTR -234[rbp], 0
	je	.L2746
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR 4[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR tophits2Refresh[rip]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L2747
.L2746:
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR tophitsRefresh[rip]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
.L2747:
	mov	edx, DWORD PTR -232[rbp]
	cmp	eax, edx
	jg	.L2745
.L2744:
	mov	eax, 1
	jmp	.L2748
.L2745:
	mov	eax, 0
.L2748:
	mov	BYTE PTR -233[rbp], al
	and	BYTE PTR -233[rbp], 1
	cmp	BYTE PTR -233[rbp], 0
	je	.L2749
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2749
	cmp	BYTE PTR -234[rbp], 0
	je	.L2750
	lea	rax, .LC561[rip]
	jmp	.L2751
.L2750:
	lea	rax, .LC562[rip]
.L2751:
	mov	rdx, QWORD PTR -144[rbp]
	mov	r8d, DWORD PTR 20[rdx]
	mov	ecx, DWORD PTR -232[rbp]
	mov	rdi, QWORD PTR stderr[rip]
	mov	esi, DWORD PTR -248[rbp]
	mov	edx, DWORD PTR -244[rbp]
	sub	rsp, 8
	push	rax
	mov	r9d, r8d
	mov	r8d, esi
	lea	rsi, .LC563[rip]
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 16
.L2749:
	movzx	eax, BYTE PTR -233[rbp]
	xor	eax, 1
	test	al, al
	je	.L2752
	cmp	BYTE PTR -234[rbp], 0
	je	.L2752
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 20[rax]
	cmp	DWORD PTR -192[rbp], eax
	jl	.L2752
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	ActiveAncestor
	mov	DWORD PTR -216[rbp], eax
	mov	eax, DWORD PTR -216[rbp]
	cmp	eax, DWORD PTR -244[rbp]
	jne	.L2753
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	ActiveAncestor
	mov	DWORD PTR -216[rbp], eax
.L2753:
	mov	eax, DWORD PTR -216[rbp]
	cmp	eax, DWORD PTR -244[rbp]
	je	.L2752
	cmp	DWORD PTR -216[rbp], 0
	js	.L2752
	mov	rax, QWORD PTR -264[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	jns	.L2752
	mov	rax, QWORD PTR -264[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	js	.L2754
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8101
	lea	rsi, .LC131[rip]
	lea	rdi, .LC564[rip]
	call	__assert_fail@PLT
.L2754:
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jg	.L2755
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8102
	lea	rsi, .LC131[rip]
	lea	rdi, .LC565[rip]
	call	__assert_fail@PLT
.L2755:
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR -232[rbp]
	add	eax, edx
	mov	DWORD PTR -188[rbp], eax
	mov	eax, DWORD PTR -188[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -120[rbp], rax
	mov	eax, DWORD PTR -232[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rcx, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	eax, DWORD PTR -232[rbp]
	mov	DWORD PTR -212[rbp], eax
	mov	eax, DWORD PTR -212[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -244[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -212[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -216[rbp]
	mov	DWORD PTR 4[rdx], eax
	mov	eax, DWORD PTR -212[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rdx, rax
	mov	ecx, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetDistCriterion
	add	DWORD PTR -212[rbp], 1
	mov	eax, DWORD PTR -212[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	edx, DWORD PTR -244[rbp]
	mov	rdi, rax
	call	HitsToBestHits
	mov	DWORD PTR -224[rbp], 0
	jmp	.L2756
.L2757:
	mov	eax, DWORD PTR -212[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rdx, rax
	mov	ecx, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetDistCriterion
	add	DWORD PTR -212[rbp], 1
	add	DWORD PTR -224[rbp], 1
.L2756:
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -224[rbp], eax
	jl	.L2757
	mov	eax, DWORD PTR -212[rbp]
	cmp	eax, DWORD PTR -188[rbp]
	je	.L2758
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8117
	lea	rsi, .LC131[rip]
	lea	rdi, .LC566[rip]
	call	__assert_fail@PLT
.L2758:
	mov	eax, DWORD PTR -220[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -168[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -168[rbp], rax
	lea	rdi, -232[rbp]
	mov	ecx, DWORD PTR -188[rbp]
	mov	rdx, QWORD PTR -120[rbp]
	mov	esi, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	UniqueBestHits
	mov	QWORD PTR -168[rbp], rax
	mov	eax, DWORD PTR -188[rbp]
	mov	DWORD PTR -220[rbp], eax
	mov	eax, DWORD PTR -188[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -120[rbp], rax
	mov	eax, DWORD PTR -232[rbp]
	test	eax, eax
	jg	.L2759
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8127
	lea	rsi, .LC131[rip]
	lea	rdi, .LC567[rip]
	call	__assert_fail@PLT
.L2759:
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR tophitsRefresh[rip]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	cvttsd2si	edx, xmm0
	mov	eax, DWORD PTR -232[rbp]
	cmp	edx, eax
	setle	al
	mov	BYTE PTR -233[rbp], al
	mov	BYTE PTR -234[rbp], 0
	cmp	BYTE PTR -233[rbp], 0
	je	.L2752
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2752
	mov	edi, DWORD PTR -232[rbp]
	mov	rax, QWORD PTR -128[rbp]
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -216[rbp]
	mov	edx, DWORD PTR -244[rbp]
	mov	r9d, edi
	mov	r8d, esi
	lea	rsi, .LC568[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2752:
	cmp	BYTE PTR -233[rbp], 0
	je	.L2760
	cmp	BYTE PTR -234[rbp], 0
	je	.L2761
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	DWORD PTR 16[rax], edx
.L2761:
	cmp	BYTE PTR -234[rbp], 0
	je	.L2762
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR 4[rax]
	jmp	.L2763
.L2762:
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
.L2763:
	mov	edx, DWORD PTR -232[rbp]
	cmp	eax, edx
	cmovg	eax, edx
	mov	DWORD PTR -172[rbp], eax
	cmp	DWORD PTR -172[rbp], 0
	jg	.L2764
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8143
	lea	rsi, .LC131[rip]
	lea	rdi, .LC569[rip]
	call	__assert_fail@PLT
.L2764:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2765
	mov	rax, QWORD PTR profileOps[rip]
	sub	rax, QWORD PTR -160[rbp]
	mov	rcx, rax
	mov	edx, DWORD PTR -232[rbp]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC570[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2765:
	mov	edx, DWORD PTR -232[rbp]
	mov	rdi, QWORD PTR -264[rbp]
	mov	ecx, DWORD PTR -172[rbp]
	mov	rsi, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR -244[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	SortSaveBestHits
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L2766
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8148
	lea	rsi, .LC131[rip]
	lea	rdi, .LC571[rip]
	call	__assert_fail@PLT
.L2766:
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -264[rbp]
	mov	rcx, QWORD PTR 24[rdx]
	mov	edx, DWORD PTR -244[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -244[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, [rdx+rax]
	mov	rdi, QWORD PTR -264[rbp]
	mov	edx, DWORD PTR -244[rbp]
	mov	esi, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	UpdateTopVisible
	mov	rdi, QWORD PTR -264[rbp]
	mov	ecx, DWORD PTR -172[rbp]
	mov	rdx, QWORD PTR -168[rbp]
	mov	esi, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	UpdateVisible
	jmp	.L2767
.L2760:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2768
	mov	rax, QWORD PTR -144[rbp]
	mov	esi, DWORD PTR 20[rax]
	mov	ecx, DWORD PTR -232[rbp]
	mov	rax, QWORD PTR stderr[rip]
	mov	edi, DWORD PTR -248[rbp]
	mov	edx, DWORD PTR -244[rbp]
	mov	r9d, edi
	mov	r8d, esi
	lea	rsi, .LC572[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2768:
	mov	rax, QWORD PTR nRefreshTopHits[rip]
	add	rax, 1
	mov	QWORD PTR nRefreshTopHits[rip], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	DWORD PTR 20[rax], 0
	mov	DWORD PTR -208[rbp], 0
	jmp	.L2769
.L2772:
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2770
	mov	eax, DWORD PTR fastest[rip]
	test	eax, eax
	je	.L2771
	mov	eax, DWORD PTR -208[rbp]
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -208[rbp]
	mov	DWORD PTR -76[rbp], eax
	pxor	xmm0, xmm0
	movss	DWORD PTR -68[rbp], xmm0
	lea	rdx, -80[rbp]
	mov	ecx, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	jmp	.L2770
.L2771:
	mov	edx, DWORD PTR -248[rbp]
	mov	ecx, DWORD PTR -208[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetOutDistance
.L2770:
	add	DWORD PTR -208[rbp], 1
.L2769:
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -208[rbp], eax
	jl	.L2772
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR 48[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, [rax+rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	edx, eax
	jle	.L2773
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8183
	lea	rsi, .LC131[rip]
	lea	rdi, .LC573[rip]
	call	__assert_fail@PLT
.L2773:
	mov	rdi, QWORD PTR -112[rbp]
	lea	rcx, -80[rbp]
	mov	edx, DWORD PTR -248[rbp]
	mov	rsi, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR -244[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	SetBestHit
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR 48[rax]
	movsx	rsi, eax
	mov	rax, QWORD PTR -112[rbp]
	lea	rcx, CompareHitsByCriterion[rip]
	mov	edx, 20
	mov	rdi, rax
	call	qsort@PLT
	mov	rax, QWORD PTR -264[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	edx, DWORD PTR 48[rax]
	mov	rdi, QWORD PTR -264[rbp]
	mov	rsi, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR -244[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	SortSaveBestHits
	mov	DWORD PTR -204[rbp], 0
	jmp	.L2774
.L2788:
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2794
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -184[rbp], eax
	cmp	DWORD PTR -184[rbp], 0
	jns	.L2777
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8200
	lea	rsi, .LC131[rip]
	lea	rdi, .LC574[rip]
	call	__assert_fail@PLT
.L2777:
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2795
	mov	rax, QWORD PTR -264[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -184[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -180[rbp], eax
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -180[rbp], eax
	jle	.L2779
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8204
	lea	rsi, .LC131[rip]
	lea	rdi, .LC575[rip]
	call	__assert_fail@PLT
.L2779:
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 20[rax], 0
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR -184[rbp]
	mov	esi, DWORD PTR -180[rbp]
	mov	rdi, rax
	call	HitsToBestHits
	mov	DWORD PTR -224[rbp], 0
	jmp	.L2780
.L2781:
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -96[rbp]
	add	rdx, rax
	mov	ecx, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	add	DWORD PTR -224[rbp], 1
.L2780:
	mov	eax, DWORD PTR -224[rbp]
	cmp	eax, DWORD PTR -180[rbp]
	jl	.L2781
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	cmp	DWORD PTR -248[rbp], eax
	jg	.L2782
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 16[rax], -1
.L2782:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	js	.L2783
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR 4[rax]
	jmp	.L2784
.L2783:
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
.L2784:
	mov	DWORD PTR -176[rbp], eax
	cmp	DWORD PTR -176[rbp], 0
	jg	.L2785
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8215
	lea	rsi, .LC131[rip]
	lea	rdi, .LC576[rip]
	call	__assert_fail@PLT
.L2785:
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -96[rbp]
	lea	r8, [rdx+rax]
	mov	eax, DWORD PTR -176[rbp]
	lea	edi, [rax+rax]
	mov	rcx, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -184[rbp]
	mov	esi, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	sub	rsp, 8
	push	0
	mov	r9, r8
	mov	r8d, edi
	mov	rdi, rax
	call	TransferBestHits
	add	rsp, 16
	mov	eax, DWORD PTR -176[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -180[rbp]
	lea	ecx, [rdx+rax]
	lea	rdi, -228[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	mov	esi, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	UniqueBestHits
	mov	QWORD PTR -88[rbp], rax
	mov	eax, DWORD PTR -228[rbp]
	test	eax, eax
	jg	.L2786
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 8225
	lea	rsi, .LC131[rip]
	lea	rdi, .LC577[rip]
	call	__assert_fail@PLT
.L2786:
	mov	rax, QWORD PTR -264[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -96[rbp], rax
	mov	edx, DWORD PTR -228[rbp]
	mov	rdi, QWORD PTR -264[rbp]
	mov	ecx, DWORD PTR -176[rbp]
	mov	rsi, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR -184[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	SortSaveBestHits
	mov	rax, QWORD PTR -264[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -184[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -264[rbp]
	mov	rcx, QWORD PTR 24[rdx]
	mov	edx, DWORD PTR -184[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -180[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -88[rbp], rax
	jmp	.L2787
.L2794:
	nop
	jmp	.L2787
.L2795:
	nop
.L2787:
	add	DWORD PTR -204[rbp], 1
.L2774:
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -204[rbp], eax
	jl	.L2788
	mov	rdx, QWORD PTR -264[rbp]
	mov	ecx, DWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	ResetTopVisible
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR 48[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -112[rbp], rax
.L2767:
	mov	eax, DWORD PTR -220[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -168[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -168[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2796
	mov	rax, QWORD PTR -144[rbp]
	mov	esi, DWORD PTR 20[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	r8d, DWORD PTR 16[rax]
	mov	rax, QWORD PTR outprofileOps[rip]
	sub	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	mov	rax, QWORD PTR profileOps[rip]
	sub	rax, QWORD PTR -160[rbp]
	mov	rcx, rax
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -244[rbp]
	sub	rsp, 8
	push	rsi
	mov	r9d, r8d
	mov	r8, rdi
	lea	rsi, .LC578[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 16
	mov	DWORD PTR -200[rbp], 0
	jmp	.L2790
.L2791:
	mov	rax, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -200[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC196[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	DWORD PTR -200[rbp], 1
.L2790:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -200[rbp], eax
	jl	.L2791
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L2796:
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2792
	call	__stack_chk_fail@PLT
.L2792:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE611:
	.size	TopHitJoin, .-TopHitJoin
	.section	.rodata
.LC579:
	.string	"NJ->parent[hit->i] < 0"
.LC580:
	.string	"NewVisible %d %d %f\n"
	.text
	.globl	UpdateVisible
	.type	UpdateVisible, @function
UpdateVisible:
.LFB612:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	QWORD PTR -88[rbp], rdx
	mov	DWORD PTR -80[rbp], ecx
	mov	QWORD PTR -96[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -52[rbp], 0
	jmp	.L2798
.L2808:
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2811
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2801
	lea	rcx, __PRETTY_FUNCTION__.16[rip]
	mov	edx, 8263
	lea	rsi, .LC131[rip]
	lea	rdi, .LC579[rip]
	call	__assert_fail@PLT
.L2801:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	js	.L2802
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2810
.L2802:
	lea	rcx, __PRETTY_FUNCTION__.16[rip]
	mov	edx, 8264
	lea	rsi, .LC131[rip]
	lea	rdi, .LC557[rip]
	call	__assert_fail@PLT
.L2810:
	mov	rax, QWORD PTR -48[rbp]
	mov	ecx, DWORD PTR 4[rax]
	lea	rdi, -32[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	mov	esi, DWORD PTR -76[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	GetVisible
	mov	BYTE PTR -53[rbp], al
	movzx	eax, BYTE PTR -53[rbp]
	xor	eax, 1
	test	al, al
	jne	.L2804
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm1, DWORD PTR 16[rax]
	movss	xmm0, DWORD PTR -16[rbp]
	comiss	xmm0, xmm1
	jbe	.L2800
.L2804:
	cmp	BYTE PTR -53[rbp], 0
	je	.L2807
	mov	rax, QWORD PTR nVisibleUpdate[rip]
	add	rax, 1
	mov	QWORD PTR nVisibleUpdate[rip], rax
.L2807:
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -40[rbp]
	movss	DWORD PTR 4[rax], xmm0
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rdi, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	esi, DWORD PTR -76[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	UpdateTopVisible
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 5
	jle	.L2800
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR 4[rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	movq	rsi, xmm2
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR stderr[rip]
	movq	xmm0, rsi
	lea	rsi, .LC580[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	jmp	.L2800
.L2811:
	nop
.L2800:
	add	DWORD PTR -52[rbp], 1
.L2798:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jl	.L2808
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2809
	call	__stack_chk_fail@PLT
.L2809:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE612:
	.size	UpdateVisible, .-UpdateVisible
	.section	.rodata
.LC581:
	.string	"tophits != NULL"
	.align 8
.LC582:
	.string	"iNode >= 0 && NJ->parent[iNode] < 0 && iNode != iIn"
	.align 8
.LC583:
	.string	"TopVisible replace %d=>%d with %d=>%d\n"
.LC584:
	.string	"Updated TopVisible: "
.LC585:
	.string	" %d=>%d:%.4f"
	.text
	.globl	UpdateTopVisible
	.type	UpdateTopVisible, @function
UpdateTopVisible:
.LFB613:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	DWORD PTR -92[rbp], esi
	mov	DWORD PTR -96[rbp], edx
	mov	QWORD PTR -104[rbp], rcx
	mov	QWORD PTR -112[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	QWORD PTR -112[rbp], 0
	jne	.L2813
	lea	rcx, __PRETTY_FUNCTION__.15[rip]
	mov	edx, 8284
	lea	rsi, .LC131[rip]
	lea	rdi, .LC581[rip]
	call	__assert_fail@PLT
.L2813:
	mov	BYTE PTR -65[rbp], 0
	mov	DWORD PTR -64[rbp], 0
	jmp	.L2814
.L2819:
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	jne	.L2815
	mov	BYTE PTR -65[rbp], 1
	jmp	.L2816
.L2815:
	cmp	DWORD PTR -56[rbp], 0
	js	.L2817
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2816
.L2817:
	mov	BYTE PTR -65[rbp], 1
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -96[rbp]
	mov	DWORD PTR [rdx], eax
.L2816:
	add	DWORD PTR -64[rbp], 1
.L2814:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -64[rbp], eax
	jge	.L2818
	movzx	eax, BYTE PTR -65[rbp]
	xor	eax, 1
	test	al, al
	jne	.L2819
.L2818:
	mov	DWORD PTR -60[rbp], -1
	movsd	xmm0, QWORD PTR .LC160[rip]
	movsd	QWORD PTR -40[rbp], xmm0
	movzx	eax, BYTE PTR -65[rbp]
	xor	eax, 1
	test	al, al
	je	.L2820
	mov	DWORD PTR -64[rbp], 0
	jmp	.L2821
.L2828:
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	js	.L2822
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2822
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	jne	.L2840
.L2822:
	lea	rcx, __PRETTY_FUNCTION__.15[rip]
	mov	edx, 8307
	lea	rsi, .LC131[rip]
	lea	rdi, .LC582[rip]
	call	__assert_fail@PLT
.L2840:
	lea	rdi, -32[rbp]
	mov	ecx, DWORD PTR -52[rbp]
	mov	rdx, QWORD PTR -112[rbp]
	mov	esi, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	GetVisible
	xor	eax, 1
	test	al, al
	je	.L2824
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -96[rbp]
	mov	DWORD PTR [rdx], eax
	mov	BYTE PTR -65[rbp], 1
	jmp	.L2825
.L2824:
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jne	.L2826
	mov	eax, DWORD PTR -28[rbp]
	cmp	DWORD PTR -96[rbp], eax
	jne	.L2826
	mov	BYTE PTR -65[rbp], 1
	jmp	.L2825
.L2826:
	movss	xmm0, DWORD PTR -16[rbp]
	cvtss2sd	xmm0, xmm0
	comisd	xmm0, QWORD PTR -40[rbp]
	jb	.L2825
	mov	eax, DWORD PTR -64[rbp]
	mov	DWORD PTR -60[rbp], eax
	movss	xmm0, DWORD PTR -16[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -40[rbp], xmm0
.L2825:
	add	DWORD PTR -64[rbp], 1
.L2821:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -64[rbp], eax
	jge	.L2820
	movzx	eax, BYTE PTR -65[rbp]
	xor	eax, 1
	test	al, al
	jne	.L2828
.L2820:
	movzx	eax, BYTE PTR -65[rbp]
	xor	eax, 1
	test	al, al
	je	.L2829
	cmp	DWORD PTR -60[rbp], 0
	js	.L2829
	lea	rax, -32[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	mov	ecx, DWORD PTR -96[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	esi, ecx
	mov	rdi, rax
	call	HitToBestHit
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	movss	xmm0, DWORD PTR -16[rbp]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	comisd	xmm0, xmm1
	jbe	.L2829
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2832
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -48[rbp], eax
	mov	edi, DWORD PTR -28[rbp]
	mov	esi, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -48[rbp]
	mov	r9d, edi
	mov	r8d, esi
	lea	rsi, .LC583[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2832:
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -96[rbp]
	mov	DWORD PTR [rdx], eax
.L2829:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2841
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 20
	mov	esi, 1
	lea	rdi, .LC584[rip]
	call	fwrite@PLT
	mov	DWORD PTR -64[rbp], 0
	jmp	.L2834
.L2836:
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -44[rbp], eax
	cmp	DWORD PTR -44[rbp], 0
	js	.L2835
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2835
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	lea	rax, -32[rbp]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	esi, ecx
	mov	rdi, rax
	call	HitToBestHit
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetDistCriterion
	movss	xmm0, DWORD PTR -16[rbp]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	movq	rsi, xmm2
	mov	ecx, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR stderr[rip]
	movq	xmm0, rsi
	lea	rsi, .LC585[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L2835:
	add	DWORD PTR -64[rbp], 1
.L2834:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -64[rbp], eax
	jl	.L2836
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L2841:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2837
	call	__stack_chk_fail@PLT
.L2837:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE613:
	.size	UpdateTopVisible, .-UpdateTopVisible
	.section	.rodata
.LC586:
	.string	"nVisible < nActive"
.LC587:
	.string	"nVisible > 0"
	.align 8
.LC588:
	.string	"top-hit search: nActive %d nVisible %d considering up to %d items\n"
.LC589:
	.string	"Reset TopVisible: "
.LC590:
	.string	" %d=>%d"
	.text
	.globl	ResetTopVisible
	.type	ResetTopVisible, @function
ResetTopVisible:
.LFB614:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	DWORD PTR -92[rbp], esi
	mov	QWORD PTR -104[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -92[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -56[rbp], rax
	mov	DWORD PTR -76[rbp], 0
	mov	DWORD PTR -72[rbp], 0
	jmp	.L2843
.L2848:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2865
	lea	rdi, -32[rbp]
	mov	ecx, DWORD PTR -72[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	mov	esi, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	GetVisible
	test	al, al
	je	.L2845
	mov	eax, DWORD PTR -76[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jl	.L2847
	lea	rcx, __PRETTY_FUNCTION__.14[rip]
	mov	edx, 8363
	lea	rsi, .LC131[rip]
	lea	rdi, .LC586[rip]
	call	__assert_fail@PLT
.L2847:
	mov	eax, DWORD PTR -76[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -76[rbp], edx
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR 16[rcx], eax
	jmp	.L2845
.L2865:
	nop
.L2845:
	add	DWORD PTR -72[rbp], 1
.L2843:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -72[rbp], eax
	jl	.L2848
	cmp	DWORD PTR -76[rbp], 0
	jg	.L2849
	lea	rcx, __PRETTY_FUNCTION__.14[rip]
	mov	edx, 8367
	lea	rsi, .LC131[rip]
	lea	rdi, .LC587[rip]
	call	__assert_fail@PLT
.L2849:
	mov	eax, DWORD PTR -76[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, CompareHitsByCriterion[rip]
	mov	edx, 20
	mov	rdi, rax
	call	qsort@PLT
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -48[rbp], rax
	mov	DWORD PTR -68[rbp], 0
	jmp	.L2850
.L2851:
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	add	DWORD PTR -68[rbp], 1
.L2850:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -68[rbp], eax
	jl	.L2851
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2852
	mov	rax, QWORD PTR -104[rbp]
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -76[rbp]
	mov	edx, DWORD PTR -92[rbp]
	mov	r8d, esi
	lea	rsi, .LC588[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2852:
	mov	DWORD PTR -64[rbp], 0
	mov	DWORD PTR -68[rbp], 0
	jmp	.L2853
.L2856:
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	je	.L2854
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -64[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -64[rbp], edx
	cdqe
	sal	rax, 2
	lea	rdx, [rcx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
.L2854:
	add	DWORD PTR -68[rbp], 1
.L2853:
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L2857
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -64[rbp], eax
	jl	.L2856
	jmp	.L2857
.L2858:
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -64[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -64[rbp], edx
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	DWORD PTR [rax], -1
.L2857:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -64[rbp], eax
	jl	.L2858
	mov	eax, DWORD PTR -92[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 48[rax], 0
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2866
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 18
	mov	esi, 1
	lea	rdi, .LC589[rip]
	call	fwrite@PLT
	mov	DWORD PTR -68[rbp], 0
	jmp	.L2860
.L2863:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -60[rbp], eax
	cmp	DWORD PTR -60[rbp], 0
	js	.L2867
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -60[rbp]
	lea	rsi, .LC590[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	DWORD PTR -68[rbp], 1
.L2860:
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -68[rbp], eax
	jl	.L2863
	jmp	.L2862
.L2867:
	nop
.L2862:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L2866:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2864
	call	__stack_chk_fail@PLT
.L2864:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE614:
	.size	ResetTopVisible, .-ResetTopVisible
	.section	.rodata
	.align 8
.LC591:
	.string	"Resetting the top-visible list at nActive=%d\n"
	.align 8
.LC592:
	.string	"Expanding visible set by walking up to active nodes at nActive=%d\n"
	.align 8
.LC593:
	.string	"newj >= 0 && newj < NJ->maxnodes && newj != iNode && NJ->parent[newj] < 0"
	.align 8
.LC594:
	.string	"Top-visible list size %d (nActive %d m %d)\n"
	.align 8
.LC595:
	.string	"iNodeBestCandidate >= 0 && NJ->parent[iNodeBestCandidate] < 0"
	.align 8
.LC596:
	.string	"join->i >= 0 && NJ->parent[join->i] < 0"
	.align 8
.LC597:
	.string	"join->j >= 0 && NJ->parent[join->j] < 0"
.LC598:
	.string	"bestI.i == join->i"
.LC599:
	.string	"bestJ.i == join->j"
	.text
	.globl	TopHitNJSearch
	.type	TopHitNJSearch, @function
TopHitNJSearch:
.LFB615:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 144
	mov	QWORD PTR -120[rbp], rdi
	mov	DWORD PTR -124[rbp], esi
	mov	QWORD PTR -136[rbp], rdx
	mov	QWORD PTR -144[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -108[rbp], 0
	mov	DWORD PTR -104[rbp], -1
	movsd	xmm0, QWORD PTR .LC234[rip]
	movsd	QWORD PTR -80[rbp], xmm0
	mov	DWORD PTR -100[rbp], 0
	jmp	.L2869
.L2873:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -84[rbp], eax
	lea	rdi, -32[rbp]
	mov	ecx, DWORD PTR -84[rbp]
	mov	rdx, QWORD PTR -136[rbp]
	mov	esi, DWORD PTR -124[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	GetVisible
	test	al, al
	je	.L2870
	add	DWORD PTR -108[rbp], 1
	cmp	DWORD PTR -104[rbp], 0
	js	.L2871
	movss	xmm0, DWORD PTR -16[rbp]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -80[rbp]
	comisd	xmm0, xmm1
	jbe	.L2870
.L2871:
	mov	eax, DWORD PTR -84[rbp]
	mov	DWORD PTR -104[rbp], eax
	movss	xmm0, DWORD PTR -16[rbp]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -80[rbp], xmm0
.L2870:
	add	DWORD PTR -100[rbp], 1
.L2869:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -100[rbp], eax
	jl	.L2873
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 48[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	DWORD PTR 48[rax], edx
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 48[rax]
	lea	edx, [rax+rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jg	.L2874
	mov	edx, DWORD PTR -108[rbp]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	edx, eax
	jge	.L2875
	mov	edx, DWORD PTR -108[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	cmp	DWORD PTR -124[rbp], eax
	jle	.L2875
.L2874:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2876
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -124[rbp]
	lea	rsi, .LC591[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2876:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	eax, 2
	jg	.L2877
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2878
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -124[rbp]
	lea	rsi, .LC592[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2878:
	mov	DWORD PTR -96[rbp], 0
	jmp	.L2879
.L2887:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2914
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	ActiveAncestor
	mov	DWORD PTR -92[rbp], eax
	cmp	DWORD PTR -92[rbp], 0
	js	.L2881
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -92[rbp], eax
	je	.L2881
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	jne	.L2882
	mov	DWORD PTR -92[rbp], 0
	jmp	.L2883
.L2884:
	add	DWORD PTR -92[rbp], 1
.L2883:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jns	.L2884
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	je	.L2884
.L2882:
	cmp	DWORD PTR -92[rbp], 0
	js	.L2885
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -92[rbp], eax
	jge	.L2885
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	je	.L2885
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2910
.L2885:
	lea	rcx, __PRETTY_FUNCTION__.13[rip]
	mov	edx, 8473
	lea	rsi, .LC131[rip]
	lea	rdi, .LC593[rip]
	call	__assert_fail@PLT
.L2910:
	mov	eax, DWORD PTR -96[rbp]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	mov	DWORD PTR -28[rbp], eax
	movss	xmm0, DWORD PTR .LC555[rip]
	movss	DWORD PTR -24[rbp], xmm0
	movss	xmm0, DWORD PTR .LC555[rip]
	movss	DWORD PTR -20[rbp], xmm0
	movss	xmm0, DWORD PTR .LC555[rip]
	movss	DWORD PTR -16[rbp], xmm0
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -124[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetDistCriterion
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -92[rbp]
	mov	DWORD PTR [rax], edx
	movss	xmm0, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -72[rbp]
	movss	DWORD PTR 4[rax], xmm0
	jmp	.L2881
.L2914:
	nop
.L2881:
	add	DWORD PTR -96[rbp], 1
.L2879:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -96[rbp], eax
	jl	.L2887
.L2877:
	mov	rdx, QWORD PTR -136[rbp]
	mov	ecx, DWORD PTR -124[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	ResetTopVisible
	mov	rcx, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR -136[rbp]
	mov	esi, DWORD PTR -124[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	TopHitNJSearch
	jmp	.L2868
.L2875:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2889
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -124[rbp]
	mov	edx, DWORD PTR -108[rbp]
	mov	r8d, esi
	lea	rsi, .LC594[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L2889:
	cmp	DWORD PTR -104[rbp], 0
	js	.L2890
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2911
.L2890:
	lea	rcx, __PRETTY_FUNCTION__.13[rip]
	mov	edx, 8493
	lea	rsi, .LC131[rip]
	lea	rdi, .LC595[rip]
	call	__assert_fail@PLT
.L2911:
	mov	rdi, QWORD PTR -144[rbp]
	mov	ecx, DWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -136[rbp]
	mov	esi, DWORD PTR -124[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	GetVisible
	mov	BYTE PTR -109[rbp], al
	cmp	BYTE PTR -109[rbp], 0
	jne	.L2892
	lea	rcx, __PRETTY_FUNCTION__.13[rip]
	mov	edx, 8495
	lea	rsi, .LC131[rip]
	lea	rdi, .LC548[rip]
	call	__assert_fail@PLT
.L2892:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2893
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2912
.L2893:
	lea	rcx, __PRETTY_FUNCTION__.13[rip]
	mov	edx, 8496
	lea	rsi, .LC131[rip]
	lea	rdi, .LC596[rip]
	call	__assert_fail@PLT
.L2912:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	js	.L2895
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2913
.L2895:
	lea	rcx, __PRETTY_FUNCTION__.13[rip]
	mov	edx, 8497
	lea	rsi, .LC131[rip]
	lea	rdi, .LC597[rip]
	call	__assert_fail@PLT
.L2913:
	mov	eax, DWORD PTR fastest[rip]
	test	eax, eax
	jne	.L2915
.L2897:
	mov	DWORD PTR -88[rbp], 0
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	lea	rdi, -64[rbp]
	mov	rcx, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR -124[rbp]
	mov	rsi, QWORD PTR -120[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	GetBestFromTopHits
	mov	edx, DWORD PTR -64[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	je	.L2898
	lea	rcx, __PRETTY_FUNCTION__.13[rip]
	mov	edx, 8508
	lea	rsi, .LC131[rip]
	lea	rdi, .LC598[rip]
	call	__assert_fail@PLT
.L2898:
	mov	edx, DWORD PTR -60[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	je	.L2899
	movss	xmm1, DWORD PTR -48[rbp]
	mov	rax, QWORD PTR -144[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	comiss	xmm0, xmm1
	jbe	.L2899
	mov	DWORD PTR -88[rbp], 1
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2901
	movss	xmm0, DWORD PTR -48[rbp]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -144[rbp]
	movss	xmm1, DWORD PTR 16[rax]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movq	rsi, xmm2
	mov	r8d, DWORD PTR -60[rbp]
	mov	edi, DWORD PTR -64[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	mov	r9d, r8d
	mov	r8d, edi
	lea	rsi, .LC236[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L2901:
	mov	rcx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR 16[rcx], eax
.L2899:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	lea	rdi, -32[rbp]
	mov	rcx, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR -124[rbp]
	mov	rsi, QWORD PTR -120[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	GetBestFromTopHits
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	je	.L2902
	lea	rcx, __PRETTY_FUNCTION__.13[rip]
	mov	edx, 8520
	lea	rsi, .LC131[rip]
	lea	rdi, .LC599[rip]
	call	__assert_fail@PLT
.L2902:
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	je	.L2903
	movss	xmm1, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -144[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	comiss	xmm0, xmm1
	jbe	.L2903
	mov	DWORD PTR -88[rbp], 1
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L2905
	movss	xmm0, DWORD PTR -16[rbp]
	cvtss2sd	xmm0, xmm0
	mov	rax, QWORD PTR -144[rbp]
	movss	xmm1, DWORD PTR 16[rax]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm1
	movq	rsi, xmm3
	mov	r8d, DWORD PTR -28[rbp]
	mov	edi, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rsi
	mov	r9d, r8d
	mov	r8d, edi
	lea	rsi, .LC237[rip]
	mov	rdi, rax
	mov	eax, 2
	call	fprintf@PLT
.L2905:
	mov	rcx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR 16[rcx], eax
.L2903:
	cmp	DWORD PTR -88[rbp], 0
	je	.L2906
	mov	rax, QWORD PTR nHillBetter[rip]
	add	rax, 1
	mov	QWORD PTR nHillBetter[rip], rax
.L2906:
	cmp	DWORD PTR -88[rbp], 0
	jne	.L2897
	jmp	.L2868
.L2915:
	nop
.L2868:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2907
	call	__stack_chk_fail@PLT
.L2907:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE615:
	.size	TopHitNJSearch, .-TopHitNJSearch
	.section	.rodata
.LC600:
	.string	"iNode < NJ->nSeq"
	.text
	.globl	NGaps
	.type	NGaps, @function
NGaps:
.LFB616:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L2917
	lea	rcx, __PRETTY_FUNCTION__.12[rip]
	mov	edx, 8534
	lea	rsi, .LC131[rip]
	lea	rdi, .LC600[rip]
	call	__assert_fail@PLT
.L2917:
	mov	DWORD PTR -8[rbp], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L2918
.L2920:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 127
	jne	.L2919
	add	DWORD PTR -8[rbp], 1
.L2919:
	add	DWORD PTR -4[rbp], 1
.L2918:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -4[rbp], eax
	jl	.L2920
	mov	eax, DWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE616:
	.size	NGaps, .-NGaps
	.globl	CompareHitsByCriterion
	.type	CompareHitsByCriterion, @function
CompareHitsByCriterion:
.LFB617:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm1, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	comiss	xmm0, xmm1
	jbe	.L2930
	mov	eax, -1
	jmp	.L2925
.L2930:
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm1, DWORD PTR 16[rax]
	comiss	xmm0, xmm1
	jbe	.L2931
	mov	eax, 1
	jmp	.L2925
.L2931:
	mov	eax, 0
.L2925:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE617:
	.size	CompareHitsByCriterion, .-CompareHitsByCriterion
	.globl	CompareHitsByIJ
	.type	CompareHitsByIJ, @function
CompareHitsByIJ:
.LFB618:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	je	.L2933
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	eax, edx
	sub	eax, ecx
	jmp	.L2935
.L2933:
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	eax, edx
	sub	eax, ecx
.L2935:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE618:
	.size	CompareHitsByIJ, .-CompareHitsByIJ
	.section	.rodata
.LC601:
	.string	"nIn > 0"
.LC602:
	.string	"nOut > 0"
.LC603:
	.string	"besthits[iBest].i == iNode"
.LC604:
	.string	"nSave > 0"
.LC605:
	.string	"iSave == nSave"
	.text
	.globl	SortSaveBestHits
	.type	SortSaveBestHits, @function
SortSaveBestHits:
.LFB619:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -40[rbp], edx
	mov	DWORD PTR -52[rbp], ecx
	mov	QWORD PTR -64[rbp], r8
	cmp	DWORD PTR -40[rbp], 0
	jg	.L2937
	lea	rcx, __PRETTY_FUNCTION__.11[rip]
	mov	edx, 8561
	lea	rsi, .LC131[rip]
	lea	rdi, .LC601[rip]
	call	__assert_fail@PLT
.L2937:
	cmp	DWORD PTR -52[rbp], 0
	jg	.L2938
	lea	rcx, __PRETTY_FUNCTION__.11[rip]
	mov	edx, 8562
	lea	rsi, .LC131[rip]
	lea	rdi, .LC602[rip]
	call	__assert_fail@PLT
.L2938:
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -40[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -48[rbp]
	lea	rcx, CompareHitsByCriterion[rip]
	mov	edx, 20
	mov	rdi, rax
	call	qsort@PLT
	mov	DWORD PTR -32[rbp], 0
	mov	DWORD PTR -28[rbp], -1
	mov	DWORD PTR -24[rbp], 0
	jmp	.L2939
.L2944:
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2952
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -36[rbp], eax
	je	.L2942
	lea	rcx, __PRETTY_FUNCTION__.11[rip]
	mov	edx, 8576
	lea	rsi, .LC131[rip]
	lea	rdi, .LC603[rip]
	call	__assert_fail@PLT
.L2942:
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	je	.L2941
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	je	.L2941
	cmp	DWORD PTR -16[rbp], 0
	js	.L2941
	add	DWORD PTR -32[rbp], 1
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -28[rbp], eax
	jmp	.L2941
.L2952:
	nop
.L2941:
	add	DWORD PTR -24[rbp], 1
.L2939:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -40[rbp]
	jge	.L2943
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L2944
.L2943:
	cmp	DWORD PTR -32[rbp], 0
	jg	.L2945
	lea	rcx, __PRETTY_FUNCTION__.11[rip]
	mov	edx, 8584
	lea	rsi, .LC131[rip]
	lea	rdi, .LC604[rip]
	call	__assert_fail@PLT
.L2945:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L2946
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 0
.L2946:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -28[rbp], -1
	mov	DWORD PTR -24[rbp], 0
	jmp	.L2947
.L2950:
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	je	.L2948
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	je	.L2948
	cmp	DWORD PTR -12[rbp], 0
	js	.L2948
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	movss	xmm0, DWORD PTR 12[rdx]
	movss	DWORD PTR 4[rax], xmm0
	add	DWORD PTR -20[rbp], 1
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -28[rbp], eax
.L2948:
	add	DWORD PTR -24[rbp], 1
.L2947:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -40[rbp]
	jge	.L2949
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	jl	.L2950
.L2949:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	je	.L2953
	lea	rcx, __PRETTY_FUNCTION__.11[rip]
	mov	edx, 8609
	lea	rsi, .LC131[rip]
	lea	rdi, .LC605[rip]
	call	__assert_fail@PLT
.L2953:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE619:
	.size	SortSaveBestHits, .-SortSaveBestHits
	.globl	TransferBestHits
	.type	TransferBestHits, @function
TransferBestHits:
.LFB620:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	QWORD PTR -56[rbp], rcx
	mov	DWORD PTR -60[rbp], r8d
	mov	QWORD PTR -72[rbp], r9
	mov	eax, DWORD PTR 16[rbp]
	mov	BYTE PTR -64[rbp], al
	cmp	DWORD PTR -48[rbp], 0
	jns	.L2955
	lea	rcx, __PRETTY_FUNCTION__.10[rip]
	mov	edx, 8619
	lea	rsi, .LC131[rip]
	lea	rdi, .LC550[rip]
	call	__assert_fail@PLT
.L2955:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L2956
	lea	rcx, __PRETTY_FUNCTION__.10[rip]
	mov	edx, 8620
	lea	rsi, .LC131[rip]
	lea	rdi, .LC551[rip]
	call	__assert_fail@PLT
.L2956:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L2957
.L2966:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	ActiveAncestor
	mov	rdx, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rdx], eax
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm0, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm0, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	DWORD PTR 8[rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	DWORD PTR 16[rax], xmm0
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	js	.L2958
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -48[rbp], eax
	jne	.L2959
.L2958:
	mov	rax, QWORD PTR -8[rbp]
	pxor	xmm0, xmm0
	movss	DWORD PTR 8[rax], xmm0
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR .LC555[rip]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 16[rax], xmm0
	jmp	.L2960
.L2959:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jne	.L2961
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	je	.L2962
.L2961:
	cmp	BYTE PTR -64[rbp], 0
	je	.L2963
	mov	rdx, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetDistCriterion
	jmp	.L2960
.L2963:
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR .LC555[rip]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 16[rax], xmm0
	jmp	.L2960
.L2962:
	cmp	BYTE PTR -64[rbp], 0
	je	.L2965
	mov	rdx, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	SetCriterion
	jmp	.L2960
.L2965:
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 16[rax], xmm0
.L2960:
	add	DWORD PTR -20[rbp], 1
.L2957:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L2966
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE620:
	.size	TransferBestHits, .-TransferBestHits
	.globl	HitsToBestHits
	.type	HitsToBestHits, @function
HitsToBestHits:
.LFB621:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	QWORD PTR -56[rbp], rcx
	mov	DWORD PTR -20[rbp], 0
	jmp	.L2968
.L2969:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm0, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	DWORD PTR 12[rax], xmm0
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR 16[rax], xmm0
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR .LC204[rip]
	movss	DWORD PTR 8[rax], xmm0
	add	DWORD PTR -20[rbp], 1
.L2968:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L2969
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE621:
	.size	HitsToBestHits, .-HitsToBestHits
	.globl	HitToBestHit
	.type	HitToBestHit, @function
HitToBestHit:
.LFB622:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -52[rbp], rdx
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -28[rbp], eax
	movss	xmm0, DWORD PTR -48[rbp]
	movss	DWORD PTR -20[rbp], xmm0
	movss	xmm0, DWORD PTR .LC233[rip]
	movss	DWORD PTR -16[rbp], xmm0
	movss	xmm0, DWORD PTR .LC204[rip]
	movss	DWORD PTR -24[rbp], xmm0
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR 16[rcx], eax
	mov	rax, QWORD PTR -40[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE622:
	.size	HitToBestHit, .-HitToBestHit
	.globl	OpenMPString
	.type	OpenMPString, @function
OpenMPString:
.LFB623:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rax, .LC114[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE623:
	.size	OpenMPString, .-OpenMPString
	.globl	pnorm
	.type	pnorm, @function
pnorm:
.LFB624:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	movsd	QWORD PTR -88[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC606[rip]
	movsd	QWORD PTR -72[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC607[rip]
	movsd	QWORD PTR -64[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC608[rip]
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC609[rip]
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC610[rip]
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC611[rip]
	movsd	QWORD PTR -32[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC612[rip]
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	xmm0, QWORD PTR -88[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jb	.L2979
	movsd	xmm0, QWORD PTR -32[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -88[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -88[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	mulsd	xmm0, QWORD PTR -88[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	call	exp@PLT
	movq	rax, xmm0
	movq	xmm0, rax
	mulsd	xmm0, QWORD PTR -24[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR -8[rbp]
	mulsd	xmm0, QWORD PTR -40[rbp]
	addsd	xmm0, QWORD PTR -48[rbp]
	mulsd	xmm0, QWORD PTR -8[rbp]
	addsd	xmm0, QWORD PTR -56[rbp]
	mulsd	xmm0, QWORD PTR -8[rbp]
	addsd	xmm0, QWORD PTR -64[rbp]
	mulsd	xmm0, QWORD PTR -8[rbp]
	addsd	xmm0, QWORD PTR -72[rbp]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, xmm1
	jmp	.L2977
.L2979:
	movsd	xmm0, QWORD PTR -32[rbp]
	movapd	xmm2, xmm0
	mulsd	xmm2, QWORD PTR -88[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	movapd	xmm1, xmm0
	subsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -88[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	mulsd	xmm0, QWORD PTR -88[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	call	exp@PLT
	movq	rax, xmm0
	movq	xmm0, rax
	mulsd	xmm0, QWORD PTR -24[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR -16[rbp]
	mulsd	xmm0, QWORD PTR -40[rbp]
	addsd	xmm0, QWORD PTR -48[rbp]
	mulsd	xmm0, QWORD PTR -16[rbp]
	addsd	xmm0, QWORD PTR -56[rbp]
	mulsd	xmm0, QWORD PTR -16[rbp]
	addsd	xmm0, QWORD PTR -64[rbp]
	mulsd	xmm0, QWORD PTR -16[rbp]
	addsd	xmm0, QWORD PTR -72[rbp]
	mulsd	xmm0, xmm1
.L2977:
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE624:
	.size	pnorm, .-pnorm
	.section	.rodata
.LC613:
	.string	"Out of memory\n"
.LC614:
	.string	"IS_ALIGNED(new)"
	.text
	.globl	mymalloc
	.type	mymalloc, @function
mymalloc:
.LFB625:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	cmp	QWORD PTR -24[rbp], 0
	jne	.L2981
	mov	eax, 0
	jmp	.L2982
.L2981:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L2983
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 14
	mov	esi, 1
	lea	rdi, .LC613[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L2983:
	mov	rax, QWORD PTR szAllAlloc[rip]
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR szAllAlloc[rip], rax
	mov	rax, QWORD PTR mymallocUsed[rip]
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR mymallocUsed[rip], rax
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 15
	test	rax, rax
	je	.L2984
	lea	rcx, __PRETTY_FUNCTION__.9[rip]
	mov	edx, 8724
	lea	rsi, .LC131[rip]
	lea	rdi, .LC614[rip]
	call	__assert_fail@PLT
.L2984:
	mov	rax, QWORD PTR -8[rbp]
.L2982:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE625:
	.size	mymalloc, .-mymalloc
	.globl	mymemdup
	.type	mymemdup, @function
mymemdup:
.LFB626:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	cmp	QWORD PTR -24[rbp], 0
	jne	.L2986
	mov	eax, 0
	jmp	.L2987
.L2986:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -8[rbp]
.L2987:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE626:
	.size	mymemdup, .-mymemdup
	.section	.rodata
.LC615:
	.string	"Empty myrealloc\n"
	.text
	.globl	myrealloc
	.type	myrealloc, @function
myrealloc:
.LFB627:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, ecx
	mov	BYTE PTR -44[rbp], al
	cmp	QWORD PTR -24[rbp], 0
	jne	.L2989
	cmp	QWORD PTR -32[rbp], 0
	jne	.L2989
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	mymalloc
	jmp	.L2990
.L2989:
	cmp	QWORD PTR -24[rbp], 0
	je	.L2991
	cmp	QWORD PTR -32[rbp], 0
	je	.L2991
	cmp	QWORD PTR -40[rbp], 0
	jne	.L2992
.L2991:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 16
	mov	esi, 1
	lea	rdi, .LC615[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L2992:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -40[rbp]
	jne	.L2993
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L2990
.L2993:
	mov	QWORD PTR -8[rbp], 0
	cmp	BYTE PTR -44[rbp], 0
	je	.L2994
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mymemdup
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	jmp	.L2995
.L2994:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L2996
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 14
	mov	esi, 1
	lea	rdi, .LC613[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L2996:
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 15
	test	rax, rax
	je	.L2997
	lea	rcx, __PRETTY_FUNCTION__.8[rip]
	mov	edx, 8756
	lea	rsi, .LC131[rip]
	lea	rdi, .LC614[rip]
	call	__assert_fail@PLT
.L2997:
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, QWORD PTR -32[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR szAllAlloc[rip]
	add	rax, rdx
	mov	QWORD PTR szAllAlloc[rip], rax
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, QWORD PTR -32[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR mymallocUsed[rip]
	add	rax, rdx
	mov	QWORD PTR mymallocUsed[rip], rax
.L2995:
	mov	rax, QWORD PTR -8[rbp]
.L2990:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE627:
	.size	myrealloc, .-myrealloc
	.globl	myfree
	.type	myfree, @function
myfree:
.LFB628:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	cmp	QWORD PTR -8[rbp], 0
	jne	.L2999
	mov	eax, 0
	jmp	.L3000
.L2999:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR mymallocUsed[rip]
	sub	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR mymallocUsed[rip], rax
	mov	eax, 0
.L3000:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE628:
	.size	myfree, .-myfree
	.globl	brent
	.type	brent, @function
brent:
.LFB629:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 288
	movsd	QWORD PTR -200[rbp], xmm0
	movsd	QWORD PTR -208[rbp], xmm1
	movsd	QWORD PTR -216[rbp], xmm2
	mov	QWORD PTR -224[rbp], rdi
	mov	QWORD PTR -232[rbp], rsi
	movsd	QWORD PTR -240[rbp], xmm3
	movsd	QWORD PTR -248[rbp], xmm4
	mov	QWORD PTR -256[rbp], rdx
	mov	QWORD PTR -264[rbp], rcx
	movsd	QWORD PTR -272[rbp], xmm5
	movsd	QWORD PTR -280[rbp], xmm6
	movsd	QWORD PTR -288[rbp], xmm7
	pxor	xmm0, xmm0
	movsd	QWORD PTR -160[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -96[rbp], xmm0
	movsd	xmm0, QWORD PTR -216[rbp]
	comisd	xmm0, QWORD PTR -200[rbp]
	jbe	.L3072
	movsd	xmm0, QWORD PTR -200[rbp]
	jmp	.L3004
.L3072:
	movsd	xmm0, QWORD PTR -216[rbp]
.L3004:
	movsd	QWORD PTR -176[rbp], xmm0
	movsd	xmm0, QWORD PTR -200[rbp]
	comisd	xmm0, QWORD PTR -216[rbp]
	jbe	.L3073
	movsd	xmm0, QWORD PTR -200[rbp]
	jmp	.L3007
.L3073:
	movsd	xmm0, QWORD PTR -216[rbp]
.L3007:
	movsd	QWORD PTR -168[rbp], xmm0
	movsd	xmm0, QWORD PTR -208[rbp]
	movsd	QWORD PTR -104[rbp], xmm0
	movsd	xmm0, QWORD PTR -280[rbp]
	movsd	QWORD PTR -136[rbp], xmm0
	movsd	xmm0, QWORD PTR -288[rbp]
	comisd	xmm0, QWORD PTR -272[rbp]
	jbe	.L3074
	movsd	xmm0, QWORD PTR -200[rbp]
	movsd	QWORD PTR -112[rbp], xmm0
	movsd	xmm0, QWORD PTR -272[rbp]
	movsd	QWORD PTR -144[rbp], xmm0
	movsd	xmm0, QWORD PTR -216[rbp]
	movsd	QWORD PTR -120[rbp], xmm0
	movsd	xmm0, QWORD PTR -288[rbp]
	movsd	QWORD PTR -152[rbp], xmm0
	jmp	.L3010
.L3074:
	movsd	xmm0, QWORD PTR -216[rbp]
	movsd	QWORD PTR -112[rbp], xmm0
	movsd	xmm0, QWORD PTR -288[rbp]
	movsd	QWORD PTR -144[rbp], xmm0
	movsd	xmm0, QWORD PTR -200[rbp]
	movsd	QWORD PTR -120[rbp], xmm0
	movsd	xmm0, QWORD PTR -272[rbp]
	movsd	QWORD PTR -152[rbp], xmm0
.L3010:
	mov	DWORD PTR -180[rbp], 1
	jmp	.L3011
.L3057:
	movsd	xmm0, QWORD PTR -176[rbp]
	movapd	xmm1, xmm0
	addsd	xmm1, QWORD PTR -168[rbp]
	movsd	xmm0, QWORD PTR .LC18[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -64[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -240[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm1, QWORD PTR -56[rbp]
	movsd	xmm0, QWORD PTR .LC344[rip]
	addsd	xmm0, xmm1
	addsd	xmm0, xmm0
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	subsd	xmm0, QWORD PTR -64[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -168[rbp]
	movapd	xmm2, xmm0
	subsd	xmm2, QWORD PTR -176[rbp]
	movsd	xmm0, QWORD PTR .LC18[rip]
	mulsd	xmm2, xmm0
	movsd	xmm0, QWORD PTR -48[rbp]
	subsd	xmm0, xmm2
	comisd	xmm0, xmm1
	jnb	.L3012
	movsd	xmm0, QWORD PTR -176[rbp]
	subsd	xmm0, QWORD PTR -168[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -248[rbp]
	comisd	xmm0, xmm1
	jbe	.L3075
.L3012:
	mov	rax, QWORD PTR -256[rbp]
	movsd	xmm0, QWORD PTR -136[rbp]
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	subsd	xmm0, QWORD PTR -112[rbp]
	movsd	QWORD PTR -88[rbp], xmm0
	movsd	xmm0, QWORD PTR -112[rbp]
	subsd	xmm0, QWORD PTR -120[rbp]
	movsd	QWORD PTR -80[rbp], xmm0
	movsd	xmm0, QWORD PTR -120[rbp]
	subsd	xmm0, QWORD PTR -104[rbp]
	movsd	QWORD PTR -72[rbp], xmm0
	movsd	xmm0, QWORD PTR -152[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -88[rbp]
	movsd	xmm0, QWORD PTR -136[rbp]
	mulsd	xmm0, QWORD PTR -80[rbp]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -144[rbp]
	mulsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, xmm1
	movapd	xmm1, xmm0
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -120[rbp]
	mulsd	xmm0, xmm0
	movapd	xmm2, xmm0
	mulsd	xmm2, QWORD PTR -88[rbp]
	movsd	xmm0, QWORD PTR -104[rbp]
	mulsd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -80[rbp]
	addsd	xmm2, xmm0
	movsd	xmm0, QWORD PTR -112[rbp]
	mulsd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm2, xmm0
	divsd	xmm1, xmm2
	movapd	xmm0, xmm1
	mov	rax, QWORD PTR -264[rbp]
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	jmp	.L3015
.L3075:
	movsd	xmm0, QWORD PTR -96[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	comisd	xmm0, QWORD PTR -56[rbp]
	jbe	.L3076
	movsd	xmm0, QWORD PTR -104[rbp]
	movapd	xmm1, xmm0
	subsd	xmm1, QWORD PTR -112[rbp]
	movsd	xmm0, QWORD PTR -136[rbp]
	subsd	xmm0, QWORD PTR -152[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	movapd	xmm1, xmm0
	subsd	xmm1, QWORD PTR -120[rbp]
	movsd	xmm0, QWORD PTR -136[rbp]
	subsd	xmm0, QWORD PTR -144[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	subsd	xmm0, QWORD PTR -120[rbp]
	mulsd	xmm0, QWORD PTR -32[rbp]
	movsd	xmm1, QWORD PTR -104[rbp]
	subsd	xmm1, QWORD PTR -112[rbp]
	mulsd	xmm1, QWORD PTR -40[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -128[rbp], xmm0
	movsd	xmm0, QWORD PTR -32[rbp]
	subsd	xmm0, QWORD PTR -40[rbp]
	addsd	xmm0, xmm0
	movsd	QWORD PTR -32[rbp], xmm0
	movsd	xmm0, QWORD PTR -32[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L3018
	movsd	xmm0, QWORD PTR -128[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	movsd	QWORD PTR -128[rbp], xmm0
.L3018:
	movsd	xmm0, QWORD PTR -32[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	movsd	xmm0, QWORD PTR -96[rbp]
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	xmm0, QWORD PTR -160[rbp]
	movsd	QWORD PTR -96[rbp], xmm0
	movsd	xmm0, QWORD PTR -128[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	movsd	xmm2, QWORD PTR -32[rbp]
	movsd	xmm1, QWORD PTR .LC18[rip]
	mulsd	xmm1, xmm2
	mulsd	xmm1, QWORD PTR -24[rbp]
	movq	xmm2, QWORD PTR .LC80[rip]
	andpd	xmm1, xmm2
	comisd	xmm0, xmm1
	jnb	.L3020
	movsd	xmm0, QWORD PTR -176[rbp]
	subsd	xmm0, QWORD PTR -104[rbp]
	mulsd	xmm0, QWORD PTR -32[rbp]
	comisd	xmm0, QWORD PTR -128[rbp]
	jnb	.L3020
	movsd	xmm0, QWORD PTR -168[rbp]
	subsd	xmm0, QWORD PTR -104[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -32[rbp]
	movsd	xmm0, QWORD PTR -128[rbp]
	comisd	xmm0, xmm1
	jb	.L3077
.L3020:
	movsd	xmm0, QWORD PTR -104[rbp]
	comisd	xmm0, QWORD PTR -64[rbp]
	jb	.L3078
	movsd	xmm0, QWORD PTR -176[rbp]
	subsd	xmm0, QWORD PTR -104[rbp]
	jmp	.L3025
.L3078:
	movsd	xmm0, QWORD PTR -168[rbp]
	subsd	xmm0, QWORD PTR -104[rbp]
.L3025:
	movsd	QWORD PTR -96[rbp], xmm0
	movsd	xmm1, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR .LC616[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -160[rbp], xmm0
	jmp	.L3032
.L3077:
	movsd	xmm0, QWORD PTR -128[rbp]
	divsd	xmm0, QWORD PTR -32[rbp]
	movsd	QWORD PTR -160[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	addsd	xmm0, QWORD PTR -160[rbp]
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	movapd	xmm1, xmm0
	subsd	xmm1, QWORD PTR -176[rbp]
	movsd	xmm0, QWORD PTR -48[rbp]
	comisd	xmm0, xmm1
	ja	.L3027
	movsd	xmm0, QWORD PTR -168[rbp]
	movapd	xmm1, xmm0
	subsd	xmm1, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR -48[rbp]
	comisd	xmm0, xmm1
	jbe	.L3032
.L3027:
	movsd	xmm0, QWORD PTR -64[rbp]
	subsd	xmm0, QWORD PTR -104[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jb	.L3079
	movsd	xmm0, QWORD PTR -56[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	jmp	.L3031
.L3079:
	movsd	xmm0, QWORD PTR -56[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
.L3031:
	movsd	QWORD PTR -160[rbp], xmm0
	jmp	.L3032
.L3076:
	movsd	xmm0, QWORD PTR -104[rbp]
	comisd	xmm0, QWORD PTR -64[rbp]
	jb	.L3080
	movsd	xmm0, QWORD PTR -176[rbp]
	subsd	xmm0, QWORD PTR -104[rbp]
	jmp	.L3035
.L3080:
	movsd	xmm0, QWORD PTR -168[rbp]
	subsd	xmm0, QWORD PTR -104[rbp]
.L3035:
	movsd	QWORD PTR -96[rbp], xmm0
	movsd	xmm1, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR .LC616[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -160[rbp], xmm0
.L3032:
	movsd	xmm0, QWORD PTR -160[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	comisd	xmm0, QWORD PTR -56[rbp]
	jb	.L3081
	movsd	xmm0, QWORD PTR -104[rbp]
	addsd	xmm0, QWORD PTR -160[rbp]
	jmp	.L3038
.L3081:
	movsd	xmm0, QWORD PTR -160[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jb	.L3082
	movsd	xmm0, QWORD PTR -56[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	jmp	.L3041
.L3082:
	movsd	xmm0, QWORD PTR -56[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
.L3041:
	addsd	xmm0, QWORD PTR -104[rbp]
.L3038:
	movsd	QWORD PTR -16[rbp], xmm0
	mov	rdx, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -224[rbp]
	mov	rdi, rdx
	movq	xmm0, rax
	call	rcx
	movq	rax, xmm0
	mov	QWORD PTR -8[rbp], rax
	movsd	xmm0, QWORD PTR -136[rbp]
	comisd	xmm0, QWORD PTR -8[rbp]
	jb	.L3083
	movsd	xmm0, QWORD PTR -16[rbp]
	comisd	xmm0, QWORD PTR -104[rbp]
	jb	.L3084
	movsd	xmm0, QWORD PTR -104[rbp]
	movsd	QWORD PTR -176[rbp], xmm0
	jmp	.L3046
.L3084:
	movsd	xmm0, QWORD PTR -104[rbp]
	movsd	QWORD PTR -168[rbp], xmm0
.L3046:
	movsd	xmm0, QWORD PTR -112[rbp]
	movsd	QWORD PTR -120[rbp], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	movsd	QWORD PTR -112[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	movsd	QWORD PTR -104[rbp], xmm0
	movsd	xmm0, QWORD PTR -144[rbp]
	movsd	QWORD PTR -152[rbp], xmm0
	movsd	xmm0, QWORD PTR -136[rbp]
	movsd	QWORD PTR -144[rbp], xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR -136[rbp], xmm0
	jmp	.L3047
.L3083:
	movsd	xmm0, QWORD PTR -104[rbp]
	comisd	xmm0, QWORD PTR -16[rbp]
	jbe	.L3085
	movsd	xmm0, QWORD PTR -16[rbp]
	movsd	QWORD PTR -176[rbp], xmm0
	jmp	.L3050
.L3085:
	movsd	xmm0, QWORD PTR -16[rbp]
	movsd	QWORD PTR -168[rbp], xmm0
.L3050:
	movsd	xmm0, QWORD PTR -144[rbp]
	comisd	xmm0, QWORD PTR -8[rbp]
	jnb	.L3051
	movsd	xmm0, QWORD PTR -112[rbp]
	ucomisd	xmm0, QWORD PTR -104[rbp]
	jp	.L3052
	movsd	xmm0, QWORD PTR -112[rbp]
	ucomisd	xmm0, QWORD PTR -104[rbp]
	jne	.L3052
.L3051:
	movsd	xmm0, QWORD PTR -112[rbp]
	movsd	QWORD PTR -120[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	movsd	QWORD PTR -112[rbp], xmm0
	movsd	xmm0, QWORD PTR -144[rbp]
	movsd	QWORD PTR -152[rbp], xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR -144[rbp], xmm0
	jmp	.L3047
.L3052:
	movsd	xmm0, QWORD PTR -152[rbp]
	comisd	xmm0, QWORD PTR -8[rbp]
	jnb	.L3054
	movsd	xmm0, QWORD PTR -120[rbp]
	ucomisd	xmm0, QWORD PTR -104[rbp]
	jp	.L3071
	movsd	xmm0, QWORD PTR -120[rbp]
	ucomisd	xmm0, QWORD PTR -104[rbp]
	je	.L3054
.L3071:
	movsd	xmm0, QWORD PTR -120[rbp]
	ucomisd	xmm0, QWORD PTR -112[rbp]
	jp	.L3047
	movsd	xmm0, QWORD PTR -120[rbp]
	ucomisd	xmm0, QWORD PTR -112[rbp]
	jne	.L3047
.L3054:
	movsd	xmm0, QWORD PTR -16[rbp]
	movsd	QWORD PTR -120[rbp], xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR -152[rbp], xmm0
.L3047:
	add	DWORD PTR -180[rbp], 1
.L3011:
	cmp	DWORD PTR -180[rbp], 100
	jle	.L3057
	mov	rax, QWORD PTR -256[rbp]
	movsd	xmm0, QWORD PTR -136[rbp]
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
	subsd	xmm0, QWORD PTR -112[rbp]
	movsd	QWORD PTR -88[rbp], xmm0
	movsd	xmm0, QWORD PTR -112[rbp]
	subsd	xmm0, QWORD PTR -120[rbp]
	movsd	QWORD PTR -80[rbp], xmm0
	movsd	xmm0, QWORD PTR -120[rbp]
	subsd	xmm0, QWORD PTR -104[rbp]
	movsd	QWORD PTR -72[rbp], xmm0
	movsd	xmm0, QWORD PTR -152[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -88[rbp]
	movsd	xmm0, QWORD PTR -136[rbp]
	mulsd	xmm0, QWORD PTR -80[rbp]
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -144[rbp]
	mulsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, xmm1
	movapd	xmm1, xmm0
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -120[rbp]
	mulsd	xmm0, xmm0
	movapd	xmm2, xmm0
	mulsd	xmm2, QWORD PTR -88[rbp]
	movsd	xmm0, QWORD PTR -104[rbp]
	mulsd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -80[rbp]
	addsd	xmm2, xmm0
	movsd	xmm0, QWORD PTR -112[rbp]
	mulsd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm2, xmm0
	divsd	xmm1, xmm2
	movapd	xmm0, xmm1
	mov	rax, QWORD PTR -264[rbp]
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -104[rbp]
.L3015:
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE629:
	.size	brent, .-brent
	.section	.rodata
	.align 8
.LC618:
	.string	"onedimenmin lo %.4f guess %.4f hi %.4f range %.4f %.4f\n"
	.align 8
.LC620:
	.string	"onedimenmin reaches optimum f(%.4f) = %.4f f2x %.4f\n"
	.text
	.globl	onedimenmin
	.type	onedimenmin, @function
onedimenmin:
.LFB630:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 144
	movsd	QWORD PTR -72[rbp], xmm0
	movsd	QWORD PTR -80[rbp], xmm1
	movsd	QWORD PTR -88[rbp], xmm2
	mov	QWORD PTR -96[rbp], rdi
	mov	QWORD PTR -104[rbp], rsi
	movsd	QWORD PTR -112[rbp], xmm3
	movsd	QWORD PTR -120[rbp], xmm4
	mov	QWORD PTR -128[rbp], rdx
	mov	QWORD PTR -136[rbp], rcx
	movsd	xmm0, QWORD PTR -80[rbp]
	ucomisd	xmm0, QWORD PTR -72[rbp]
	jp	.L3087
	movsd	xmm0, QWORD PTR -80[rbp]
	ucomisd	xmm0, QWORD PTR -72[rbp]
	jne	.L3087
	movsd	xmm0, QWORD PTR -72[rbp]
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR -80[rbp]
	addsd	xmm0, xmm0
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm1, QWORD PTR -80[rbp]
	movsd	xmm0, QWORD PTR .LC332[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -40[rbp], xmm0
	jmp	.L3089
.L3087:
	movsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, xmm0
	comisd	xmm0, QWORD PTR -80[rbp]
	jb	.L3119
	movsd	xmm0, QWORD PTR -72[rbp]
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR -80[rbp]
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm1, QWORD PTR -80[rbp]
	movsd	xmm0, QWORD PTR .LC617[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -40[rbp], xmm0
	jmp	.L3089
.L3119:
	movsd	xmm1, QWORD PTR -80[rbp]
	movsd	xmm0, QWORD PTR .LC18[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR -80[rbp]
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR -80[rbp]
	addsd	xmm0, xmm0
	movsd	QWORD PTR -40[rbp], xmm0
.L3089:
	movsd	xmm0, QWORD PTR -40[rbp]
	comisd	xmm0, QWORD PTR -88[rbp]
	jbe	.L3092
	movsd	xmm0, QWORD PTR -88[rbp]
	movsd	QWORD PTR -40[rbp], xmm0
.L3092:
	movsd	xmm0, QWORD PTR -48[rbp]
	comisd	xmm0, QWORD PTR -40[rbp]
	jb	.L3094
	movsd	xmm0, QWORD PTR -56[rbp]
	movapd	xmm1, xmm0
	addsd	xmm1, QWORD PTR -40[rbp]
	movsd	xmm0, QWORD PTR .LC18[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
.L3094:
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 4
	jle	.L3096
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm3, QWORD PTR -88[rbp]
	movsd	xmm2, QWORD PTR -72[rbp]
	movsd	xmm1, QWORD PTR -40[rbp]
	movsd	xmm0, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC618[rip]
	mov	rdi, rax
	mov	eax, 5
	call	fprintf@PLT
.L3096:
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -96[rbp]
	mov	rdi, rdx
	movq	xmm0, rax
	call	rcx
	movq	rax, xmm0
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -96[rbp]
	mov	rdi, rdx
	movq	xmm0, rax
	call	rcx
	movq	rax, xmm0
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -96[rbp]
	mov	rdi, rdx
	movq	xmm0, rax
	call	rcx
	movq	rax, xmm0
	mov	QWORD PTR -24[rbp], rax
	jmp	.L3097
.L3102:
	movsd	xmm0, QWORD PTR -56[rbp]
	addsd	xmm0, QWORD PTR -72[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, xmm0
	comisd	xmm0, QWORD PTR -56[rbp]
	jbe	.L3098
	movsd	xmm0, QWORD PTR -72[rbp]
	movsd	QWORD PTR -56[rbp], xmm0
.L3098:
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -96[rbp]
	mov	rdi, rdx
	movq	xmm0, rax
	call	rcx
	movq	rax, xmm0
	mov	QWORD PTR -32[rbp], rax
.L3097:
	movsd	xmm0, QWORD PTR -16[rbp]
	comisd	xmm0, QWORD PTR -32[rbp]
	jbe	.L3100
	movsd	xmm0, QWORD PTR -56[rbp]
	comisd	xmm0, QWORD PTR -72[rbp]
	ja	.L3102
.L3100:
	jmp	.L3103
.L3108:
	movsd	xmm0, QWORD PTR -40[rbp]
	addsd	xmm0, QWORD PTR -88[rbp]
	movsd	xmm1, QWORD PTR .LC218[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm1, QWORD PTR -88[rbp]
	movsd	xmm0, QWORD PTR .LC619[rip]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	comisd	xmm0, xmm1
	jbe	.L3104
	movsd	xmm0, QWORD PTR -88[rbp]
	movsd	QWORD PTR -40[rbp], xmm0
.L3104:
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -96[rbp]
	mov	rdi, rdx
	movq	xmm0, rax
	call	rcx
	movq	rax, xmm0
	mov	QWORD PTR -24[rbp], rax
.L3103:
	movsd	xmm0, QWORD PTR -16[rbp]
	comisd	xmm0, QWORD PTR -24[rbp]
	jbe	.L3106
	movsd	xmm0, QWORD PTR -88[rbp]
	comisd	xmm0, QWORD PTR -40[rbp]
	ja	.L3108
.L3106:
	movsd	xmm6, QWORD PTR -24[rbp]
	movsd	xmm5, QWORD PTR -16[rbp]
	movsd	xmm4, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR -128[rbp]
	movsd	xmm3, QWORD PTR -120[rbp]
	movsd	xmm2, QWORD PTR -112[rbp]
	mov	rsi, QWORD PTR -104[rbp]
	mov	rdi, QWORD PTR -96[rbp]
	movsd	xmm1, QWORD PTR -40[rbp]
	movsd	xmm0, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	movapd	xmm7, xmm6
	movapd	xmm6, xmm5
	movapd	xmm5, xmm4
	movapd	xmm4, xmm3
	movapd	xmm3, xmm2
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	brent
	movq	rax, xmm0
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 4
	jle	.L3109
	mov	rax, QWORD PTR -136[rbp]
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -8[rbp]
	movapd	xmm2, xmm1
	movapd	xmm1, xmm0
	movq	xmm0, rdx
	lea	rsi, .LC620[rip]
	mov	rdi, rax
	mov	eax, 3
	call	fprintf@PLT
.L3109:
	movsd	xmm0, QWORD PTR -8[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE630:
	.size	onedimenmin, .-onedimenmin
	.globl	LnGamma
	.type	LnGamma, @function
LnGamma:
.LFB631:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	movsd	QWORD PTR -24[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC621[rip]
	comisd	xmm0, QWORD PTR -24[rbp]
	jbe	.L3121
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR .LC4[rip]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	jmp	.L3123
.L3124:
	movsd	xmm0, QWORD PTR -16[rbp]
	mulsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR -16[rbp], xmm0
.L3123:
	movsd	xmm1, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC621[rip]
	comisd	xmm0, QWORD PTR -8[rbp]
	ja	.L3124
	movsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	movq	xmm0, rax
	call	log@PLT
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC426[rip]
	movq	xmm3, rax
	xorpd	xmm3, xmm0
	movapd	xmm0, xmm3
	movsd	QWORD PTR -16[rbp], xmm0
.L3121:
	movsd	xmm0, QWORD PTR -24[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR .LC18[rip]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	mov	rax, QWORD PTR -24[rbp]
	movq	xmm0, rax
	call	log@PLT
	mulsd	xmm0, QWORD PTR -48[rbp]
	addsd	xmm0, QWORD PTR -16[rbp]
	movapd	xmm1, xmm0
	subsd	xmm1, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR .LC622[rip]
	addsd	xmm1, xmm0
	movsd	xmm2, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC623[rip]
	mulsd	xmm2, xmm0
	movsd	xmm0, QWORD PTR .LC624[rip]
	addsd	xmm0, xmm2
	mulsd	xmm0, QWORD PTR -8[rbp]
	movsd	xmm2, QWORD PTR .LC625[rip]
	subsd	xmm0, xmm2
	movapd	xmm2, xmm0
	mulsd	xmm2, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC626[rip]
	addsd	xmm0, xmm2
	divsd	xmm0, QWORD PTR -24[rbp]
	addsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE631:
	.size	LnGamma, .-LnGamma
	.globl	IncompleteGamma
	.type	IncompleteGamma, @function
IncompleteGamma:
.LFB632:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	movsd	QWORD PTR -184[rbp], xmm0
	movsd	QWORD PTR -192[rbp], xmm1
	movsd	QWORD PTR -200[rbp], xmm2
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movsd	xmm0, QWORD PTR -192[rbp]
	movsd	QWORD PTR -120[rbp], xmm0
	movsd	xmm0, QWORD PTR -200[rbp]
	movsd	QWORD PTR -112[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC627[rip]
	movsd	QWORD PTR -104[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC628[rip]
	movsd	QWORD PTR -96[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -160[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -152[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -144[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -136[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -88[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -80[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -128[rbp], xmm0
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -184[rbp]
	jp	.L3128
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -184[rbp]
	jne	.L3128
	pxor	xmm0, xmm0
	jmp	.L3159
.L3128:
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -184[rbp]
	ja	.L3131
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -120[rbp]
	jb	.L3165
.L3131:
	movsd	xmm0, QWORD PTR .LC222[rip]
	jmp	.L3159
.L3165:
	mov	rax, QWORD PTR -184[rbp]
	movq	xmm0, rax
	call	log@PLT
	movq	rax, xmm0
	movq	xmm0, rax
	mulsd	xmm0, QWORD PTR -120[rbp]
	subsd	xmm0, QWORD PTR -184[rbp]
	subsd	xmm0, QWORD PTR -112[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	call	exp@PLT
	movq	rax, xmm0
	mov	QWORD PTR -72[rbp], rax
	movsd	xmm0, QWORD PTR -184[rbp]
	movsd	xmm1, QWORD PTR .LC4[rip]
	comisd	xmm0, xmm1
	jbe	.L3134
	movsd	xmm0, QWORD PTR -184[rbp]
	comisd	xmm0, QWORD PTR -120[rbp]
	jnb	.L3168
.L3134:
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -160[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -128[rbp], xmm0
	movsd	xmm0, QWORD PTR -120[rbp]
	movsd	QWORD PTR -152[rbp], xmm0
.L3138:
	movsd	xmm1, QWORD PTR -152[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -152[rbp], xmm0
	movsd	xmm0, QWORD PTR -184[rbp]
	divsd	xmm0, QWORD PTR -152[rbp]
	movsd	xmm1, QWORD PTR -128[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -128[rbp], xmm0
	movsd	xmm0, QWORD PTR -160[rbp]
	addsd	xmm0, QWORD PTR -128[rbp]
	movsd	QWORD PTR -160[rbp], xmm0
	movsd	xmm0, QWORD PTR -128[rbp]
	comisd	xmm0, QWORD PTR -104[rbp]
	jbe	.L3166
	jmp	.L3138
.L3166:
	movsd	xmm0, QWORD PTR -72[rbp]
	divsd	xmm0, QWORD PTR -120[rbp]
	movsd	xmm1, QWORD PTR -160[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -160[rbp], xmm0
	jmp	.L3141
.L3168:
	nop
.L3137:
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, QWORD PTR -120[rbp]
	movsd	QWORD PTR -144[rbp], xmm0
	movsd	xmm0, QWORD PTR -144[rbp]
	movapd	xmm1, xmm0
	addsd	xmm1, QWORD PTR -184[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -136[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -128[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -64[rbp], xmm0
	movsd	xmm0, QWORD PTR -184[rbp]
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm1, QWORD PTR -184[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	movsd	xmm0, QWORD PTR -184[rbp]
	mulsd	xmm0, QWORD PTR -136[rbp]
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm0, QWORD PTR -48[rbp]
	movsd	xmm1, QWORD PTR -40[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -160[rbp], xmm0
.L3142:
	movsd	xmm1, QWORD PTR -144[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -144[rbp], xmm0
	movsd	xmm1, QWORD PTR -136[rbp]
	movsd	xmm0, QWORD PTR .LC218[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -136[rbp], xmm0
	movsd	xmm1, QWORD PTR -128[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -128[rbp], xmm0
	movsd	xmm0, QWORD PTR -144[rbp]
	mulsd	xmm0, QWORD PTR -128[rbp]
	movsd	QWORD PTR -88[rbp], xmm0
	mov	DWORD PTR -164[rbp], 0
	jmp	.L3143
.L3144:
	mov	eax, DWORD PTR -164[rbp]
	add	eax, 2
	cdqe
	movsd	xmm0, QWORD PTR -64[rbp+rax*8]
	mulsd	xmm0, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -64[rbp+rax*8]
	mulsd	xmm1, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR -164[rbp]
	add	eax, 4
	subsd	xmm0, xmm1
	cdqe
	movsd	QWORD PTR -64[rbp+rax*8], xmm0
	add	DWORD PTR -164[rbp], 1
.L3143:
	cmp	DWORD PTR -164[rbp], 1
	jle	.L3144
	movsd	xmm0, QWORD PTR -24[rbp]
	pxor	xmm1, xmm1
	ucomisd	xmm0, xmm1
	jp	.L3145
	pxor	xmm1, xmm1
	ucomisd	xmm0, xmm1
	je	.L3169
.L3145:
	movsd	xmm0, QWORD PTR -32[rbp]
	movsd	xmm1, QWORD PTR -24[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -152[rbp], xmm0
	movsd	xmm0, QWORD PTR -160[rbp]
	subsd	xmm0, QWORD PTR -152[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	movsd	QWORD PTR -80[rbp], xmm0
	movsd	xmm0, QWORD PTR -80[rbp]
	comisd	xmm0, QWORD PTR -104[rbp]
	ja	.L3170
	movsd	xmm0, QWORD PTR -104[rbp]
	mulsd	xmm0, QWORD PTR -152[rbp]
	comisd	xmm0, QWORD PTR -80[rbp]
	jnb	.L3171
	jmp	.L3150
.L3170:
	nop
.L3150:
	movsd	xmm0, QWORD PTR -152[rbp]
	movsd	QWORD PTR -160[rbp], xmm0
	jmp	.L3147
.L3169:
	nop
.L3147:
	mov	DWORD PTR -164[rbp], 0
	jmp	.L3153
.L3154:
	mov	eax, DWORD PTR -164[rbp]
	add	eax, 2
	cdqe
	movsd	xmm0, QWORD PTR -64[rbp+rax*8]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	movsd	QWORD PTR -64[rbp+rax*8], xmm0
	add	DWORD PTR -164[rbp], 1
.L3153:
	cmp	DWORD PTR -164[rbp], 3
	jle	.L3154
	movsd	xmm0, QWORD PTR -32[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -96[rbp]
	comisd	xmm0, xmm1
	jbe	.L3167
	jmp	.L3142
.L3167:
	mov	DWORD PTR -164[rbp], 0
	jmp	.L3157
.L3158:
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -64[rbp+rax*8]
	divsd	xmm0, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	movsd	QWORD PTR -64[rbp+rax*8], xmm0
	add	DWORD PTR -164[rbp], 1
.L3157:
	cmp	DWORD PTR -164[rbp], 3
	jle	.L3158
	jmp	.L3142
.L3171:
	nop
.L3152:
	movsd	xmm0, QWORD PTR -72[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -160[rbp]
	movsd	xmm0, QWORD PTR .LC4[rip]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -160[rbp], xmm0
.L3141:
	movsd	xmm0, QWORD PTR -160[rbp]
.L3159:
	movq	rax, xmm0
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L3160
	call	__stack_chk_fail@PLT
.L3160:
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE632:
	.size	IncompleteGamma, .-IncompleteGamma
	.globl	PGamma
	.type	PGamma, @function
PGamma:
.LFB633:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	QWORD PTR -16[rbp], xmm1
	mov	rax, QWORD PTR -16[rbp]
	movq	xmm0, rax
	call	LnGamma
	movq	rdx, xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	mulsd	xmm0, QWORD PTR -16[rbp]
	movq	rax, xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	movq	xmm2, rdx
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	IncompleteGamma
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE633:
	.size	PGamma, .-PGamma
	.globl	timeval_subtract
	.type	timeval_subtract, @function
timeval_subtract:
.LFB634:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rdx, rax
	jge	.L3175
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, rdx
	sub	rcx, rax
	movabs	rdx, 4835703278458516699
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 18
	sar	rcx, 63
	mov	rdx, rcx
	sub	rax, rdx
	add	eax, 1
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	edx, DWORD PTR -8[rbp]
	imul	edx, edx, 1000000
	movsx	rcx, edx
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
.L3175:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, rdx
	sub	rax, rcx
	cmp	rax, 1000000
	jle	.L3176
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, rdx
	sub	rcx, rax
	movabs	rdx, 4835703278458516699
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 18
	sar	rcx, 63
	mov	rdx, rcx
	sub	rax, rdx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -4[rbp]
	imul	eax, eax, 1000000
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -4[rbp]
	movsx	rcx, edx
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
.L3176:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	sub	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	sub	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	rdx, rax
	setl	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE634:
	.size	timeval_subtract, .-timeval_subtract
	.globl	clockDiff
	.type	clockDiff, @function
clockDiff:
.LFB635:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -48[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	gettimeofday@PLT
	mov	rdx, QWORD PTR -56[rbp]
	lea	rcx, -48[rbp]
	lea	rax, -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	timeval_subtract
	mov	rax, QWORD PTR -32[rbp]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	mov	rax, QWORD PTR -24[rbp]
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, rax
	movsd	xmm0, QWORD PTR .LC374[rip]
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	movq	rax, xmm0
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3180
	call	__stack_chk_fail@PLT
.L3180:
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE635:
	.size	clockDiff, .-clockDiff
	.globl	ran_x
	.bss
	.align 32
	.type	ran_x, @object
	.size	ran_x, 800
ran_x:
	.zero	800
	.text
	.globl	ran_array
	.type	ran_array, @function
ran_array:
.LFB636:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	ebx, 0
	jmp	.L3182
.L3183:
	movsx	rax, ebx
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	movsx	rax, ebx
	lea	rcx, 0[0+rax*8]
	lea	rax, ran_x[rip]
	mov	rax, QWORD PTR [rcx+rax]
	mov	QWORD PTR [rdx], rax
	add	ebx, 1
.L3182:
	cmp	ebx, 99
	jle	.L3183
	jmp	.L3184
.L3185:
	movsx	rax, ebx
	sal	rax, 3
	lea	rdx, -800[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsx	rdx, ebx
	sal	rdx, 3
	lea	rcx, -296[rdx]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	mov	rcx, QWORD PTR [rdx]
	sub	rax, rcx
	mov	rdx, rax
	movsx	rax, ebx
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	and	edx, 1073741823
	mov	QWORD PTR [rax], rdx
	add	ebx, 1
.L3184:
	cmp	ebx, DWORD PTR -28[rbp]
	jl	.L3185
	mov	r12d, 0
	jmp	.L3186
.L3187:
	movsx	rax, ebx
	sal	rax, 3
	lea	rdx, -800[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsx	rdx, ebx
	sal	rdx, 3
	lea	rcx, -296[rdx]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	mov	rdx, QWORD PTR [rdx]
	sub	rax, rdx
	and	eax, 1073741823
	mov	rcx, rax
	movsx	rax, r12d
	lea	rdx, 0[0+rax*8]
	lea	rax, ran_x[rip]
	mov	QWORD PTR [rdx+rax], rcx
	add	r12d, 1
	add	ebx, 1
.L3186:
	cmp	r12d, 36
	jle	.L3187
	jmp	.L3188
.L3189:
	movsx	rax, ebx
	sal	rax, 3
	lea	rdx, -800[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	edx, -37[r12]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, ran_x[rip]
	mov	rdx, QWORD PTR [rcx+rdx]
	sub	rax, rdx
	and	eax, 1073741823
	mov	rcx, rax
	movsx	rax, r12d
	lea	rdx, 0[0+rax*8]
	lea	rax, ran_x[rip]
	mov	QWORD PTR [rdx+rax], rcx
	add	r12d, 1
	add	ebx, 1
.L3188:
	cmp	r12d, 99
	jle	.L3189
	nop
	nop
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE636:
	.size	ran_array, .-ran_array
	.globl	ran_arr_buf
	.bss
	.align 32
	.type	ran_arr_buf, @object
	.size	ran_arr_buf, 8072
ran_arr_buf:
	.zero	8072
	.globl	ran_arr_dummy
	.data
	.align 8
	.type	ran_arr_dummy, @object
	.size	ran_arr_dummy, 8
ran_arr_dummy:
	.quad	-1
	.globl	ran_arr_started
	.align 8
	.type	ran_arr_started, @object
	.size	ran_arr_started, 8
ran_arr_started:
	.quad	-1
	.globl	ran_arr_ptr
	.section	.data.rel.local
	.align 8
	.type	ran_arr_ptr, @object
	.size	ran_arr_ptr, 8
ran_arr_ptr:
	.quad	ran_arr_dummy
	.text
	.globl	ran_start
	.type	ran_start, @function
ran_start:
.LFB637:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r13
	push	r12
	push	rbx
	sub	rsp, 1624
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	QWORD PTR -1640[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1640[rbp]
	add	rax, 2
	and	eax, 1073741822
	mov	r12, rax
	mov	ebx, 0
	jmp	.L3191
.L3193:
	movsx	rax, ebx
	mov	QWORD PTR -1632[rbp+rax*8], r12
	add	r12, r12
	cmp	r12, 1073741823
	jle	.L3192
	sub	r12, 1073741822
.L3192:
	add	ebx, 1
.L3191:
	cmp	ebx, 99
	jle	.L3193
	mov	rax, QWORD PTR -1624[rbp]
	add	rax, 1
	mov	QWORD PTR -1624[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	and	eax, 1073741823
	mov	r12, rax
	mov	r13d, 69
	jmp	.L3194
.L3203:
	mov	ebx, 99
	jmp	.L3195
.L3196:
	lea	ecx, [rbx+rbx]
	movsx	rax, ebx
	mov	rdx, QWORD PTR -1632[rbp+rax*8]
	movsx	rax, ecx
	mov	QWORD PTR -1632[rbp+rax*8], rdx
	lea	eax, [rbx+rbx]
	sub	eax, 1
	cdqe
	mov	QWORD PTR -1632[rbp+rax*8], 0
	sub	ebx, 1
.L3195:
	test	ebx, ebx
	jg	.L3196
	mov	ebx, 198
	jmp	.L3197
.L3198:
	lea	eax, -63[rbx]
	cdqe
	mov	rdx, QWORD PTR -1632[rbp+rax*8]
	movsx	rax, ebx
	mov	rax, QWORD PTR -1632[rbp+rax*8]
	sub	rdx, rax
	lea	eax, -63[rbx]
	and	edx, 1073741823
	cdqe
	mov	QWORD PTR -1632[rbp+rax*8], rdx
	lea	eax, -100[rbx]
	cdqe
	mov	rdx, QWORD PTR -1632[rbp+rax*8]
	movsx	rax, ebx
	mov	rax, QWORD PTR -1632[rbp+rax*8]
	sub	rdx, rax
	lea	eax, -100[rbx]
	and	edx, 1073741823
	cdqe
	mov	QWORD PTR -1632[rbp+rax*8], rdx
	sub	ebx, 1
.L3197:
	cmp	ebx, 99
	jg	.L3198
	mov	rax, r12
	and	eax, 1
	test	rax, rax
	je	.L3199
	mov	ebx, 100
	jmp	.L3200
.L3201:
	lea	eax, -1[rbx]
	cdqe
	mov	rdx, QWORD PTR -1632[rbp+rax*8]
	movsx	rax, ebx
	mov	QWORD PTR -1632[rbp+rax*8], rdx
	sub	ebx, 1
.L3200:
	test	ebx, ebx
	jg	.L3201
	mov	rax, QWORD PTR -832[rbp]
	mov	QWORD PTR -1632[rbp], rax
	mov	rax, QWORD PTR -1336[rbp]
	mov	rdx, QWORD PTR -832[rbp]
	sub	rax, rdx
	and	eax, 1073741823
	mov	QWORD PTR -1336[rbp], rax
.L3199:
	test	r12, r12
	je	.L3202
	sar	r12
	jmp	.L3194
.L3202:
	sub	r13d, 1
.L3194:
	test	r13d, r13d
	jne	.L3203
	mov	ebx, 0
	jmp	.L3204
.L3205:
	lea	edx, 63[rbx]
	movsx	rax, ebx
	mov	rax, QWORD PTR -1632[rbp+rax*8]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, ran_x[rip]
	mov	QWORD PTR [rcx+rdx], rax
	add	ebx, 1
.L3204:
	cmp	ebx, 36
	jle	.L3205
	jmp	.L3206
.L3207:
	lea	edx, -37[rbx]
	movsx	rax, ebx
	mov	rax, QWORD PTR -1632[rbp+rax*8]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, ran_x[rip]
	mov	QWORD PTR [rcx+rdx], rax
	add	ebx, 1
.L3206:
	cmp	ebx, 99
	jle	.L3207
	mov	ebx, 0
	jmp	.L3208
.L3209:
	lea	rax, -1632[rbp]
	mov	esi, 199
	mov	rdi, rax
	call	ran_array
	add	ebx, 1
.L3208:
	cmp	ebx, 9
	jle	.L3209
	lea	rax, ran_arr_started[rip]
	mov	QWORD PTR ran_arr_ptr[rip], rax
	nop
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3210
	call	__stack_chk_fail@PLT
.L3210:
	add	rsp, 1624
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE637:
	.size	ran_start, .-ran_start
	.globl	ran_arr_cycle
	.type	ran_arr_cycle, @function
ran_arr_cycle:
.LFB638:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR ran_arr_ptr[rip]
	lea	rdx, ran_arr_dummy[rip]
	cmp	rax, rdx
	jne	.L3212
	mov	edi, 314159
	call	ran_start
.L3212:
	mov	esi, 1009
	lea	rdi, ran_arr_buf[rip]
	call	ran_array
	mov	QWORD PTR ran_arr_buf[rip+800], -1
	lea	rax, ran_arr_buf[rip+8]
	mov	QWORD PTR ran_arr_ptr[rip], rax
	mov	rax, QWORD PTR ran_arr_buf[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE638:
	.size	ran_arr_cycle, .-ran_arr_cycle
	.globl	knuth_rand
	.type	knuth_rand, @function
knuth_rand:
.LFB639:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR ran_arr_ptr[rip]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	js	.L3215
	mov	rax, QWORD PTR ran_arr_ptr[rip]
	lea	rdx, 8[rax]
	mov	QWORD PTR ran_arr_ptr[rip], rdx
	mov	rax, QWORD PTR [rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L3216
.L3215:
	mov	eax, 0
	call	ran_arr_cycle
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
.L3216:
	movsd	xmm1, QWORD PTR .LC629[rip]
	mulsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE639:
	.size	knuth_rand, .-knuth_rand
	.section	.rodata
.LC630:
	.string	"hash->buckets[hi].nCount == 0"
	.align 8
.LC631:
	.string	"hash->buckets[hi].string != NULL"
	.align 8
.LC632:
	.string	"strcmp(hash->buckets[hi].string, strings[i]) == 0"
.LC633:
	.string	"hash->buckets[hi].first >= 0"
	.text
	.globl	MakeHashtable
	.type	MakeHashtable, @function
MakeHashtable:
.LFB640:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	edi, 16
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -28[rbp]
	lea	edx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 4
	mov	rdi, rax
	call	mymalloc
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L3219
.L3220:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	DWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	DWORD PTR 12[rax], -1
	add	DWORD PTR -16[rbp], 1
.L3219:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L3220
	mov	DWORD PTR -16[rbp], 0
	jmp	.L3221
.L3228:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FindMatch
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L3222
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 8[rax]
	test	eax, eax
	je	.L3223
	lea	rcx, __PRETTY_FUNCTION__.7[rip]
	mov	edx, 9183
	lea	rsi, .LC131[rip]
	lea	rdi, .LC630[rip]
	call	__assert_fail@PLT
.L3223:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	rax, QWORD PTR [rcx]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	DWORD PTR 8[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR 12[rdx], eax
	jmp	.L3224
.L3222:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L3225
	lea	rcx, __PRETTY_FUNCTION__.7[rip]
	mov	edx, 9189
	lea	rsi, .LC131[rip]
	lea	rdi, .LC631[rip]
	call	__assert_fail@PLT
.L3225:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3226
	lea	rcx, __PRETTY_FUNCTION__.7[rip]
	mov	edx, 9190
	lea	rsi, .LC131[rip]
	lea	rdi, .LC632[rip]
	call	__assert_fail@PLT
.L3226:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 12[rax]
	test	eax, eax
	jns	.L3227
	lea	rcx, __PRETTY_FUNCTION__.7[rip]
	mov	edx, 9191
	lea	rsi, .LC131[rip]
	lea	rdi, .LC633[rip]
	call	__assert_fail@PLT
.L3227:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	edx, DWORD PTR 8[rax]
	add	edx, 1
	mov	DWORD PTR 8[rax], edx
.L3224:
	add	DWORD PTR -16[rbp], 1
.L3221:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L3228
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE640:
	.size	MakeHashtable, .-MakeHashtable
	.globl	FreeHashtable
	.type	FreeHashtable, @function
FreeHashtable:
.LFB641:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L3231
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	myfree
.L3231:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE641:
	.size	FreeHashtable, .-FreeHashtable
	.globl	FindMatch
	.type	FindMatch, @function
FindMatch:
.LFB642:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -20[rbp], 1
	mov	DWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L3234
.L3235:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	add	DWORD PTR -16[rbp], eax
	add	QWORD PTR -8[rbp], 1
.L3234:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L3235
	mov	eax, DWORD PTR -20[rbp]
	mov	ecx, eax
	mov	edx, 2147975281
	imul	rdx, rcx
	shr	rdx, 32
	shr	edx, 15
	imul	edx, edx, 65521
	sub	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	ecx, eax
	mov	edx, 2147975281
	imul	rdx, rcx
	shr	rdx, 32
	shr	edx, 15
	imul	edx, edx, 65521
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	sal	eax, 16
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	eax, edx
	mov	DWORD PTR -12[rbp], eax
	jmp	.L3236
.L3238:
	add	DWORD PTR -12[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L3236
	mov	DWORD PTR -12[rbp], 0
.L3236:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L3237
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3238
.L3237:
	mov	eax, DWORD PTR -12[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE642:
	.size	FindMatch, .-FindMatch
	.globl	GetHashString
	.type	GetHashString, @function
GetHashString:
.LFB643:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE643:
	.size	GetHashString, .-GetHashString
	.globl	HashCount
	.type	HashCount, @function
HashCount:
.LFB644:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 8[rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE644:
	.size	HashCount, .-HashCount
	.globl	HashFirst
	.type	HashFirst, @function
HashFirst:
.LFB645:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR 12[rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE645:
	.size	HashFirst, .-HashFirst
	.section	.rodata
.LC634:
	.string	"last>=0"
	.align 8
.LC635:
	.string	"alnToUniq[last] >= 0 && alnToUniq[last] < nUniqueSeq"
.LC636:
	.string	"nUniqueSeq>0"
	.text
	.globl	UniquifyAln
	.type	UniquifyAln, @function
UniquifyAln:
.LFB646:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -88[rbp], rdi
	mov	DWORD PTR -68[rbp], 0
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -64[rbp], 0
	jmp	.L3247
.L3248:
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR [rax], 0
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	add	DWORD PTR -64[rbp], 1
.L3247:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -64[rbp], eax
	jl	.L3248
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	esi, edx
	mov	rdi, rax
	call	MakeHashtable
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -64[rbp], 0
	jmp	.L3249
.L3257:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FindMatch
	mov	DWORD PTR -56[rbp], eax
	mov	edx, DWORD PTR -56[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	HashFirst
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -64[rbp]
	jne	.L3250
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	edx, DWORD PTR -68[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -48[rbp]
	add	rdx, rcx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rdx], rax
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -64[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -68[rbp]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -68[rbp], 1
	jmp	.L3251
.L3250:
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -60[rbp], eax
	jmp	.L3252
.L3253:
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -60[rbp], eax
.L3252:
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, -1
	jne	.L3253
	cmp	DWORD PTR -60[rbp], 0
	jns	.L3254
	lea	rcx, __PRETTY_FUNCTION__.6[rip]
	mov	edx, 9267
	lea	rsi, .LC131[rip]
	lea	rdi, .LC634[rip]
	call	__assert_fail@PLT
.L3254:
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -64[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	js	.L3255
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -68[rbp], eax
	jg	.L3260
.L3255:
	lea	rcx, __PRETTY_FUNCTION__.6[rip]
	mov	edx, 9269
	lea	rsi, .LC131[rip]
	lea	rdi, .LC635[rip]
	call	__assert_fail@PLT
.L3260:
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -64[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
.L3251:
	add	DWORD PTR -64[rbp], 1
.L3249:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -64[rbp], eax
	jl	.L3257
	cmp	DWORD PTR -68[rbp], 0
	jg	.L3258
	lea	rcx, __PRETTY_FUNCTION__.6[rip]
	mov	edx, 9273
	lea	rsi, .LC131[rip]
	lea	rdi, .LC636[rip]
	call	__assert_fail@PLT
.L3258:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	FreeHashtable
	mov	QWORD PTR -16[rbp], rax
	mov	edi, 40
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE646:
	.size	UniquifyAln, .-UniquifyAln
	.globl	FreeUniquify
	.type	FreeUniquify, @function
FreeUniquify:
.LFB647:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L3262
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 40
	mov	rdi, rax
	call	myfree
	mov	QWORD PTR -8[rbp], 0
.L3262:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE647:
	.size	FreeUniquify, .-FreeUniquify
	.globl	InitTraversal
	.type	InitTraversal, @function
InitTraversal:
.LFB648:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L3265
.L3266:
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	add	DWORD PTR -12[rbp], 1
.L3265:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L3266
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE648:
	.size	InitTraversal, .-InitTraversal
	.globl	SkipTraversalInto
	.type	SkipTraversalInto, @function
SkipTraversalInto:
.LFB649:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	QWORD PTR -16[rbp], rsi
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 1
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE649:
	.size	SkipTraversalInto, .-SkipTraversalInto
	.section	.rodata
.LC637:
	.string	"node >= 0"
	.text
	.globl	TraversePostorder
	.type	TraversePostorder, @function
TraversePostorder:
.LFB650:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	cmp	QWORD PTR -48[rbp], 0
	je	.L3281
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR [rax], 0
.L3281:
	cmp	DWORD PTR -20[rbp], 0
	jns	.L3271
	lea	rcx, __PRETTY_FUNCTION__.5[rip]
	mov	edx, 9315
	lea	rsi, .LC131[rip]
	lea	rdi, .LC637[rip]
	call	__assert_fail@PLT
.L3271:
	mov	BYTE PTR -9[rbp], 0
	mov	DWORD PTR -8[rbp], 0
	jmp	.L3272
.L3275:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	mov	eax, DWORD PTR 4[rdx+rax*4]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	xor	eax, 1
	test	al, al
	je	.L3273
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -20[rbp], eax
	mov	BYTE PTR -9[rbp], 1
	jmp	.L3274
.L3273:
	add	DWORD PTR -8[rbp], 1
.L3272:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L3275
.L3274:
	cmp	BYTE PTR -9[rbp], 0
	jne	.L3282
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	xor	eax, 1
	test	al, al
	je	.L3278
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 1
	mov	eax, DWORD PTR -20[rbp]
	jmp	.L3279
.L3278:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -20[rbp], eax
	jne	.L3280
	mov	eax, -1
	jmp	.L3279
.L3280:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	cmp	QWORD PTR -48[rbp], 0
	je	.L3281
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L3281
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR [rax], 1
	mov	eax, DWORD PTR -20[rbp]
	jmp	.L3279
.L3282:
	nop
	jmp	.L3281
.L3279:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE650:
	.size	TraversePostorder, .-TraversePostorder
	.globl	FreeTraversal
	.type	FreeTraversal, @function
FreeTraversal:
.LFB651:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 52[rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE651:
	.size	FreeTraversal, .-FreeTraversal
	.globl	UpProfiles
	.type	UpProfiles, @function
UpProfiles:
.LFB652:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L3286
.L3287:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	QWORD PTR [rax], 0
	add	DWORD PTR -12[rbp], 1
.L3286:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L3287
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE652:
	.size	UpProfiles, .-UpProfiles
	.section	.rodata
	.align 8
.LC638:
	.string	"outnode != NJ->root && outnode >= NJ->nSeq"
	.align 8
.LC639:
	.string	"Computing UpProfile for node %d with lenC %.4f lenD %.4f pair-loglk %.3f\n"
	.align 8
.LC640:
	.string	"Compute upprofile of %d from %d and parents (vs. children %d %d) with weight %.3f\n"
.LC641:
	.string	"upProfiles[outnode] != NULL"
	.text
	.globl	GetUpProfile
	.type	GetUpProfile, @function
GetUpProfile:
.LFB653:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 184
	.cfi_offset 3, -24
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	mov	DWORD PTR -180[rbp], edx
	mov	eax, ecx
	mov	BYTE PTR -184[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 128[rax]
	cmp	DWORD PTR -180[rbp], eax
	je	.L3290
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -180[rbp], eax
	jge	.L3304
.L3290:
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 9360
	lea	rsi, .LC131[rip]
	lea	rdi, .LC638[rip]
	call	__assert_fail@PLT
.L3304:
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L3292
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	jmp	.L3302
.L3292:
	lea	rdx, -156[rbp]
	mov	ecx, DWORD PTR -180[rbp]
	mov	rax, QWORD PTR -176[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	PathToRoot
	mov	QWORD PTR -144[rbp], rax
	mov	eax, DWORD PTR -156[rbp]
	sub	eax, 2
	mov	DWORD PTR -152[rbp], eax
	jmp	.L3294
.L3300:
	mov	eax, DWORD PTR -152[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -148[rbp], eax
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L3295
	movzx	r8d, BYTE PTR -184[rbp]
	lea	rdi, -112[rbp]
	mov	rcx, QWORD PTR -168[rbp]
	lea	rdx, -96[rbp]
	mov	esi, DWORD PTR -148[rbp]
	mov	rax, QWORD PTR -176[rbp]
	mov	r9d, r8d
	mov	r8, rdi
	mov	rdi, rax
	call	SetupABCD
	cmp	BYTE PTR -184[rbp], 0
	je	.L3296
	mov	rax, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -128[rbp], xmm0
	mov	rax, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR -120[rbp], xmm0
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L3297
	mov	rax, QWORD PTR -176[rbp]
	lea	r8, 168[rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	edx, DWORD PTR 4[rax]
	movsd	xmm0, QWORD PTR -128[rbp]
	addsd	xmm0, QWORD PTR -120[rbp]
	movq	rdi, xmm0
	mov	rsi, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	r9d, 0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PairLogLk
	movq	rsi, xmm0
	mov	rax, QWORD PTR stderr[rip]
	movsd	xmm0, QWORD PTR -120[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	edx, DWORD PTR -148[rbp]
	movq	xmm2, rsi
	movapd	xmm1, xmm0
	movq	xmm0, rcx
	lea	rsi, .LC639[rip]
	mov	rdi, rax
	mov	eax, 3
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -176[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	PrintNJInternal
.L3297:
	mov	rax, QWORD PTR -176[rbp]
	mov	r9d, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	r8d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -176[rbp]
	lea	rcx, 168[rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rsi, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	edi, DWORD PTR -148[rbp]
	movsx	rdi, edi
	lea	r10, 0[0+rdi*8]
	mov	rdi, QWORD PTR -168[rbp]
	lea	rbx, [r10+rdi]
	movsd	xmm0, QWORD PTR -120[rbp]
	mov	rdi, QWORD PTR -128[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rdi
	mov	rdi, rax
	call	PosteriorProfile
	mov	QWORD PTR [rbx], rax
	jmp	.L3295
.L3296:
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	rcx, QWORD PTR 16[rax]
	lea	rax, -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	QuartetWeight
	movq	rax, xmm0
	mov	QWORD PTR -136[rbp], rax
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 3
	jle	.L3299
	mov	r8d, DWORD PTR -108[rbp]
	mov	edi, DWORD PTR -112[rbp]
	mov	ecx, DWORD PTR -104[rbp]
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR -148[rbp]
	movq	xmm0, rsi
	mov	r9d, r8d
	mov	r8d, edi
	lea	rsi, .LC640[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
.L3299:
	mov	rax, QWORD PTR -176[rbp]
	mov	r8, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rsi, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	edi, DWORD PTR -148[rbp]
	movsx	rdi, edi
	lea	r9, 0[0+rdi*8]
	mov	rdi, QWORD PTR -168[rbp]
	lea	rbx, [r9+rdi]
	mov	rdi, QWORD PTR -136[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	AverageProfile
	mov	QWORD PTR [rbx], rax
.L3295:
	sub	DWORD PTR -152[rbp], 1
.L3294:
	cmp	DWORD PTR -152[rbp], 0
	jns	.L3300
	mov	rdx, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FreePath
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L3301
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 9408
	lea	rsi, .LC131[rip]
	lea	rdi, .LC641[rip]
	call	__assert_fail@PLT
.L3301:
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
.L3302:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L3303
	call	__stack_chk_fail@PLT
.L3303:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE653:
	.size	GetUpProfile, .-GetUpProfile
	.section	.rodata
	.align 8
.LC642:
	.string	"node>=0 && node < NJ->maxnodes"
	.text
	.globl	DeleteUpProfile
	.type	DeleteUpProfile, @function
DeleteUpProfile:
.LFB654:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	cmp	DWORD PTR -36[rbp], 0
	js	.L3306
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L3310
.L3306:
	lea	rcx, __PRETTY_FUNCTION__.3[rip]
	mov	edx, 9413
	lea	rsi, .LC131[rip]
	lea	rdi, .LC642[rip]
	call	__assert_fail@PLT
.L3310:
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L3308
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rsi
	mov	rax, QWORD PTR [rax]
	mov	esi, DWORD PTR -36[rbp]
	movsx	rsi, esi
	lea	rdi, 0[0+rsi*8]
	mov	rsi, QWORD PTR -24[rbp]
	lea	rbx, [rdi+rsi]
	mov	esi, ecx
	mov	rdi, rax
	call	FreeProfile
	mov	QWORD PTR [rbx], rax
.L3308:
	mov	eax, 0
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE654:
	.size	DeleteUpProfile, .-DeleteUpProfile
	.section	.rodata
.LC643:
	.string	"FreeUpProfiles -- freed %d\n"
	.text
	.globl	FreeUpProfiles
	.type	FreeUpProfiles, @function
FreeUpProfiles:
.LFB655:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -4[rbp], 0
	mov	DWORD PTR -8[rbp], 0
	jmp	.L3312
.L3314:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L3313
	add	DWORD PTR -4[rbp], 1
.L3313:
	mov	edx, DWORD PTR -8[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	DeleteUpProfile
	add	DWORD PTR -8[rbp], 1
.L3312:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 52[rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L3314
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	eax, DWORD PTR verbose[rip]
	cmp	eax, 2
	jle	.L3315
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -4[rbp]
	lea	rsi, .LC643[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L3315:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE655:
	.size	FreeUpProfiles, .-FreeUpProfiles
	.globl	PathToRoot
	.type	PathToRoot, @function
PathToRoot:
.LFB656:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -12[rbp], eax
	jmp	.L3318
.L3319:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	add	DWORD PTR -16[rbp], 1
.L3318:
	cmp	DWORD PTR -12[rbp], 0
	jns	.L3319
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE656:
	.size	PathToRoot, .-PathToRoot
	.globl	FreePath
	.type	FreePath, @function
FreePath:
.LFB657:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	myfree
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE657:
	.size	FreePath, .-FreePath
	.section	.rodata
.LC644:
	.string	"rate > 0"
.LC645:
	.string	"total_rate > 1e-6"
	.text
	.globl	CreateGTR
	.type	CreateGTR, @function
CreateGTR:
.LFB658:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 720
	mov	QWORD PTR -712[rbp], rdi
	mov	QWORD PTR -720[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR nCodes[rip]
	cmp	eax, 4
	je	.L3324
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 9453
	lea	rsi, .LC131[rip]
	lea	rdi, .LC435[rip]
	call	__assert_fail@PLT
.L3324:
	mov	DWORD PTR -684[rbp], 0
	mov	DWORD PTR -692[rbp], 0
	jmp	.L3325
.L3329:
	mov	eax, DWORD PTR -692[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 656
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -692[rbp]
	add	eax, 1
	mov	DWORD PTR -688[rbp], eax
	jmp	.L3326
.L3328:
	mov	eax, DWORD PTR -684[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -684[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -712[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -664[rbp], xmm0
	movsd	xmm0, QWORD PTR -664[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	ja	.L3327
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 9464
	lea	rsi, .LC131[rip]
	lea	rdi, .LC644[rip]
	call	__assert_fail@PLT
.L3327:
	mov	eax, DWORD PTR -692[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -720[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, QWORD PTR -664[rbp]
	mov	eax, DWORD PTR -688[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -692[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	QWORD PTR -656[rbp+rax*8], xmm0
	mov	eax, DWORD PTR -688[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -720[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, QWORD PTR -664[rbp]
	mov	eax, DWORD PTR -692[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -688[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	QWORD PTR -656[rbp+rax*8], xmm0
	add	DWORD PTR -688[rbp], 1
.L3326:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -688[rbp], eax
	jl	.L3328
	add	DWORD PTR -692[rbp], 1
.L3325:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -692[rbp], eax
	jl	.L3329
	pxor	xmm0, xmm0
	movsd	QWORD PTR -680[rbp], xmm0
	mov	DWORD PTR -692[rbp], 0
	jmp	.L3330
.L3333:
	mov	DWORD PTR -688[rbp], 0
	jmp	.L3331
.L3332:
	mov	eax, DWORD PTR -692[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -720[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -688[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -692[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	xmm0, QWORD PTR -656[rbp+rax*8]
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -680[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -680[rbp], xmm0
	add	DWORD PTR -688[rbp], 1
.L3331:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -688[rbp], eax
	jl	.L3332
	add	DWORD PTR -692[rbp], 1
.L3330:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -692[rbp], eax
	jl	.L3333
	movsd	xmm0, QWORD PTR -680[rbp]
	comisd	xmm0, QWORD PTR .LC374[rip]
	ja	.L3334
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 9475
	lea	rsi, .LC131[rip]
	lea	rdi, .LC645[rip]
	call	__assert_fail@PLT
.L3334:
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, QWORD PTR -680[rbp]
	movsd	QWORD PTR -672[rbp], xmm0
	mov	DWORD PTR -692[rbp], 0
	jmp	.L3335
.L3338:
	mov	DWORD PTR -688[rbp], 0
	jmp	.L3336
.L3337:
	mov	eax, DWORD PTR -688[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -692[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	xmm0, QWORD PTR -656[rbp+rax*8]
	mulsd	xmm0, QWORD PTR -672[rbp]
	mov	eax, DWORD PTR -688[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -692[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	QWORD PTR -656[rbp+rax*8], xmm0
	add	DWORD PTR -688[rbp], 1
.L3336:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -688[rbp], eax
	jl	.L3337
	add	DWORD PTR -692[rbp], 1
.L3335:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -692[rbp], eax
	jl	.L3338
	mov	rdx, QWORD PTR -720[rbp]
	lea	rax, -656[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	CreateTransitionMatrix
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L3340
	call	__stack_chk_fail@PLT
.L3340:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE658:
	.size	CreateGTR, .-CreateGTR
	.section	.rodata
.LC646:
	.string	"transt[j][i] > 0"
.LC647:
	.string	"transmat->stat[j] > 0"
.LC648:
	.string	"tot > 0"
	.text
	.globl	CreateTransitionMatrix
	.type	CreateTransitionMatrix, @function
CreateTransitionMatrix:
.LFB659:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 1392
	mov	QWORD PTR -13672[rbp], rdi
	mov	QWORD PTR -13680[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edi, 16880
	call	mymalloc
	mov	QWORD PTR -13624[rbp], rax
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3342
.L3343:
	mov	eax, DWORD PTR -13660[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -13680[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	cvtsd2ss	xmm0, xmm0
	mov	rax, QWORD PTR -13624[rbp]
	mov	edx, DWORD PTR -13660[rbp]
	movsx	rdx, edx
	movss	DWORD PTR [rax+rdx*4], xmm0
	mov	eax, DWORD PTR -13660[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -13680[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	rax, QWORD PTR -13624[rbp]
	mov	edx, DWORD PTR -13660[rbp]
	movsx	rdx, edx
	add	rdx, 20
	movss	DWORD PTR [rax+rdx*4], xmm0
	mov	eax, DWORD PTR -13660[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -13680[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movq	xmm0, rax
	call	sqrt@PLT
	movq	rax, xmm0
	mov	edx, DWORD PTR -13660[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -13616[rbp+rdx*8], rax
	add	DWORD PTR -13660[rbp], 1
.L3342:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3343
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3344
.L3347:
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3345
.L3346:
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 5
	mov	rdx, rax
	mov	rax, QWORD PTR -13672[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -13660[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -13656[rbp]
	add	ecx, eax
	mov	eax, DWORD PTR -13656[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	movsx	rax, ecx
	movsd	QWORD PTR -12816[rbp+rax*8], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3345:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3346
	add	DWORD PTR -13660[rbp], 1
.L3344:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3347
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3348
.L3351:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -13648[rbp], xmm0
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -13656[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -13656[rbp]
	add	eax, edx
	cdqe
	pxor	xmm0, xmm0
	movsd	QWORD PTR -12816[rbp+rax*8], xmm0
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3349
.L3350:
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -13660[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -13656[rbp]
	add	eax, edx
	cdqe
	movsd	xmm0, QWORD PTR -12816[rbp+rax*8]
	movsd	xmm1, QWORD PTR -13648[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -13648[rbp], xmm0
	add	DWORD PTR -13660[rbp], 1
.L3349:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3350
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -13656[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -13656[rbp]
	add	eax, edx
	movsd	xmm0, QWORD PTR -13648[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	cdqe
	movsd	QWORD PTR -12816[rbp+rax*8], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3348:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3351
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3352
.L3355:
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3353
.L3354:
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -13660[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -13656[rbp]
	add	eax, edx
	cdqe
	movsd	xmm1, QWORD PTR -12816[rbp+rax*8]
	mov	eax, DWORD PTR -13656[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -13616[rbp+rax*8]
	mov	eax, DWORD PTR -13660[rbp]
	cdqe
	movsd	xmm2, QWORD PTR -13616[rbp+rax*8]
	divsd	xmm0, xmm2
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -13660[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -13656[rbp]
	add	eax, edx
	mulsd	xmm0, xmm1
	cdqe
	movsd	QWORD PTR -12816[rbp+rax*8], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3353:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3354
	add	DWORD PTR -13660[rbp], 1
.L3352:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3355
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3356
.L3357:
	mov	eax, DWORD PTR -13660[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -12816[rbp+rax*8]
	mov	eax, DWORD PTR -13660[rbp]
	cdqe
	movsd	QWORD PTR -9616[rbp+rax*8], xmm0
	add	DWORD PTR -13660[rbp], 1
.L3356:
	mov	edx, DWORD PTR nCodes[rip]
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, edx
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3357
	mov	edx, DWORD PTR nCodes[rip]
	mov	esi, DWORD PTR nCodes[rip]
	lea	rdi, -13296[rbp]
	lea	rcx, -13456[rbp]
	lea	rax, -9616[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	tred2
	mov	ecx, DWORD PTR nCodes[rip]
	mov	edx, DWORD PTR nCodes[rip]
	lea	rdi, -9616[rbp]
	lea	rsi, -13296[rbp]
	lea	rax, -13456[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	tqli
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3358
.L3359:
	mov	eax, DWORD PTR -13660[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -13456[rbp+rax*8]
	cvtsd2ss	xmm0, xmm0
	mov	rax, QWORD PTR -13624[rbp]
	mov	edx, DWORD PTR -13660[rbp]
	movsx	rdx, edx
	add	rdx, 3400
	movss	DWORD PTR [rax+rdx*4], xmm0
	add	DWORD PTR -13660[rbp], 1
.L3358:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3359
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3360
.L3363:
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3361
.L3362:
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -13660[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -13656[rbp]
	add	eax, edx
	cdqe
	movsd	xmm0, QWORD PTR -9616[rbp+rax*8]
	mov	eax, DWORD PTR -13656[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -13616[rbp+rax*8]
	divsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	rdx, QWORD PTR -13624[rbp]
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 2600
	movss	DWORD PTR [rdx+rax*4], xmm0
	mov	rdx, QWORD PTR -13624[rbp]
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 2600
	movss	xmm0, DWORD PTR [rdx+rax*4]
	mov	rdx, QWORD PTR -13624[rbp]
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 3000
	movss	DWORD PTR [rdx+rax*4], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3361:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3362
	add	DWORD PTR -13660[rbp], 1
.L3360:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3363
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3364
.L3367:
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3365
.L3366:
	mov	eax, DWORD PTR nCodes[rip]
	imul	eax, DWORD PTR -13656[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -13660[rbp]
	add	eax, edx
	cdqe
	movsd	xmm1, QWORD PTR -9616[rbp+rax*8]
	mov	eax, DWORD PTR -13660[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -13616[rbp+rax*8]
	mulsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	mov	rdx, QWORD PTR -13624[rbp]
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 40
	movss	DWORD PTR [rdx+rax*4], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3365:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3366
	add	DWORD PTR -13660[rbp], 1
.L3364:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3367
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3368
.L3371:
	mov	rax, QWORD PTR -13624[rbp]
	mov	edx, DWORD PTR -13656[rbp]
	movsx	rdx, edx
	add	rdx, 2580
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax+rdx*4], xmm0
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3369
.L3370:
	mov	rax, QWORD PTR -13624[rbp]
	mov	edx, DWORD PTR -13656[rbp]
	movsx	rdx, edx
	add	rdx, 2580
	movss	xmm1, DWORD PTR [rax+rdx*4]
	mov	rdx, QWORD PTR -13624[rbp]
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 40
	movss	xmm0, DWORD PTR [rdx+rax*4]
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -13624[rbp]
	mov	edx, DWORD PTR -13656[rbp]
	movsx	rdx, edx
	add	rdx, 2580
	movss	DWORD PTR [rax+rdx*4], xmm0
	add	DWORD PTR -13660[rbp], 1
.L3369:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3370
	add	DWORD PTR -13656[rbp], 1
.L3368:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3371
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3372
.L3373:
	mov	rax, QWORD PTR -13624[rbp]
	mov	edx, DWORD PTR -13660[rbp]
	movsx	rdx, edx
	add	rdx, 3400
	movss	xmm0, DWORD PTR [rax+rdx*4]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR approxMLnearT[rip]
	mulsd	xmm1, xmm0
	movq	rax, xmm1
	movq	xmm0, rax
	call	exp@PLT
	movq	rax, xmm0
	mov	edx, DWORD PTR -13660[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -13136[rbp+rdx*8], rax
	add	DWORD PTR -13660[rbp], 1
.L3372:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3373
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3374
.L3377:
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3375
.L3376:
	mov	rdx, QWORD PTR -13624[rbp]
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 2600
	movss	xmm0, DWORD PTR [rdx+rax*4]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	mov	eax, DWORD PTR -13660[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -13136[rbp+rax*8]
	mulsd	xmm0, xmm1
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	QWORD PTR -6416[rbp+rax*8], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3375:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3376
	add	DWORD PTR -13660[rbp], 1
.L3374:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3377
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3378
.L3383:
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3379
.L3382:
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	pxor	xmm0, xmm0
	movsd	QWORD PTR -3216[rbp+rax*8], xmm0
	mov	DWORD PTR -13652[rbp], 0
	jmp	.L3380
.L3381:
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	xmm1, QWORD PTR -3216[rbp+rax*8]
	mov	rdx, QWORD PTR -13624[rbp]
	mov	eax, DWORD PTR -13652[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 40
	movss	xmm0, DWORD PTR [rdx+rax*4]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -13652[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	xmm0, QWORD PTR -6416[rbp+rax*8]
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	QWORD PTR -3216[rbp+rax*8], xmm0
	add	DWORD PTR -13652[rbp], 1
.L3380:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13652[rbp], eax
	jl	.L3381
	add	DWORD PTR -13656[rbp], 1
.L3379:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3382
	add	DWORD PTR -13660[rbp], 1
.L3378:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3383
	mov	DWORD PTR -13660[rbp], 0
	jmp	.L3384
.L3400:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -13640[rbp], xmm0
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3385
.L3388:
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	xmm0, QWORD PTR -3216[rbp+rax*8]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	ja	.L3386
	lea	rcx, __PRETTY_FUNCTION__.1[rip]
	mov	edx, 9567
	lea	rsi, .LC131[rip]
	lea	rdi, .LC646[rip]
	call	__assert_fail@PLT
.L3386:
	mov	rax, QWORD PTR -13624[rbp]
	mov	edx, DWORD PTR -13656[rbp]
	movsx	rdx, edx
	movss	xmm0, DWORD PTR [rax+rdx*4]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	ja	.L3387
	lea	rcx, __PRETTY_FUNCTION__.1[rip]
	mov	edx, 9568
	lea	rsi, .LC131[rip]
	lea	rdi, .LC647[rip]
	call	__assert_fail@PLT
.L3387:
	mov	rax, QWORD PTR -13624[rbp]
	mov	edx, DWORD PTR -13656[rbp]
	movsx	rdx, edx
	movss	xmm0, DWORD PTR [rax+rdx*4]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	xmm0, QWORD PTR -3216[rbp+rax*8]
	mulsd	xmm1, xmm0
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	movsd	xmm0, QWORD PTR -3216[rbp+rax*8]
	mulsd	xmm0, xmm1
	mov	eax, DWORD PTR -13656[rbp]
	cdqe
	movsd	QWORD PTR -12976[rbp+rax*8], xmm0
	mov	eax, DWORD PTR -13656[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -12976[rbp+rax*8]
	movsd	xmm1, QWORD PTR -13640[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -13640[rbp], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3385:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3388
	movsd	xmm0, QWORD PTR -13640[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	ja	.L3389
	lea	rcx, __PRETTY_FUNCTION__.1[rip]
	mov	edx, 9572
	lea	rsi, .LC131[rip]
	lea	rdi, .LC648[rip]
	call	__assert_fail@PLT
.L3389:
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3390
.L3391:
	mov	eax, DWORD PTR -13656[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -12976[rbp+rax*8]
	movsd	xmm0, QWORD PTR .LC4[rip]
	divsd	xmm0, QWORD PTR -13640[rbp]
	mulsd	xmm0, xmm1
	mov	eax, DWORD PTR -13656[rbp]
	cdqe
	movsd	QWORD PTR -12976[rbp+rax*8], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3390:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3391
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3392
.L3393:
	mov	eax, DWORD PTR -13656[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -12976[rbp+rax*8]
	cvtsd2ss	xmm0, xmm0
	mov	rdx, QWORD PTR -13624[rbp]
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 3420
	movss	DWORD PTR [rdx+rax*4], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3392:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3393
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3394
.L3395:
	mov	eax, DWORD PTR -13656[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -12976[rbp+rax*8]
	mov	rax, QWORD PTR -13624[rbp]
	mov	edx, DWORD PTR -13656[rbp]
	movsx	rdx, edx
	movss	xmm1, DWORD PTR [rax+rdx*4]
	cvtss2sd	xmm1, xmm1
	divsd	xmm0, xmm1
	mov	eax, DWORD PTR -13656[rbp]
	cdqe
	movsd	QWORD PTR -12976[rbp+rax*8], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3394:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3395
	mov	DWORD PTR -13656[rbp], 0
	jmp	.L3396
.L3399:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -13632[rbp], xmm0
	mov	DWORD PTR -13652[rbp], 0
	jmp	.L3397
.L3398:
	mov	eax, DWORD PTR -13652[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -12976[rbp+rax*8]
	mov	rdx, QWORD PTR -13624[rbp]
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 40
	movss	xmm0, DWORD PTR [rdx+rax*4]
	cvtss2sd	xmm0, xmm0
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -13632[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -13632[rbp], xmm0
	add	DWORD PTR -13652[rbp], 1
.L3397:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13652[rbp], eax
	jl	.L3398
	pxor	xmm0, xmm0
	cvtsd2ss	xmm0, QWORD PTR -13632[rbp]
	mov	rdx, QWORD PTR -13624[rbp]
	mov	eax, DWORD PTR -13656[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -13660[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 3820
	movss	DWORD PTR [rdx+rax*4], xmm0
	add	DWORD PTR -13656[rbp], 1
.L3396:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13656[rbp], eax
	jl	.L3399
	add	DWORD PTR -13660[rbp], 1
.L3384:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -13660[rbp], eax
	jl	.L3400
	mov	rax, QWORD PTR -13624[rbp]
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L3402
	call	__stack_chk_fail@PLT
.L3402:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE659:
	.size	CreateTransitionMatrix, .-CreateTransitionMatrix
	.globl	TransMatToDistanceMat
	.type	TransMatToDistanceMat, @function
TransMatToDistanceMat:
.LFB660:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	cmp	QWORD PTR -24[rbp], 0
	jne	.L3404
	mov	eax, 0
	jmp	.L3405
.L3404:
	mov	edi, 5040
	call	mymalloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L3406
.L3409:
	mov	DWORD PTR -12[rbp], 0
	jmp	.L3407
.L3408:
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -12[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	pxor	xmm0, xmm0
	movss	DWORD PTR [rdx+rax*4], xmm0
	mov	rdx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -12[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 2600
	movss	xmm0, DWORD PTR [rdx+rax*4]
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -12[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 400
	movss	DWORD PTR [rdx+rax*4], xmm0
	mov	rdx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -12[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 40
	movss	xmm0, DWORD PTR [rdx+rax*4]
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -12[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 840
	movss	DWORD PTR [rdx+rax*4], xmm0
	add	DWORD PTR -12[rbp], 1
.L3407:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L3408
	add	DWORD PTR -16[rbp], 1
.L3406:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L3409
	mov	DWORD PTR -16[rbp], 0
	jmp	.L3410
.L3413:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	add	rdx, 820
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax+rdx*4], xmm0
	mov	DWORD PTR -12[rbp], 0
	jmp	.L3411
.L3412:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	add	rdx, 820
	movss	xmm1, DWORD PTR [rax+rdx*4]
	mov	rdx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -12[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 2600
	movss	xmm0, DWORD PTR [rdx+rax*4]
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	add	rdx, 820
	movss	DWORD PTR [rax+rdx*4], xmm0
	add	DWORD PTR -12[rbp], 1
.L3411:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L3412
	add	DWORD PTR -16[rbp], 1
.L3410:
	mov	eax, DWORD PTR nCodes[rip]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L3413
	mov	rax, QWORD PTR -8[rbp]
.L3405:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE660:
	.size	TransMatToDistanceMat, .-TransMatToDistanceMat
	.globl	tred2
	.type	tred2, @function
tred2:
.LFB661:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	DWORD PTR -80[rbp], edx
	mov	QWORD PTR -88[rbp], rcx
	mov	QWORD PTR -96[rbp], r8
	mov	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -56[rbp], eax
	jmp	.L3415
.L3436:
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	mov	DWORD PTR -44[rbp], eax
	pxor	xmm0, xmm0
	movsd	QWORD PTR -24[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -16[rbp], xmm0
	cmp	DWORD PTR -44[rbp], 1
	jle	.L3416
	mov	DWORD PTR -48[rbp], 1
	jmp	.L3417
.L3418:
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -16[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	add	DWORD PTR -48[rbp], 1
.L3417:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L3418
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -16[rbp]
	jp	.L3419
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -16[rbp]
	jne	.L3419
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rcx
	movsd	xmm0, QWORD PTR [rdx]
	movsd	QWORD PTR [rax], xmm0
	jmp	.L3421
.L3419:
	mov	DWORD PTR -48[rbp], 1
	jmp	.L3422
.L3423:
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	divsd	xmm0, QWORD PTR -16[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -24[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	add	DWORD PTR -48[rbp], 1
.L3422:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L3423
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -40[rbp], xmm0
	mov	rax, QWORD PTR -24[rbp]
	movq	xmm0, rax
	call	sqrt@PLT
	movq	rax, xmm0
	movq	xmm0, QWORD PTR .LC426[rip]
	movq	xmm3, rax
	xorpd	xmm3, xmm0
	movapd	xmm0, xmm3
	movsd	QWORD PTR -32[rbp], xmm0
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -40[rbp]
	jbe	.L3424
	movsd	xmm0, QWORD PTR -32[rbp]
	movq	xmm1, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
.L3424:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -16[rbp]
	mulsd	xmm0, QWORD PTR -32[rbp]
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -32[rbp]
	movsd	xmm0, QWORD PTR -24[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -40[rbp]
	subsd	xmm0, QWORD PTR -32[rbp]
	movsd	QWORD PTR [rax], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -40[rbp], xmm0
	mov	DWORD PTR -52[rbp], 1
	jmp	.L3426
.L3431:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	divsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR [rax], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -32[rbp], xmm0
	mov	DWORD PTR -48[rbp], 1
	jmp	.L3427
.L3428:
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -32[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	add	DWORD PTR -48[rbp], 1
.L3427:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jle	.L3428
	mov	eax, DWORD PTR -52[rbp]
	add	eax, 1
	mov	DWORD PTR -48[rbp], eax
	jmp	.L3429
.L3430:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -32[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	add	DWORD PTR -48[rbp], 1
.L3429:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L3430
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -32[rbp]
	divsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -40[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -40[rbp], xmm0
	add	DWORD PTR -52[rbp], 1
.L3426:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L3431
	movsd	xmm0, QWORD PTR -24[rbp]
	movapd	xmm1, xmm0
	addsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	mov	DWORD PTR -52[rbp], 1
	jmp	.L3432
.L3435:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -40[rbp], xmm0
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR -8[rbp]
	mulsd	xmm1, QWORD PTR -40[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -32[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -48[rbp], 1
	jmp	.L3433
.L3434:
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movapd	xmm2, xmm1
	mulsd	xmm2, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mulsd	xmm1, QWORD PTR -32[rbp]
	addsd	xmm1, xmm2
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	subsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -48[rbp], 1
.L3433:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jle	.L3434
	add	DWORD PTR -52[rbp], 1
.L3432:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L3435
	jmp	.L3421
.L3416:
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rcx
	movsd	xmm0, QWORD PTR [rdx]
	movsd	QWORD PTR [rax], xmm0
.L3421:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR [rax], xmm0
	sub	DWORD PTR -56[rbp], 1
.L3415:
	cmp	DWORD PTR -56[rbp], 1
	jg	.L3436
	mov	rax, QWORD PTR -88[rbp]
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -96[rbp]
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -56[rbp], 1
	jmp	.L3437
.L3448:
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	pxor	xmm1, xmm1
	ucomisd	xmm0, xmm1
	jp	.L3452
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	je	.L3438
.L3452:
	mov	DWORD PTR -52[rbp], 1
	jmp	.L3440
.L3445:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -32[rbp], xmm0
	mov	DWORD PTR -48[rbp], 1
	jmp	.L3441
.L3442:
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -32[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	add	DWORD PTR -48[rbp], 1
.L3441:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L3442
	mov	DWORD PTR -48[rbp], 1
	jmp	.L3443
.L3444:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mulsd	xmm1, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	subsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -48[rbp], 1
.L3443:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L3444
	add	DWORD PTR -52[rbp], 1
.L3440:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L3445
.L3438:
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, -8[rax]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rcx
	movsd	xmm0, QWORD PTR [rdx]
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -52[rbp], 1
	jmp	.L3446
.L3447:
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	edx, DWORD PTR -52[rbp]
	sub	edx, 1
	mov	ecx, edx
	imul	ecx, DWORD PTR -80[rbp]
	mov	edx, DWORD PTR -56[rbp]
	sub	edx, 1
	add	edx, ecx
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, rcx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR [rdx], xmm0
	add	DWORD PTR -52[rbp], 1
.L3446:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L3447
	add	DWORD PTR -56[rbp], 1
.L3437:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jle	.L3448
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE661:
	.size	tred2, .-tred2
	.globl	pythag
	.type	pythag, @function
pythag:
.LFB662:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	QWORD PTR -32[rbp], xmm1
	movsd	xmm0, QWORD PTR -24[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -32[rbp]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	comisd	xmm0, QWORD PTR -8[rbp]
	jbe	.L3463
	movsd	xmm0, QWORD PTR -8[rbp]
	movapd	xmm1, xmm0
	divsd	xmm1, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR -8[rbp]
	divsd	xmm0, QWORD PTR -16[rbp]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	addsd	xmm1, xmm0
	movq	rax, xmm1
	movq	xmm0, rax
	call	sqrt@PLT
	movq	rax, xmm0
	movq	xmm0, rax
	mulsd	xmm0, QWORD PTR -16[rbp]
	jmp	.L3460
.L3463:
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -8[rbp]
	jp	.L3462
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -8[rbp]
	je	.L3464
.L3462:
	movsd	xmm0, QWORD PTR -16[rbp]
	movapd	xmm1, xmm0
	divsd	xmm1, QWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR -16[rbp]
	divsd	xmm0, QWORD PTR -8[rbp]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	addsd	xmm1, xmm0
	movq	rax, xmm1
	movq	xmm0, rax
	call	sqrt@PLT
	movq	rax, xmm0
	movq	xmm0, rax
	mulsd	xmm0, QWORD PTR -8[rbp]
	jmp	.L3460
.L3464:
	pxor	xmm0, xmm0
.L3460:
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE662:
	.size	pythag, .-pythag
	.section	.rodata
.LC649:
	.string	"iter < 30"
	.text
	.globl	tqli
	.type	tqli, @function
tqli:
.LFB663:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	DWORD PTR -116[rbp], edx
	mov	DWORD PTR -120[rbp], ecx
	mov	QWORD PTR -128[rbp], r8
	mov	DWORD PTR -84[rbp], 0
	mov	DWORD PTR -80[rbp], 0
	mov	DWORD PTR -76[rbp], 0
	mov	DWORD PTR -72[rbp], 0
	mov	DWORD PTR -68[rbp], 0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -32[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -64[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -24[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -16[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -56[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -48[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -8[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -40[rbp], xmm0
	mov	DWORD PTR -84[rbp], 2
	jmp	.L3466
.L3467:
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -84[rbp]
	sub	eax, 1
	cdqe
	sal	rax, 3
	lea	rcx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rcx
	movsd	xmm0, QWORD PTR [rdx]
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -84[rbp], 1
.L3466:
	mov	eax, DWORD PTR -84[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jle	.L3467
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -72[rbp], 1
	jmp	.L3468
.L3486:
	mov	DWORD PTR -80[rbp], 0
.L3469:
	mov	eax, DWORD PTR -72[rbp]
	mov	DWORD PTR -68[rbp], eax
	jmp	.L3470
.L3474:
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm1, xmm0
	mov	eax, DWORD PTR -68[rbp]
	add	eax, 1
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movq	xmm2, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm2
	addsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movq	xmm1, QWORD PTR .LC80[rip]
	andpd	xmm0, xmm1
	addsd	xmm0, QWORD PTR -24[rbp]
	ucomisd	xmm0, QWORD PTR -24[rbp]
	jp	.L3471
	ucomisd	xmm0, QWORD PTR -24[rbp]
	je	.L3491
.L3471:
	add	DWORD PTR -68[rbp], 1
.L3470:
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jl	.L3474
	jmp	.L3473
.L3491:
	nop
.L3473:
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -72[rbp]
	je	.L3475
	cmp	DWORD PTR -80[rbp], 29
	jle	.L3476
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 9732
	lea	rsi, .LC131[rip]
	lea	rdi, .LC649[rip]
	call	__assert_fail@PLT
.L3476:
	add	DWORD PTR -80[rbp], 1
	mov	eax, DWORD PTR -72[rbp]
	add	eax, 1
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm2, QWORD PTR [rax]
	movapd	xmm1, xmm0
	subsd	xmm1, xmm2
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movapd	xmm2, xmm0
	addsd	xmm2, xmm0
	divsd	xmm1, xmm2
	movapd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	mov	rax, QWORD PTR -56[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	pythag
	movq	rax, xmm0
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movapd	xmm2, xmm0
	subsd	xmm2, xmm1
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -56[rbp]
	jbe	.L3490
	movsd	xmm0, QWORD PTR -8[rbp]
	movq	xmm3, QWORD PTR .LC426[rip]
	xorpd	xmm0, xmm3
	jmp	.L3479
.L3490:
	movsd	xmm0, QWORD PTR -8[rbp]
.L3479:
	movapd	xmm3, xmm0
	addsd	xmm3, QWORD PTR -56[rbp]
	divsd	xmm1, xmm3
	movapd	xmm0, xmm1
	addsd	xmm0, xmm2
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -64[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -48[rbp], xmm0
	mov	eax, DWORD PTR -68[rbp]
	sub	eax, 1
	mov	DWORD PTR -84[rbp], eax
	jmp	.L3480
.L3485:
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR -40[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR -64[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	movsd	xmm0, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -16[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	pythag
	movq	rax, xmm0
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -84[rbp]
	add	eax, 1
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR [rax], xmm0
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -8[rbp]
	jp	.L3481
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -8[rbp]
	jne	.L3481
	mov	eax, DWORD PTR -84[rbp]
	add	eax, 1
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -84[rbp]
	add	eax, 1
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	subsd	xmm0, QWORD PTR -48[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	jmp	.L3469
.L3481:
	movsd	xmm0, QWORD PTR -16[rbp]
	divsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR -40[rbp], xmm0
	movsd	xmm0, QWORD PTR -56[rbp]
	divsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR -64[rbp], xmm0
	mov	eax, DWORD PTR -84[rbp]
	add	eax, 1
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	subsd	xmm0, QWORD PTR -48[rbp]
	movsd	QWORD PTR -56[rbp], xmm0
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	subsd	xmm0, QWORD PTR -56[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -40[rbp]
	movsd	xmm0, QWORD PTR -64[rbp]
	addsd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -32[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -40[rbp]
	mulsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR -48[rbp], xmm0
	mov	eax, DWORD PTR -84[rbp]
	add	eax, 1
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -56[rbp]
	addsd	xmm0, QWORD PTR -48[rbp]
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -64[rbp]
	mulsd	xmm0, QWORD PTR -8[rbp]
	subsd	xmm0, QWORD PTR -32[rbp]
	movsd	QWORD PTR -56[rbp], xmm0
	mov	DWORD PTR -76[rbp], 1
	jmp	.L3483
.L3484:
	mov	eax, DWORD PTR -84[rbp]
	imul	eax, DWORD PTR -120[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -16[rbp], xmm0
	mov	eax, DWORD PTR -84[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -120[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -40[rbp]
	movsd	xmm0, QWORD PTR -64[rbp]
	mulsd	xmm0, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -84[rbp]
	imul	eax, DWORD PTR -120[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -84[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -120[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, QWORD PTR -64[rbp]
	movsd	xmm1, QWORD PTR -40[rbp]
	mulsd	xmm1, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -84[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -120[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, 1
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	subsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -76[rbp], 1
.L3483:
	mov	eax, DWORD PTR -76[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jle	.L3484
	sub	DWORD PTR -84[rbp], 1
.L3480:
	mov	eax, DWORD PTR -84[rbp]
	cmp	eax, DWORD PTR -72[rbp]
	jge	.L3485
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	subsd	xmm0, QWORD PTR -48[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	jmp	.L3469
.L3475:
	add	DWORD PTR -72[rbp], 1
.L3468:
	mov	eax, DWORD PTR -72[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jle	.L3486
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE663:
	.size	tqli, .-tqli
	.globl	vector_multiply
	.type	vector_multiply, @function
vector_multiply:
.LFB665:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 40
	mov	QWORD PTR -136[rbp], rdi
	mov	QWORD PTR -144[rbp], rsi
	mov	DWORD PTR -148[rbp], edx
	mov	QWORD PTR -160[rbp], rcx
	mov	DWORD PTR -124[rbp], 0
	jmp	.L3493
.L3497:
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -96[rbp], xmm0
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -80[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -96[rbp]
	movaps	XMMWORD PTR -32[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -80[rbp]
	movaps	XMMWORD PTR -16[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -32[rbp]
	mulps	xmm0, XMMWORD PTR -16[rbp]
	movaps	XMMWORD PTR -64[rbp], xmm0
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	movaps	xmm0, XMMWORD PTR -64[rbp]
	movaps	XMMWORD PTR -48[rbp], xmm0
	mov	rax, QWORD PTR -120[rbp]
	movaps	xmm0, XMMWORD PTR -48[rbp]
	movaps	XMMWORD PTR [rax], xmm0
	nop
	add	DWORD PTR -124[rbp], 4
.L3493:
	mov	eax, DWORD PTR -124[rbp]
	cmp	eax, DWORD PTR -148[rbp]
	jl	.L3497
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE665:
	.size	vector_multiply, .-vector_multiply
	.globl	vector_multiply_sum
	.type	vector_multiply_sum, @function
vector_multiply_sum:
.LFB666:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	mov	DWORD PTR -180[rbp], edx
	cmp	DWORD PTR -180[rbp], 4
	jne	.L3499
	mov	rax, QWORD PTR -168[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm1, xmm0
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 4
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm2
	addss	xmm1, xmm0
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 8
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm2
	addss	xmm1, xmm0
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 12
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm2
	addss	xmm0, xmm1
	jmp	.L3500
.L3499:
	pxor	xmm0, xmm0
	movaps	XMMWORD PTR -128[rbp], xmm0
	mov	DWORD PTR -148[rbp], 0
	jmp	.L3502
.L3507:
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -112[rbp], xmm0
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -96[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -112[rbp]
	movaps	XMMWORD PTR -32[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -96[rbp]
	movaps	XMMWORD PTR -16[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -32[rbp]
	mulps	xmm0, XMMWORD PTR -16[rbp]
	movaps	XMMWORD PTR -80[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -80[rbp]
	movaps	XMMWORD PTR -64[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -128[rbp]
	movaps	XMMWORD PTR -48[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -64[rbp]
	addps	xmm0, XMMWORD PTR -48[rbp]
	movaps	XMMWORD PTR -128[rbp], xmm0
	add	DWORD PTR -148[rbp], 4
.L3502:
	mov	eax, DWORD PTR -148[rbp]
	cmp	eax, DWORD PTR -180[rbp]
	jl	.L3507
	movaps	xmm0, XMMWORD PTR -128[rbp]
	call	mm_sum@PLT
.L3500:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE666:
	.size	vector_multiply_sum, .-vector_multiply_sum
	.globl	vector_multiply3_sum
	.type	vector_multiply3_sum, @function
vector_multiply3_sum:
.LFB667:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 224
	mov	QWORD PTR -200[rbp], rdi
	mov	QWORD PTR -208[rbp], rsi
	mov	QWORD PTR -216[rbp], rdx
	mov	DWORD PTR -220[rbp], ecx
	pxor	xmm0, xmm0
	movaps	XMMWORD PTR -160[rbp], xmm0
	mov	DWORD PTR -188[rbp], 0
	jmp	.L3510
.L3517:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -144[rbp], xmm0
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -128[rbp], xmm0
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -112[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -144[rbp]
	movaps	XMMWORD PTR -32[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -128[rbp]
	movaps	XMMWORD PTR -16[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -32[rbp]
	mulps	xmm0, XMMWORD PTR -16[rbp]
	movaps	XMMWORD PTR -64[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -112[rbp]
	movaps	XMMWORD PTR -48[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -64[rbp]
	mulps	xmm0, XMMWORD PTR -48[rbp]
	movaps	XMMWORD PTR -96[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -160[rbp]
	movaps	XMMWORD PTR -80[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -96[rbp]
	addps	xmm0, XMMWORD PTR -80[rbp]
	movaps	XMMWORD PTR -160[rbp], xmm0
	add	DWORD PTR -188[rbp], 4
.L3510:
	mov	eax, DWORD PTR -188[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jl	.L3517
	movaps	xmm0, XMMWORD PTR -160[rbp]
	call	mm_sum@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE667:
	.size	vector_multiply3_sum, .-vector_multiply3_sum
	.globl	vector_dot_product_rot
	.type	vector_dot_product_rot, @function
vector_dot_product_rot:
.LFB668:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 272
	mov	QWORD PTR -248[rbp], rdi
	mov	QWORD PTR -256[rbp], rsi
	mov	QWORD PTR -264[rbp], rdx
	mov	DWORD PTR -268[rbp], ecx
	pxor	xmm0, xmm0
	movaps	XMMWORD PTR -208[rbp], xmm0
	pxor	xmm0, xmm0
	movaps	XMMWORD PTR -192[rbp], xmm0
	mov	DWORD PTR -236[rbp], 0
	jmp	.L3522
.L3530:
	mov	eax, DWORD PTR -236[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, rdx
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -176[rbp], xmm0
	mov	eax, DWORD PTR -236[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -256[rbp]
	add	rax, rdx
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -160[rbp], xmm0
	mov	eax, DWORD PTR -236[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -264[rbp]
	add	rax, rdx
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -144[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -176[rbp]
	movaps	XMMWORD PTR -32[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -144[rbp]
	movaps	XMMWORD PTR -16[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -32[rbp]
	mulps	xmm0, XMMWORD PTR -16[rbp]
	movaps	XMMWORD PTR -64[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -208[rbp]
	movaps	XMMWORD PTR -48[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -64[rbp]
	addps	xmm0, XMMWORD PTR -48[rbp]
	movaps	XMMWORD PTR -208[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -160[rbp]
	movaps	XMMWORD PTR -96[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -144[rbp]
	movaps	XMMWORD PTR -80[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -96[rbp]
	mulps	xmm0, XMMWORD PTR -80[rbp]
	movaps	XMMWORD PTR -128[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -192[rbp]
	movaps	XMMWORD PTR -112[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -128[rbp]
	addps	xmm0, XMMWORD PTR -112[rbp]
	movaps	XMMWORD PTR -192[rbp], xmm0
	add	DWORD PTR -236[rbp], 4
.L3522:
	mov	eax, DWORD PTR -236[rbp]
	cmp	eax, DWORD PTR -268[rbp]
	jl	.L3530
	movaps	xmm0, XMMWORD PTR -208[rbp]
	call	mm_sum@PLT
	movss	DWORD PTR -272[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -192[rbp]
	call	mm_sum@PLT
	mulss	xmm0, DWORD PTR -272[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE668:
	.size	vector_dot_product_rot, .-vector_dot_product_rot
	.globl	vector_sum
	.type	vector_sum, @function
vector_sum:
.LFB669:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -88[rbp], rdi
	mov	DWORD PTR -92[rbp], esi
	cmp	DWORD PTR -92[rbp], 4
	jne	.L3533
	mov	rax, QWORD PTR -88[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	addss	xmm1, xmm0
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	addss	xmm1, xmm0
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	jmp	.L3534
.L3533:
	pxor	xmm0, xmm0
	movaps	XMMWORD PTR -64[rbp], xmm0
	mov	DWORD PTR -76[rbp], 0
	jmp	.L3536
.L3539:
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -48[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -48[rbp]
	movaps	XMMWORD PTR -32[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -64[rbp]
	movaps	XMMWORD PTR -16[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -32[rbp]
	addps	xmm0, XMMWORD PTR -16[rbp]
	movaps	XMMWORD PTR -64[rbp], xmm0
	add	DWORD PTR -76[rbp], 4
.L3536:
	mov	eax, DWORD PTR -76[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jl	.L3539
	movaps	xmm0, XMMWORD PTR -64[rbp]
	call	mm_sum@PLT
.L3534:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE669:
	.size	vector_sum, .-vector_sum
	.globl	vector_multiply_by
	.type	vector_multiply_by, @function
vector_multiply_by:
.LFB670:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 24
	mov	QWORD PTR -136[rbp], rdi
	movss	DWORD PTR -140[rbp], xmm0
	mov	DWORD PTR -144[rbp], esi
	movss	xmm0, DWORD PTR -140[rbp]
	movss	DWORD PTR -116[rbp], xmm0
	movss	xmm0, DWORD PTR -116[rbp]
	shufps	xmm0, xmm0, 0
	movaps	XMMWORD PTR -96[rbp], xmm0
	mov	DWORD PTR -120[rbp], 0
	jmp	.L3542
.L3545:
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -80[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -80[rbp]
	movaps	XMMWORD PTR -32[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -96[rbp]
	movaps	XMMWORD PTR -16[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -32[rbp]
	mulps	xmm0, XMMWORD PTR -16[rbp]
	movaps	XMMWORD PTR -64[rbp], xmm0
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	movaps	xmm0, XMMWORD PTR -64[rbp]
	movaps	XMMWORD PTR -48[rbp], xmm0
	mov	rax, QWORD PTR -112[rbp]
	movaps	xmm0, XMMWORD PTR -48[rbp]
	movaps	XMMWORD PTR [rax], xmm0
	nop
	add	DWORD PTR -120[rbp], 4
.L3542:
	mov	eax, DWORD PTR -120[rbp]
	cmp	eax, DWORD PTR -144[rbp]
	jl	.L3545
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE670:
	.size	vector_multiply_by, .-vector_multiply_by
	.globl	vector_add_mult
	.type	vector_add_mult, @function
vector_add_mult:
.LFB671:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 72
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	movss	DWORD PTR -180[rbp], xmm0
	mov	DWORD PTR -184[rbp], edx
	movss	xmm0, DWORD PTR -180[rbp]
	movss	DWORD PTR -156[rbp], xmm0
	movss	xmm0, DWORD PTR -156[rbp]
	shufps	xmm0, xmm0, 0
	movaps	XMMWORD PTR -128[rbp], xmm0
	mov	DWORD PTR -160[rbp], 0
	jmp	.L3548
.L3553:
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -112[rbp], xmm0
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -96[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -96[rbp]
	movaps	XMMWORD PTR -32[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -128[rbp]
	movaps	XMMWORD PTR -16[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -32[rbp]
	mulps	xmm0, XMMWORD PTR -16[rbp]
	movaps	xmm1, XMMWORD PTR -112[rbp]
	movaps	XMMWORD PTR -64[rbp], xmm1
	movaps	XMMWORD PTR -48[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -64[rbp]
	addps	xmm0, XMMWORD PTR -48[rbp]
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	movaps	XMMWORD PTR -80[rbp], xmm0
	mov	rax, QWORD PTR -152[rbp]
	movaps	xmm0, XMMWORD PTR -80[rbp]
	movaps	XMMWORD PTR [rax], xmm0
	nop
	add	DWORD PTR -160[rbp], 4
.L3548:
	mov	eax, DWORD PTR -160[rbp]
	cmp	eax, DWORD PTR -184[rbp]
	jl	.L3553
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE671:
	.size	vector_add_mult, .-vector_add_mult
	.globl	matrixt_by_vector4
	.type	matrixt_by_vector4, @function
matrixt_by_vector4:
.LFB672:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 72
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	mov	QWORD PTR -184[rbp], rdx
	pxor	xmm0, xmm0
	movaps	XMMWORD PTR -128[rbp], xmm0
	mov	DWORD PTR -160[rbp], 0
	jmp	.L3556
.L3562:
	mov	eax, DWORD PTR -160[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	movaps	xmm0, XMMWORD PTR [rax]
	movaps	XMMWORD PTR -112[rbp], xmm0
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -156[rbp], xmm0
	movss	xmm0, DWORD PTR -156[rbp]
	shufps	xmm0, xmm0, 0
	nop
	movaps	XMMWORD PTR -96[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -96[rbp]
	movaps	XMMWORD PTR -48[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -112[rbp]
	movaps	XMMWORD PTR -32[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -48[rbp]
	mulps	xmm0, XMMWORD PTR -32[rbp]
	movaps	xmm1, XMMWORD PTR -128[rbp]
	movaps	XMMWORD PTR -80[rbp], xmm1
	movaps	XMMWORD PTR -64[rbp], xmm0
	movaps	xmm0, XMMWORD PTR -80[rbp]
	addps	xmm0, XMMWORD PTR -64[rbp]
	movaps	XMMWORD PTR -128[rbp], xmm0
	add	DWORD PTR -160[rbp], 1
.L3556:
	cmp	DWORD PTR -160[rbp], 3
	jle	.L3562
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -136[rbp], rax
	movaps	xmm0, XMMWORD PTR -128[rbp]
	movaps	XMMWORD PTR -16[rbp], xmm0
	mov	rax, QWORD PTR -136[rbp]
	movaps	xmm0, XMMWORD PTR -16[rbp]
	movaps	XMMWORD PTR [rax], xmm0
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE672:
	.size	matrixt_by_vector4, .-matrixt_by_vector4
	.section	.rodata
	.type	__PRETTY_FUNCTION__.76, @object
	.size	__PRETTY_FUNCTION__.76, 5
__PRETTY_FUNCTION__.76:
	.string	"main"
	.local	time_now.75
	.comm	time_now.75,16,16
	.local	time_set.74
	.comm	time_set.74,1,1
	.local	time_last.73
	.comm	time_last.73,16,16
	.local	time_begin.72
	.comm	time_begin.72,16,16
	.local	elapsed.71
	.comm	elapsed.71,16,16
	.align 8
	.type	__PRETTY_FUNCTION__.70, @object
	.size	__PRETTY_FUNCTION__.70, 11
__PRETTY_FUNCTION__.70:
	.string	"LogMLRates"
	.align 16
	.type	__PRETTY_FUNCTION__.69, @object
	.size	__PRETTY_FUNCTION__.69, 20
__PRETTY_FUNCTION__.69:
	.string	"AllocRateCategories"
	.type	__PRETTY_FUNCTION__.68, @object
	.size	__PRETTY_FUNCTION__.68, 7
__PRETTY_FUNCTION__.68:
	.string	"FastNJ"
	.align 16
	.type	__PRETTY_FUNCTION__.67, @object
	.size	__PRETTY_FUNCTION__.67, 19
__PRETTY_FUNCTION__.67:
	.string	"ExhaustiveNJSearch"
	.align 8
	.type	__PRETTY_FUNCTION__.66, @object
	.size	__PRETTY_FUNCTION__.66, 13
__PRETTY_FUNCTION__.66:
	.string	"FastNJSearch"
	.local	buf.65
	.comm	buf.65,5000,32
	.align 16
	.type	__PRETTY_FUNCTION__.64, @object
	.size	__PRETTY_FUNCTION__.64, 17
__PRETTY_FUNCTION__.64:
	.string	"ReadTreeAddChild"
	.align 16
	.type	__PRETTY_FUNCTION__.63, @object
	.size	__PRETTY_FUNCTION__.63, 21
__PRETTY_FUNCTION__.63:
	.string	"ReadTreeMaybeAddLeaf"
	.align 8
	.type	__PRETTY_FUNCTION__.62, @object
	.size	__PRETTY_FUNCTION__.62, 15
__PRETTY_FUNCTION__.62:
	.string	"ReadTreeRemove"
	.align 8
	.type	__PRETTY_FUNCTION__.61, @object
	.size	__PRETTY_FUNCTION__.61, 9
__PRETTY_FUNCTION__.61:
	.string	"ReadTree"
	.align 8
	.type	__PRETTY_FUNCTION__.60, @object
	.size	__PRETTY_FUNCTION__.60, 8
__PRETTY_FUNCTION__.60:
	.string	"PrintNJ"
	.align 8
	.type	__PRETTY_FUNCTION__.59, @object
	.size	__PRETTY_FUNCTION__.59, 14
__PRETTY_FUNCTION__.59:
	.string	"ReadAlignment"
	.align 16
	.type	__PRETTY_FUNCTION__.58, @object
	.size	__PRETTY_FUNCTION__.58, 18
__PRETTY_FUNCTION__.58:
	.string	"FreeAlignmentSeqs"
	.align 16
	.type	__PRETTY_FUNCTION__.57, @object
	.size	__PRETTY_FUNCTION__.57, 17
__PRETTY_FUNCTION__.57:
	.string	"AlnToConstraints"
	.local	codeSet.56
	.comm	codeSet.56,4,4
	.local	charToCode.55
	.comm	charToCode.55,256,32
	.align 8
	.type	__PRETTY_FUNCTION__.54, @object
	.size	__PRETTY_FUNCTION__.54, 13
__PRETTY_FUNCTION__.54:
	.string	"SeqToProfile"
	.align 16
	.type	__PRETTY_FUNCTION__.53, @object
	.size	__PRETTY_FUNCTION__.53, 23
__PRETTY_FUNCTION__.53:
	.string	"CorrectedPairDistances"
	.align 8
	.type	__PRETTY_FUNCTION__.52, @object
	.size	__PRETTY_FUNCTION__.52, 12
__PRETTY_FUNCTION__.52:
	.string	"ProfileDist"
	.align 8
	.type	__PRETTY_FUNCTION__.51, @object
	.size	__PRETTY_FUNCTION__.51, 10
__PRETTY_FUNCTION__.51:
	.string	"AddToFreq"
	.align 8
	.type	__PRETTY_FUNCTION__.50, @object
	.size	__PRETTY_FUNCTION__.50, 11
__PRETTY_FUNCTION__.50:
	.string	"SetProfile"
	.align 8
	.type	__PRETTY_FUNCTION__.49, @object
	.size	__PRETTY_FUNCTION__.49, 15
__PRETTY_FUNCTION__.49:
	.string	"AverageProfile"
	.align 8
	.type	__PRETTY_FUNCTION__.48, @object
	.size	__PRETTY_FUNCTION__.48, 11
__PRETTY_FUNCTION__.48:
	.string	"OutProfile"
	.align 16
	.type	__PRETTY_FUNCTION__.47, @object
	.size	__PRETTY_FUNCTION__.47, 17
__PRETTY_FUNCTION__.47:
	.string	"UpdateOutProfile"
	.align 8
	.type	__PRETTY_FUNCTION__.46, @object
	.size	__PRETTY_FUNCTION__.46, 12
__PRETTY_FUNCTION__.46:
	.string	"SetCodeDist"
	.align 8
	.type	__PRETTY_FUNCTION__.45, @object
	.size	__PRETTY_FUNCTION__.45, 11
__PRETTY_FUNCTION__.45:
	.string	"SetBestHit"
	.align 16
	.type	__PRETTY_FUNCTION__.44, @object
	.size	__PRETTY_FUNCTION__.44, 17
__PRETTY_FUNCTION__.44:
	.string	"PosteriorProfile"
	.align 8
	.type	__PRETTY_FUNCTION__.43, @object
	.size	__PRETTY_FUNCTION__.43, 10
__PRETTY_FUNCTION__.43:
	.string	"PairLogLk"
	.align 8
	.type	__PRETTY_FUNCTION__.42, @object
	.size	__PRETTY_FUNCTION__.42, 13
__PRETTY_FUNCTION__.42:
	.string	"PairNegLogLk"
	.align 16
	.type	__PRETTY_FUNCTION__.41, @object
	.size	__PRETTY_FUNCTION__.41, 18
__PRETTY_FUNCTION__.41:
	.string	"MLQuartetOptimize"
	.align 8
	.type	__PRETTY_FUNCTION__.40, @object
	.size	__PRETTY_FUNCTION__.40, 10
__PRETTY_FUNCTION__.40:
	.string	"TreeLogLk"
	.align 8
	.type	__PRETTY_FUNCTION__.39, @object
	.size	__PRETTY_FUNCTION__.39, 9
__PRETTY_FUNCTION__.39:
	.string	"SetMLGtr"
	.align 8
	.type	__PRETTY_FUNCTION__.38, @object
	.size	__PRETTY_FUNCTION__.38, 12
__PRETTY_FUNCTION__.38:
	.string	"GTRNegLogLk"
	.align 16
	.type	__PRETTY_FUNCTION__.37, @object
	.size	__PRETTY_FUNCTION__.37, 24
__PRETTY_FUNCTION__.37:
	.string	"MLSiteLikelihoodsByRate"
	.align 8
	.type	__PRETTY_FUNCTION__.36, @object
	.size	__PRETTY_FUNCTION__.36, 11
__PRETTY_FUNCTION__.36:
	.string	"SetMLRates"
	.align 16
	.type	__PRETTY_FUNCTION__.35, @object
	.size	__PRETTY_FUNCTION__.35, 25
__PRETTY_FUNCTION__.35:
	.string	"OptimizeAllBranchLengths"
	.align 8
	.type	__PRETTY_FUNCTION__.34, @object
	.size	__PRETTY_FUNCTION__.34, 13
__PRETTY_FUNCTION__.34:
	.string	"FindSPRSteps"
	.align 8
	.type	__PRETTY_FUNCTION__.33, @object
	.size	__PRETTY_FUNCTION__.33, 14
__PRETTY_FUNCTION__.33:
	.string	"UnwindSPRStep"
	.align 8
	.type	__PRETTY_FUNCTION__.32, @object
	.size	__PRETTY_FUNCTION__.32, 13
__PRETTY_FUNCTION__.32:
	.string	"UpdateForNNI"
	.type	__PRETTY_FUNCTION__.31, @object
	.size	__PRETTY_FUNCTION__.31, 4
__PRETTY_FUNCTION__.31:
	.string	"SPR"
	.align 16
	.type	__PRETTY_FUNCTION__.30, @object
	.size	__PRETTY_FUNCTION__.30, 17
__PRETTY_FUNCTION__.30:
	.string	"RecomputeProfile"
	.align 8
	.type	__PRETTY_FUNCTION__.29, @object
	.size	__PRETTY_FUNCTION__.29, 13
__PRETTY_FUNCTION__.29:
	.string	"ReplaceChild"
	.align 8
	.type	__PRETTY_FUNCTION__.28, @object
	.size	__PRETTY_FUNCTION__.28, 10
__PRETTY_FUNCTION__.28:
	.string	"SetupABCD"
	.align 8
	.type	__PRETTY_FUNCTION__.27, @object
	.size	__PRETTY_FUNCTION__.27, 8
__PRETTY_FUNCTION__.27:
	.string	"Sibling"
	.align 8
	.type	__PRETTY_FUNCTION__.26, @object
	.size	__PRETTY_FUNCTION__.26, 13
__PRETTY_FUNCTION__.26:
	.string	"RootSiblings"
	.align 8
	.type	__PRETTY_FUNCTION__.25, @object
	.size	__PRETTY_FUNCTION__.25, 13
__PRETTY_FUNCTION__.25:
	.string	"SplitSupport"
	.align 8
	.type	__PRETTY_FUNCTION__.24, @object
	.size	__PRETTY_FUNCTION__.24, 10
__PRETTY_FUNCTION__.24:
	.string	"SHSupport"
	.align 8
	.type	__PRETTY_FUNCTION__.23, @object
	.size	__PRETTY_FUNCTION__.23, 13
__PRETTY_FUNCTION__.23:
	.string	"SetCriterion"
	.align 8
	.type	__PRETTY_FUNCTION__.22, @object
	.size	__PRETTY_FUNCTION__.22, 15
__PRETTY_FUNCTION__.22:
	.string	"SetOutDistance"
	.align 8
	.type	__PRETTY_FUNCTION__.21, @object
	.size	__PRETTY_FUNCTION__.21, 12
__PRETTY_FUNCTION__.21:
	.string	"InitTopHits"
	.align 16
	.type	__PRETTY_FUNCTION__.20, @object
	.size	__PRETTY_FUNCTION__.20, 18
__PRETTY_FUNCTION__.20:
	.string	"SetAllLeafTopHits"
	.align 16
	.type	__PRETTY_FUNCTION__.19, @object
	.size	__PRETTY_FUNCTION__.19, 19
__PRETTY_FUNCTION__.19:
	.string	"GetBestFromTopHits"
	.align 8
	.type	__PRETTY_FUNCTION__.18, @object
	.size	__PRETTY_FUNCTION__.18, 15
__PRETTY_FUNCTION__.18:
	.string	"UniqueBestHits"
	.align 8
	.type	__PRETTY_FUNCTION__.17, @object
	.size	__PRETTY_FUNCTION__.17, 11
__PRETTY_FUNCTION__.17:
	.string	"TopHitJoin"
	.align 8
	.type	__PRETTY_FUNCTION__.16, @object
	.size	__PRETTY_FUNCTION__.16, 14
__PRETTY_FUNCTION__.16:
	.string	"UpdateVisible"
	.align 16
	.type	__PRETTY_FUNCTION__.15, @object
	.size	__PRETTY_FUNCTION__.15, 17
__PRETTY_FUNCTION__.15:
	.string	"UpdateTopVisible"
	.align 16
	.type	__PRETTY_FUNCTION__.14, @object
	.size	__PRETTY_FUNCTION__.14, 16
__PRETTY_FUNCTION__.14:
	.string	"ResetTopVisible"
	.align 8
	.type	__PRETTY_FUNCTION__.13, @object
	.size	__PRETTY_FUNCTION__.13, 15
__PRETTY_FUNCTION__.13:
	.string	"TopHitNJSearch"
	.type	__PRETTY_FUNCTION__.12, @object
	.size	__PRETTY_FUNCTION__.12, 6
__PRETTY_FUNCTION__.12:
	.string	"NGaps"
	.align 16
	.type	__PRETTY_FUNCTION__.11, @object
	.size	__PRETTY_FUNCTION__.11, 17
__PRETTY_FUNCTION__.11:
	.string	"SortSaveBestHits"
	.align 16
	.type	__PRETTY_FUNCTION__.10, @object
	.size	__PRETTY_FUNCTION__.10, 17
__PRETTY_FUNCTION__.10:
	.string	"TransferBestHits"
	.align 8
	.type	__PRETTY_FUNCTION__.9, @object
	.size	__PRETTY_FUNCTION__.9, 9
__PRETTY_FUNCTION__.9:
	.string	"mymalloc"
	.align 8
	.type	__PRETTY_FUNCTION__.8, @object
	.size	__PRETTY_FUNCTION__.8, 10
__PRETTY_FUNCTION__.8:
	.string	"myrealloc"
	.align 8
	.type	__PRETTY_FUNCTION__.7, @object
	.size	__PRETTY_FUNCTION__.7, 14
__PRETTY_FUNCTION__.7:
	.string	"MakeHashtable"
	.align 8
	.type	__PRETTY_FUNCTION__.6, @object
	.size	__PRETTY_FUNCTION__.6, 12
__PRETTY_FUNCTION__.6:
	.string	"UniquifyAln"
	.align 16
	.type	__PRETTY_FUNCTION__.5, @object
	.size	__PRETTY_FUNCTION__.5, 18
__PRETTY_FUNCTION__.5:
	.string	"TraversePostorder"
	.align 8
	.type	__PRETTY_FUNCTION__.4, @object
	.size	__PRETTY_FUNCTION__.4, 13
__PRETTY_FUNCTION__.4:
	.string	"GetUpProfile"
	.align 16
	.type	__PRETTY_FUNCTION__.3, @object
	.size	__PRETTY_FUNCTION__.3, 16
__PRETTY_FUNCTION__.3:
	.string	"DeleteUpProfile"
	.align 8
	.type	__PRETTY_FUNCTION__.2, @object
	.size	__PRETTY_FUNCTION__.2, 10
__PRETTY_FUNCTION__.2:
	.string	"CreateGTR"
	.align 16
	.type	__PRETTY_FUNCTION__.1, @object
	.size	__PRETTY_FUNCTION__.1, 23
__PRETTY_FUNCTION__.1:
	.string	"CreateTransitionMatrix"
	.type	__PRETTY_FUNCTION__.0, @object
	.size	__PRETTY_FUNCTION__.0, 5
__PRETTY_FUNCTION__.0:
	.string	"tqli"
	.align 8
.LC4:
	.long	0
	.long	1072693248
	.align 8
.LC5:
	.long	0
	.long	1070596096
	.align 8
.LC18:
	.long	0
	.long	1071644672
	.align 8
.LC37:
	.long	1202590843
	.long	1065646817
	.align 8
.LC39:
	.long	0
	.long	0
	.align 8
.LC76:
	.long	-1998362383
	.long	1055193269
	.align 16
.LC80:
	.long	-1
	.long	2147483647
	.long	0
	.long	0
	.align 8
.LC150:
	.long	0
	.long	1074790400
	.align 8
.LC151:
	.long	-17155601
	.long	1072049730
	.align 16
.LC158:
	.long	2147483647
	.long	0
	.long	0
	.long	0
	.align 8
.LC160:
	.long	2025163840
	.long	-1005211875
	.align 8
.LC162:
	.long	-755914244
	.long	1062232653
	.align 8
.LC187:
	.long	0
	.long	1079574528
	.align 8
.LC198:
	.long	-858993459
	.long	1072483532
	.align 4
.LC204:
	.long	-1082130432
	.align 4
.LC206:
	.long	1065353216
	.align 4
.LC209:
	.long	1073741824
	.align 8
.LC218:
	.long	0
	.long	1073741824
	.align 8
.LC222:
	.long	0
	.long	-1074790400
	.align 4
.LC233:
	.long	1621981420
	.align 8
.LC234:
	.long	2025163840
	.long	1142271773
	.align 8
.LC325:
	.long	0
	.long	1074266112
	.align 8
.LC328:
	.long	2061584302
	.long	1072147988
	.align 8
.LC329:
	.long	0
	.long	-1075314688
	.align 8
.LC330:
	.long	2061584302
	.long	1072672276
	.align 8
.LC331:
	.long	-858993459
	.long	-1074475828
	.align 8
.LC332:
	.long	0
	.long	1076101120
	.align 4
.LC335:
	.long	1008981770
	.align 8
.LC344:
	.long	-640172613
	.long	1037794527
	.align 4
.LC345:
	.long	507307272
	.align 16
.LC351:
	.long	-2147483648
	.long	0
	.long	0
	.long	0
	.align 8
.LC374:
	.long	-1598689907
	.long	1051772663
	.align 8
.LC384:
	.long	-755914244
	.long	1061184077
	.align 4
.LC386:
	.long	1048576000
	.align 4
.LC388:
	.long	897988541
	.align 8
.LC391:
	.long	1431655765
	.long	-1074440875
	.align 8
.LC392:
	.long	0
	.long	1072168960
	.align 8
.LC393:
	.long	-755914244
	.long	1060135501
	.align 8
.LC396:
	.long	0
	.long	1086556160
	.align 8
.LC397:
	.long	-1145744108
	.long	1075997617
	.align 8
.LC398:
	.long	-350469331
	.long	1058682594
	.align 8
.LC423:
	.long	630506365
	.long	1420970413
	.align 16
.LC426:
	.long	0
	.long	-2147483648
	.long	0
	.long	0
	.align 8
.LC427:
	.long	0
	.long	1075314688
	.align 8
.LC437:
	.long	0
	.long	1077149696
	.align 8
.LC438:
	.long	-1717986918
	.long	1068079513
	.align 4
.LC528:
	.long	1077936128
	.align 4
.LC555:
	.long	-525502228
	.align 8
.LC606:
	.long	982710508
	.long	1070887103
	.align 8
.LC607:
	.long	-441961893
	.long	-1076440592
	.align 8
.LC608:
	.long	39804520
	.long	1073512687
	.align 8
.LC609:
	.long	1324513488
	.long	-1073929251
	.align 8
.LC610:
	.long	-688641725
	.long	1073039565
	.align 8
.LC611:
	.long	410062862
	.long	1070442097
	.align 8
.LC612:
	.long	862313984
	.long	1071220805
	.align 8
.LC616:
	.long	-2054437476
	.long	1071149601
	.align 8
.LC617:
	.long	0
	.long	1075052544
	.align 8
.LC619:
	.long	1717986918
	.long	1072588390
	.align 8
.LC621:
	.long	0
	.long	1075576832
	.align 8
.LC622:
	.long	-932921673
	.long	1072523249
	.align 8
.LC623:
	.long	327234725
	.long	-1086095048
	.align 8
.LC624:
	.long	436316041
	.long	1061814688
	.align 8
.LC625:
	.long	381775383
	.long	1063698796
	.align 8
.LC626:
	.long	1431655741
	.long	1068848469
	.align 8
.LC627:
	.long	-500134854
	.long	1044740494
	.align 8
.LC628:
	.long	966823146
	.long	1177108057
	.align 8
.LC629:
	.long	2
	.long	1041235968
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"857736.c"
	.text
	.global	usage
	.section	.rodata
	.align	2
.LC3:
	.ascii	"  FastTree protein_alignment > tree\012  FastTree <"
	.ascii	" protein_alignment > tree\012  FastTree -out tree p"
	.ascii	"rotein_alignment\012  FastTree -nt nucleotide_align"
	.ascii	"ment > tree\012  FastTree -nt -gtr < nucleotide_ali"
	.ascii	"gnment > tree\012  FastTree < nucleotide_alignment "
	.ascii	"> tree\012FastTree accepts alignments in fasta or p"
	.ascii	"hylip interleaved formats\012\012Common options (mu"
	.ascii	"st be before the alignment file):\012  -quiet to su"
	.ascii	"ppress reporting information\012  -nopr to suppress"
	.ascii	" progress indicator\012  -log logfile -- save inter"
	.ascii	"mediate trees, settings, and model details\012  -fa"
	.ascii	"stest -- speed up the neighbor joining phase & redu"
	.ascii	"ce memory usage\012        (recommended for >50,000"
	.ascii	" sequences)\012  -n <number> to analyze multiple al"
	.ascii	"ignments (phylip format only)\012        (use for g"
	.ascii	"lobal bootstrap, with seqboot and CompareToBootstra"
	.ascii	"p.pl)\012  -nosupport to not compute support values"
	.ascii	"\012  -intree newick_file to set the starting tree("
	.ascii	"s)\012  -intree1 newick_file to use this starting t"
	.ascii	"ree for all the alignments\012        (for faster g"
	.ascii	"lobal bootstrap on huge alignments)\012  -pseudo to"
	.ascii	" use pseudocounts (recommended for highly gapped se"
	.ascii	"quences)\012  -gtr -- generalized time-reversible m"
	.ascii	"odel (nucleotide alignments only)\012  -wag -- Whel"
	.ascii	"an-And-Goldman 2001 model (amino acid alignments on"
	.ascii	"ly)\012  -quote -- allow spaces and other restricte"
	.ascii	"d characters (but not ' ) in\012           sequence"
	.ascii	" names and quote names in the output tree (fasta in"
	.ascii	"put only;\012           FastTree will not be able t"
	.ascii	"o read these trees back in)\012  -noml to turn off "
	.ascii	"maximum-likelihood\012  -nome to turn off minimum-e"
	.ascii	"volution NNIs and SPRs\012        (recommended if r"
	.ascii	"unning additional ML NNIs with -intree)\012  -nome "
	.ascii	"-mllen with -intree to optimize branch lengths for "
	.ascii	"a fixed topology\012  -cat # to specify the number "
	.ascii	"of rate categories of sites (default 20)\012      o"
	.ascii	"r -nocat to use constant rates\012  -gamma -- after"
	.ascii	" optimizing the tree under the CAT approximation,\012"
	.ascii	"      rescale the lengths to optimize the Gamma20 l"
	.ascii	"ikelihood\012  -constraints constraintAlignment to "
	.ascii	"constrain the topology search\012       constraintA"
	.ascii	"lignment sho"
	.ascii	"uld have 1s or 0s to indicates splits\012  -expert "
	.ascii	"-- see more options\012For more information, see ht"
	.ascii	"tp://www.microbesonline.org/fasttree/\012\000"
	.data
	.align	2
	.type	usage, %object
	.size	usage, 4
usage:
	.word	.LC3
	.global	expertUsage
	.section	.rodata
	.align	2
.LC4:
	.ascii	"FastTree [-nt] [-n 100] [-quote] [-pseudo | -pseudo"
	.ascii	" 1.0]\012           [-boot 1000 | -nosupport]\012  "
	.ascii	"         [-intree starting_trees_file | -intree1 st"
	.ascii	"arting_tree_file]\012           [-quiet | -nopr]\012"
	.ascii	"           [-nni 10] [-spr 2] [-noml | -mllen | -ml"
	.ascii	"nni 10]\012           [-mlacc 2] [-cat 20 | -nocat]"
	.ascii	" [-gamma]\012           [-slow | -fastest] [-2nd | "
	.ascii	"-no2nd] [-slownni] [-seed 1253] \012           [-to"
	.ascii	"p | -notop] [-topm 1.0 [-close 0.75] [-refresh 0.8]"
	.ascii	"]\012           [-matrix Matrix | -nomatrix] [-nj |"
	.ascii	" -bionj]\012           [-wag] [-nt] [-gtr] [-gtrrat"
	.ascii	"es ac ag at cg ct gt] [-gtrfreq A C G T]\012       "
	.ascii	"    [ -constraints constraintAlignment [ -constrain"
	.ascii	"tWeight 100.0 ] ]\012           [-log logfile]\012 "
	.ascii	"        [ alignment_file ]\012        [ -out output"
	.ascii	"_newick_file | > newick_tree]\012\012or\012\012Fast"
	.ascii	"Tree [-nt] [-matrix Matrix | -nomatrix] [-rawdist] "
	.ascii	"-makematrix [alignment]\012    [-n 100] > phylip_di"
	.ascii	"stance_matrix\012\012  FastTree supports fasta or p"
	.ascii	"hylip interleaved alignments\012  By default FastTr"
	.ascii	"ee expects protein alignments,  use -nt for nucleot"
	.ascii	"ides\012  FastTree reads standard input if no align"
	.ascii	"ment file is given\012\012Input/output options:\012"
	.ascii	"  -n -- read in multiple alignments in. This only\012"
	.ascii	"    works with phylip interleaved format. For examp"
	.ascii	"le, you can\012    use it with the output from phyl"
	.ascii	"ip's seqboot. If you use -n, FastTree\012    will w"
	.ascii	"rite 1 tree per line to standard output.\012  -intr"
	.ascii	"ee newickfile -- read the starting tree in from new"
	.ascii	"ickfile.\012     Any branch lengths in the starting"
	.ascii	" trees are ignored.\012    -intree with -n will rea"
	.ascii	"d a separate starting tree for each alignment.\012 "
	.ascii	" -intree1 newickfile -- read the same starting tree"
	.ascii	" for each alignment\012  -quiet -- do not write to "
	.ascii	"standard error during normal operation (no progress"
	.ascii	"\012     indicator, no options summary, no likeliho"
	.ascii	"od values, etc.)\012  -nopr -- do not write the pro"
	.ascii	"gress indicator to stderr\012  -log logfile -- save"
	.ascii	" intermediate trees so you can extract\012    the t"
	.ascii	"rees and restart long-running jobs if they crash\012"
	.ascii	"    -log also reports the per-site rates (1 means s"
	.ascii	"lowest category)\012  "
	.ascii	"-quote -- quote sequence names in the output and al"
	.ascii	"low spaces, commas,\012    parentheses, and colons "
	.ascii	"in them but not ' characters (fasta files only)\012"
	.ascii	"\012Distances:\012  Default: For protein sequences,"
	.ascii	" log-corrected distances and an\012     amino acid "
	.ascii	"dissimilarity matrix derived from BLOSUM45\012  or "
	.ascii	"for nucleotide sequences, Jukes-Cantor distances\012"
	.ascii	"  To specify a different matrix, use -matrix FilePr"
	.ascii	"efix or -nomatrix\012  Use -rawdist to turn the log"
	.ascii	"-correction off\012  or to use %different instead o"
	.ascii	"f Jukes-Cantor\012\012  -pseudo [weight] -- Use pse"
	.ascii	"udocounts to estimate distances between\012      se"
	.ascii	"quences with little or no overlap. (Off by default."
	.ascii	") Recommended\012      if analyzing the alignment h"
	.ascii	"as sequences with little or no overlap.\012      If"
	.ascii	" the weight is not specified, it is 1.0\012\012Topo"
	.ascii	"logy refinement:\012  By default, FastTree tries to"
	.ascii	" improve the tree with up to 4*log2(N)\012  rounds "
	.ascii	"of minimum-evolution nearest-neighbor interchanges "
	.ascii	"(NNI),\012  where N is the number of unique sequenc"
	.ascii	"es, 2 rounds of\012  subtree-prune-regraft (SPR) mo"
	.ascii	"ves (also min. evo.), and\012  up to 2*log(N) round"
	.ascii	"s of maximum-likelihood NNIs.\012  Use -nni to set "
	.ascii	"the number of rounds of min. evo. NNIs,\012  and -s"
	.ascii	"pr to set the rounds of SPRs.\012  Use -noml to tur"
	.ascii	"n off both min-evo NNIs and SPRs (useful if refinin"
	.ascii	"g\012       an approximately maximum-likelihood tre"
	.ascii	"e with further NNIs)\012  Use -sprlength set the ma"
	.ascii	"ximum length of a SPR move (default 10)\012  Use -m"
	.ascii	"lnni to set the number of rounds of maximum-likelih"
	.ascii	"ood NNIs\012  Use -mlacc 2 or -mlacc 3 to always op"
	.ascii	"timize all 5 branches at each NNI,\012      and to "
	.ascii	"optimize all 5 branches in 2 or 3 rounds\012  Use -"
	.ascii	"mllen to optimize branch lengths without ML NNIs\012"
	.ascii	"  Use -mllen -nome with -intree to optimize branch "
	.ascii	"lengths on a fixed topology\012  Use -slownni to tu"
	.ascii	"rn off heuristics to avoid constant subtrees (affec"
	.ascii	"ts both\012       ML and ME NNIs)\012\012Maximum li"
	.ascii	"kelihood model options:\012  -wag -- Whelan-And-Gol"
	.ascii	"dman 2001 model instead of (default) Jones-Taylor-T"
	.ascii	"horton 1992 model (a.a. only)\012  -gtr -- generali"
	.ascii	"zed time-reversibl"
	.ascii	"e instead of (default) Jukes-Cantor (nt only)\012  "
	.ascii	"-cat # -- specify the number of rate categories of "
	.ascii	"sites (default 20)\012  -nocat -- no CAT model (jus"
	.ascii	"t 1 category)\012  -gamma -- after the final round "
	.ascii	"of optimizing branch lengths with the CAT model,\012"
	.ascii	"            report the likelihood under the discret"
	.ascii	"e gamma model with the same\012            number o"
	.ascii	"f categories. FastTree uses the same branch lengths"
	.ascii	" but\012            optimizes the gamma shape param"
	.ascii	"eter and the scale of the lengths.\012            T"
	.ascii	"he final tree will have rescaled lengths. Used with"
	.ascii	" -log, this\012            also generates per-site "
	.ascii	"likelihoods for use with CONSEL, see\012           "
	.ascii	" GammaLogToPaup.pl and documentation on the FastTre"
	.ascii	"e web site.\012\012Support value options:\012  By d"
	.ascii	"efault, FastTree computes local support values by r"
	.ascii	"esampling the site\012  likelihoods 1,000 times and"
	.ascii	" the Shimodaira Hasegawa test. If you specify -nome"
	.ascii	",\012  it will compute minimum-evolution bootstrap "
	.ascii	"supports instead\012  In either case, the support v"
	.ascii	"alues are proportions ranging from 0 to 1\012\012  "
	.ascii	"Use -nosupport to turn off support values or -boot "
	.ascii	"100 to use just 100 resamples\012  Use -seed to ini"
	.ascii	"tialize the random number generator\012\012Searchin"
	.ascii	"g for the best join:\012  By default, FastTree comb"
	.ascii	"ines the 'visible set' of fast neighbor-joining wit"
	.ascii	"h\012      local hill-climbing as in relaxed neighb"
	.ascii	"or-joining\012  -slow -- exhaustive search (like NJ"
	.ascii	" or BIONJ, but different gap handling)\012      -sl"
	.ascii	"ow takes half an hour instead of 8 seconds for 1,25"
	.ascii	"0 proteins\012  -fastest -- search the visible set "
	.ascii	"(the top hit for each node) only\012      Unlike th"
	.ascii	"e original fast neighbor-joining, -fastest updates "
	.ascii	"visible(C)\012      after joining A and B if join(A"
	.ascii	"B,C) is better than join(C,visible(C))\012      -fa"
	.ascii	"stest also updates out-distances in a very lazy way"
	.ascii	",\012      -fastest sets -2nd on as well, use -fast"
	.ascii	"est -no2nd to avoid this\012\012Top-hit heuristics:"
	.ascii	"\012  By default, FastTree uses a top-hit list to s"
	.ascii	"peed up search\012  Use -notop (or -slow) to turn t"
	.ascii	"his feature off\012         and compare all leaves "
	.ascii	"to each ot"
	.ascii	"her,\012         and all new joined nodes to each o"
	.ascii	"ther\012  -topm 1.0 -- set the top-hit list size to"
	.ascii	" parameter*sqrt(N)\012         FastTree estimates t"
	.ascii	"he top m hits of a leaf from the\012         top 2*"
	.ascii	"m hits of a 'close' neighbor, where close is\012   "
	.ascii	"      defined as d(seed,close) < 0.75 * d(seed, hit"
	.ascii	" of rank 2*m),\012         and updates the top-hits"
	.ascii	" as joins proceed\012  -close 0.75 -- modify the cl"
	.ascii	"ose heuristic, lower is more conservative\012  -ref"
	.ascii	"resh 0.8 -- compare a joined node to all other node"
	.ascii	"s if its\012         top-hit list is less than 80% "
	.ascii	"of the desired length,\012         or if the age of"
	.ascii	" the top-hit list is log2(m) or greater\012   -2nd "
	.ascii	"or -no2nd to turn 2nd-level top hits heuristic on o"
	.ascii	"r off\012      This reduces memory usage and runnin"
	.ascii	"g time but may lead to\012      marginal reductions"
	.ascii	" in tree quality.\012      (By default, -fastest tu"
	.ascii	"rns on -2nd.)\012\012Join options:\012  -nj: regula"
	.ascii	"r (unweighted) neighbor-joining (default)\012  -bio"
	.ascii	"nj: weighted joins as in BIONJ\012          FastTre"
	.ascii	"e will also weight joins during NNIs\012\012Constra"
	.ascii	"ined topology search options:\012  -constraints ali"
	.ascii	"gnmentfile -- an alignment with values of 0, 1, and"
	.ascii	" -\012       Not all sequences need be present. A c"
	.ascii	"olumn of 0s and 1s defines a\012       constrained "
	.ascii	"split. Some constraints may be violated\012       ("
	.ascii	"see 'violating constraints:' in standard error).\012"
	.ascii	"  -constraintWeight -- how strongly to weight the c"
	.ascii	"onstraints. A value of 1\012       means a penalty "
	.ascii	"of 1 in tree length for violating a constraint\012 "
	.ascii	"      Default: 100.0\012\012For more information, s"
	.ascii	"ee http://www.microbesonline.org/fasttree/\012   or"
	.ascii	" the comments in the source code\012\000"
	.data
	.align	2
	.type	expertUsage, %object
	.size	expertUsage, 4
expertUsage:
	.word	.LC4
	.global	verbose
	.align	2
	.type	verbose, %object
	.size	verbose, 4
verbose:
	.word	1
	.global	showProgress
	.align	2
	.type	showProgress, %object
	.size	showProgress, 4
showProgress:
	.word	1
	.global	slow
	.bss
	.align	2
	.type	slow, %object
	.size	slow, 4
slow:
	.space	4
	.global	fastest
	.align	2
	.type	fastest, %object
	.size	fastest, 4
fastest:
	.space	4
	.global	useTopHits2nd
	.type	useTopHits2nd, %object
	.size	useTopHits2nd, 1
useTopHits2nd:
	.space	1
	.global	bionj
	.align	2
	.type	bionj, %object
	.size	bionj, 4
bionj:
	.space	4
	.global	tophitsMult
	.data
	.align	3
	.type	tophitsMult, %object
	.size	tophitsMult, 8
tophitsMult:
	.word	0
	.word	1072693248
	.global	tophitsClose
	.align	3
	.type	tophitsClose, %object
	.size	tophitsClose, 8
tophitsClose:
	.word	0
	.word	-1074790400
	.global	topvisibleMult
	.align	3
	.type	topvisibleMult, %object
	.size	topvisibleMult, 8
topvisibleMult:
	.word	0
	.word	1073217536
	.global	tophitsRefresh
	.align	3
	.type	tophitsRefresh, %object
	.size	tophitsRefresh, 8
tophitsRefresh:
	.word	2576980378
	.word	1072273817
	.global	tophits2Mult
	.align	3
	.type	tophits2Mult, %object
	.size	tophits2Mult, 8
tophits2Mult:
	.word	0
	.word	1072693248
	.global	tophits2Safety
	.align	2
	.type	tophits2Safety, %object
	.size	tophits2Safety, 4
tophits2Safety:
	.word	3
	.global	tophits2Refresh
	.align	3
	.type	tophits2Refresh, %object
	.size	tophits2Refresh, 8
tophits2Refresh:
	.word	858993459
	.word	1071854387
	.global	staleOutLimit
	.align	3
	.type	staleOutLimit, %object
	.size	staleOutLimit, 8
staleOutLimit:
	.word	1202590843
	.word	1065646817
	.global	fResetOutProfile
	.align	3
	.type	fResetOutProfile, %object
	.size	fResetOutProfile, 8
fResetOutProfile:
	.word	1202590843
	.word	1066695393
	.global	nResetOutProfile
	.align	2
	.type	nResetOutProfile, %object
	.size	nResetOutProfile, 4
nResetOutProfile:
	.word	200
	.global	nCodes
	.align	2
	.type	nCodes, %object
	.size	nCodes, 4
nCodes:
	.word	20
	.global	useMatrix
	.type	useMatrix, %object
	.size	useMatrix, 1
useMatrix:
	.byte	1
	.global	logdist
	.type	logdist, %object
	.size	logdist, 1
logdist:
	.byte	1
	.global	pseudoWeight
	.bss
	.align	3
	.type	pseudoWeight, %object
	.size	pseudoWeight, 8
pseudoWeight:
	.space	8
	.global	constraintWeight
	.data
	.align	3
	.type	constraintWeight, %object
	.size	constraintWeight, 8
constraintWeight:
	.word	0
	.word	1079574528
	.global	MEMinDelta
	.align	3
	.type	MEMinDelta, %object
	.size	MEMinDelta, 8
MEMinDelta:
	.word	3944497965
	.word	1058682594
	.global	fastNNI
	.type	fastNNI, %object
	.size	fastNNI, 1
fastNNI:
	.byte	1
	.global	gammaLogLk
	.bss
	.type	gammaLogLk, %object
	.size	gammaLogLk, 1
gammaLogLk:
	.space	1
	.global	LkUnderflow
	.section	.rodata
	.align	3
	.type	LkUnderflow, %object
	.size	LkUnderflow, 8
LkUnderflow:
	.word	3944497965
	.word	1058682594
	.global	LkUnderflowInv
	.align	3
	.type	LkUnderflowInv, %object
	.size	LkUnderflowInv, 8
LkUnderflowInv:
	.word	0
	.word	1086556160
	.global	LogLkUnderflow
	.align	3
	.type	LogLkUnderflow, %object
	.size	LogLkUnderflow, 8
LogLkUnderflow:
	.word	3149223188
	.word	1075997617
	.global	Log2
	.align	3
	.type	Log2, %object
	.size	Log2, 8
Log2:
	.word	4277811692
	.word	1072049730
	.global	MLMinBranchLengthTolerance
	.align	3
	.type	MLMinBranchLengthTolerance, %object
	.size	MLMinBranchLengthTolerance, 8
MLMinBranchLengthTolerance:
	.word	3944497965
	.word	1058682594
	.global	MLFTolBranchLength
	.align	3
	.type	MLFTolBranchLength, %object
	.size	MLFTolBranchLength, 8
MLFTolBranchLength:
	.word	3539053052
	.word	1062232653
	.global	MLMinBranchLength
	.align	3
	.type	MLMinBranchLength, %object
	.size	MLMinBranchLength, 8
MLMinBranchLength:
	.word	3539053052
	.word	1061184077
	.global	MLMinRelBranchLength
	.align	3
	.type	MLMinRelBranchLength, %object
	.size	MLMinRelBranchLength, 8
MLMinRelBranchLength:
	.word	3539053052
	.word	1060135501
	.global	mlAccuracy
	.data
	.align	2
	.type	mlAccuracy, %object
	.size	mlAccuracy, 4
mlAccuracy:
	.word	1
	.global	closeLogLkLimit
	.align	3
	.type	closeLogLkLimit, %object
	.size	closeLogLkLimit, 8
closeLogLkLimit:
	.word	0
	.word	1075052544
	.global	treeLogLkDelta
	.align	3
	.type	treeLogLkDelta, %object
	.size	treeLogLkDelta, 8
treeLogLkDelta:
	.word	2576980378
	.word	1069128089
	.global	exactML
	.type	exactML, %object
	.size	exactML, 1
exactML:
	.byte	1
	.global	approxMLminf
	.align	3
	.type	approxMLminf, %object
	.size	approxMLminf, 8
approxMLminf:
	.word	1717986918
	.word	1072588390
	.global	approxMLminratio
	.align	3
	.type	approxMLminratio, %object
	.size	approxMLminratio, 8
approxMLminratio:
	.word	1431655765
	.word	1071994197
	.global	approxMLnearT
	.align	3
	.type	approxMLnearT, %object
	.size	approxMLnearT, 8
approxMLnearT:
	.word	2576980378
	.word	1070176665
	.global	nDefaultRateCats
	.section	.rodata
	.align	2
	.type	nDefaultRateCats, %object
	.size	nDefaultRateCats, 4
nDefaultRateCats:
	.word	20
	.global	profileOps
	.bss
	.align	2
	.type	profileOps, %object
	.size	profileOps, 4
profileOps:
	.space	4
	.global	outprofileOps
	.align	2
	.type	outprofileOps, %object
	.size	outprofileOps, 4
outprofileOps:
	.space	4
	.global	seqOps
	.align	2
	.type	seqOps, %object
	.size	seqOps, 4
seqOps:
	.space	4
	.global	profileAvgOps
	.align	2
	.type	profileAvgOps, %object
	.size	profileAvgOps, 4
profileAvgOps:
	.space	4
	.global	nHillBetter
	.align	2
	.type	nHillBetter, %object
	.size	nHillBetter, 4
nHillBetter:
	.space	4
	.global	nCloseUsed
	.align	2
	.type	nCloseUsed, %object
	.size	nCloseUsed, 4
nCloseUsed:
	.space	4
	.global	nClose2Used
	.align	2
	.type	nClose2Used, %object
	.size	nClose2Used, 4
nClose2Used:
	.space	4
	.global	nRefreshTopHits
	.align	2
	.type	nRefreshTopHits, %object
	.size	nRefreshTopHits, 4
nRefreshTopHits:
	.space	4
	.global	nVisibleUpdate
	.align	2
	.type	nVisibleUpdate, %object
	.size	nVisibleUpdate, 4
nVisibleUpdate:
	.space	4
	.global	nNNI
	.align	2
	.type	nNNI, %object
	.size	nNNI, 4
nNNI:
	.space	4
	.global	nSPR
	.align	2
	.type	nSPR, %object
	.size	nSPR, 4
nSPR:
	.space	4
	.global	nML_NNI
	.align	2
	.type	nML_NNI, %object
	.size	nML_NNI, 4
nML_NNI:
	.space	4
	.global	nSuboptimalSplits
	.align	2
	.type	nSuboptimalSplits, %object
	.size	nSuboptimalSplits, 4
nSuboptimalSplits:
	.space	4
	.global	nSuboptimalConstrained
	.align	2
	.type	nSuboptimalConstrained, %object
	.size	nSuboptimalConstrained, 4
nSuboptimalConstrained:
	.space	4
	.global	nConstraintViolations
	.align	2
	.type	nConstraintViolations, %object
	.size	nConstraintViolations, 4
nConstraintViolations:
	.space	4
	.global	nProfileFreqAlloc
	.align	2
	.type	nProfileFreqAlloc, %object
	.size	nProfileFreqAlloc, 4
nProfileFreqAlloc:
	.space	4
	.global	nProfileFreqAvoid
	.align	2
	.type	nProfileFreqAvoid, %object
	.size	nProfileFreqAvoid, 4
nProfileFreqAvoid:
	.space	4
	.global	szAllAlloc
	.align	2
	.type	szAllAlloc, %object
	.size	szAllAlloc, 4
szAllAlloc:
	.space	4
	.global	mymallocUsed
	.align	2
	.type	mymallocUsed, %object
	.size	mymallocUsed, 4
mymallocUsed:
	.space	4
	.global	maxmallocHeap
	.align	2
	.type	maxmallocHeap, %object
	.size	maxmallocHeap, 4
maxmallocHeap:
	.space	4
	.global	nLkCompute
	.align	2
	.type	nLkCompute, %object
	.size	nLkCompute, 4
nLkCompute:
	.space	4
	.global	nPosteriorCompute
	.align	2
	.type	nPosteriorCompute, %object
	.size	nPosteriorCompute, 4
nPosteriorCompute:
	.space	4
	.global	nAAPosteriorExact
	.align	2
	.type	nAAPosteriorExact, %object
	.size	nAAPosteriorExact, 4
nAAPosteriorExact:
	.space	4
	.global	nAAPosteriorRough
	.align	2
	.type	nAAPosteriorRough, %object
	.size	nAAPosteriorRough, 4
nAAPosteriorRough:
	.space	4
	.global	nStarTests
	.align	2
	.type	nStarTests, %object
	.size	nStarTests, 4
nStarTests:
	.space	4
	.global	codesStringAA
	.section	.rodata
	.align	2
.LC5:
	.ascii	"ARNDCQEGHILKMFPSTWYV\000"
	.data
	.align	2
	.type	codesStringAA, %object
	.size	codesStringAA, 4
codesStringAA:
	.word	.LC5
	.global	codesStringNT
	.section	.rodata
	.align	2
.LC6:
	.ascii	"ACGT\000"
	.data
	.align	2
	.type	codesStringNT, %object
	.size	codesStringNT, 4
codesStringNT:
	.word	.LC6
	.global	codesString
	.bss
	.align	2
	.type	codesString, %object
	.size	codesString, 4
codesString:
	.space	4
	.global	matrixBLOSUM45
	.data
	.align	2
	.type	matrixBLOSUM45, %object
	.size	matrixBLOSUM45, 5040
matrixBLOSUM45:
	.word	0
	.word	1067961893
	.word	1065904599
	.word	1067603697
	.word	1063754564
	.word	1065844406
	.word	1065792174
	.word	1061487317
	.word	1067666766
	.word	1064759371
	.word	1065138102
	.word	1065773283
	.word	1065811583
	.word	1067019183
	.word	1064806354
	.word	1060328275
	.word	1063340960
	.word	1066170984
	.word	1067713914
	.word	1061998419
	.word	1067961893
	.word	0
	.word	1062016044
	.word	1064570403
	.word	1068374047
	.word	1059171546
	.word	1061847028
	.word	1066669800
	.word	1061346021
	.word	1069129341
	.word	1066845717
	.word	1053430020
	.word	1065333210
	.word	1066486881
	.word	1066647793
	.word	1065798570
	.word	1065773525
	.word	1065683586
	.word	1064736098
	.word	1067053985
	.word	1065904599
	.word	1062016044
	.word	0
	.word	1056569243
	.word	1066239650
	.word	1062248931
	.word	1062168505
	.word	1061099981
	.word	1058957096
	.word	1066853649
	.word	1069715600
	.word	1062139417
	.word	1067776707
	.word	1066717548
	.word	1066882359
	.word	1059975710
	.word	1062898015
	.word	1071140396
	.word	1067391437
	.word	1069984358
	.word	1067603697
	.word	1064570403
	.word	1056569243
	.word	0
	.word	1068002426
	.word	1061490740
	.word	1056363233
	.word	1063480237
	.word	1060930085
	.word	1071792004
	.word	1069008532
	.word	1061387299
	.word	1069831610
	.word	1071587938
	.word	1063446442
	.word	1062142292
	.word	1065486607
	.word	1070354320
	.word	1066813249
	.word	1069262387
	.word	1063754564
	.word	1068374047
	.word	1066239650
	.word	1068002426
	.word	0
	.word	1068571748
	.word	1068503473
	.word	1067596388
	.word	1068067859
	.word	1067541574
	.word	1065556014
	.word	1068478780
	.word	1066143148
	.word	1065134812
	.word	1070329438
	.word	1063937870
	.word	1063894317
	.word	1072126526
	.word	1068116773
	.word	1062501461
	.word	1065844406
	.word	1059171546
	.word	1062248931
	.word	1061490740
	.word	1068571748
	.word	0
	.word	1057081089
	.word	1066837970
	.word	1058887201
	.word	1066787066
	.word	1067016936
	.word	1059268809
	.word	1062106671
	.word	1072342197
	.word	1064213447
	.word	1062842031
	.word	1065926165
	.word	1065834668
	.word	1065016119
	.word	1069896696
	.word	1065792174
	.word	1061847028
	.word	1062168505
	.word	1056363233
	.word	1068503473
	.word	1057081089
	.word	0
	.word	1066779894
	.word	1061490882
	.word	1069267336
	.word	1066957807
	.word	1059205912
	.word	1067640739
	.word	1069098016
	.word	1060914444
	.word	1062758116
	.word	1065873452
	.word	1068074447
	.word	1067260315
	.word	1069820628
	.word	1061487317
	.word	1066669800
	.word	1061099981
	.word	1063480237
	.word	1067596388
	.word	1066837970
	.word	1066779894
	.word	0
	.word	1066409348
	.word	1071246562
	.word	1068565483
	.word	1066758889
	.word	1066801474
	.word	1068144193
	.word	1065987795
	.word	1061643241
	.word	1067306680
	.word	1064825399
	.word	1068916657
	.word	1068809999
	.word	1067666766
	.word	1061346021
	.word	1058957096
	.word	1060930085
	.word	1068067859
	.word	1058887201
	.word	1061490882
	.word	1066409348
	.word	0
	.word	1068802884
	.word	1066580544
	.word	1064812911
	.word	1061519278
	.word	1066231338
	.word	1066387932
	.word	1065561499
	.word	1067765304
	.word	1067655029
	.word	1055913812
	.word	1069335288
	.word	1064759371
	.word	1069129341
	.word	1066853649
	.word	1071792004
	.word	1067541574
	.word	1066787066
	.word	1069267336
	.word	1071246562
	.word	1068802884
	.word	0
	.word	1054728222
	.word	1069241008
	.word	1055721938
	.word	1059697947
	.word	1065941274
	.word	1067282613
	.word	1064908376
	.word	1064741623
	.word	1060466429
	.word	1051971713
	.word	1065138102
	.word	1066845717
	.word	1069715600
	.word	1069008532
	.word	1065556014
	.word	1067016936
	.word	1066957807
	.word	1068565483
	.word	1066580544
	.word	1054728222
	.word	0
	.word	1069528306
	.word	1056085484
	.word	1057610080
	.word	1068539178
	.word	1070268708
	.word	1065290593
	.word	1065119938
	.word	1060744694
	.word	1058148110
	.word	1065773283
	.word	1053430020
	.word	1062139417
	.word	1061387299
	.word	1068478780
	.word	1059268809
	.word	1059205912
	.word	1066758889
	.word	1064812911
	.word	1069241008
	.word	1069528306
	.word	0
	.word	1065420125
	.word	1069072050
	.word	1064088198
	.word	1065879662
	.word	1065854387
	.word	1065763623
	.word	1064884441
	.word	1067146602
	.word	1065811583
	.word	1065333210
	.word	1067776707
	.word	1069831610
	.word	1066143148
	.word	1062106671
	.word	1067640739
	.word	1066801474
	.word	1061519278
	.word	1055721938
	.word	1056085484
	.word	1065420125
	.word	0
	.word	1060736085
	.word	1066779169
	.word	1068245710
	.word	1065893039
	.word	1065801881
	.word	1061576298
	.word	1058802264
	.word	1067019183
	.word	1066486881
	.word	1066717548
	.word	1071587938
	.word	1065134812
	.word	1072342197
	.word	1069098016
	.word	1068144193
	.word	1066231338
	.word	1059697947
	.word	1057610080
	.word	1069072050
	.word	1060736085
	.word	0
	.word	1068118843
	.word	1067140608
	.word	1064683597
	.word	1056130531
	.word	1051914175
	.word	1060198135
	.word	1064806354
	.word	1066647793
	.word	1066882359
	.word	1063446442
	.word	1070329438
	.word	1064213447
	.word	1060914444
	.word	1065987795
	.word	1066387932
	.word	1065941274
	.word	1068539178
	.word	1064088198
	.word	1066779169
	.word	1068118843
	.word	0
	.word	1065002361
	.word	1064955791
	.word	1067177877
	.word	1068889556
	.word	1068783140
	.word	1060328275
	.word	1065798570
	.word	1059975710
	.word	1062142292
	.word	1063937870
	.word	1062842031
	.word	1062758116
	.word	1061643241
	.word	1065561499
	.word	1067282613
	.word	1070268708
	.word	1065879662
	.word	1068245710
	.word	1067140608
	.word	1065002361
	.word	0
	.word	1057989670
	.word	1071755308
	.word	1067843729
	.word	1065522317
	.word	1063340960
	.word	1065773525
	.word	1062898015
	.word	1065486607
	.word	1063894317
	.word	1065926165
	.word	1065873452
	.word	1067306680
	.word	1067765304
	.word	1064908376
	.word	1065290593
	.word	1065854387
	.word	1065893039
	.word	1064683597
	.word	1064955791
	.word	1057989670
	.word	0
	.word	1068670712
	.word	1065574891
	.word	1062122002
	.word	1066170984
	.word	1065683586
	.word	1071140396
	.word	1070354320
	.word	1072126526
	.word	1065834668
	.word	1068074447
	.word	1064825399
	.word	1067655029
	.word	1064741623
	.word	1065119938
	.word	1065763623
	.word	1065801881
	.word	1056130531
	.word	1067177877
	.word	1071755308
	.word	1068670712
	.word	0
	.word	1050924909
	.word	1067606305
	.word	1067713914
	.word	1064736098
	.word	1067391437
	.word	1066813249
	.word	1068116773
	.word	1065016119
	.word	1067260315
	.word	1068916657
	.word	1055913812
	.word	1060466429
	.word	1060744694
	.word	1064884441
	.word	1061576298
	.word	1051914175
	.word	1068889556
	.word	1067843729
	.word	1065574891
	.word	1050924909
	.word	0
	.word	1064230744
	.word	1061998419
	.word	1067053985
	.word	1069984358
	.word	1069262387
	.word	1062501461
	.word	1069896696
	.word	1069820628
	.word	1068809999
	.word	1069335288
	.word	1051971713
	.word	1058148110
	.word	1067146602
	.word	1058802264
	.word	1060198135
	.word	1068783140
	.word	1065522317
	.word	1062122002
	.word	1067606305
	.word	1064230744
	.word	0
	.word	3193798832
	.word	3193722357
	.word	3193845057
	.word	3194911473
	.word	3196195049
	.word	3193480612
	.word	3193917105
	.word	3195427861
	.word	3193677756
	.word	3194615219
	.word	3194263509
	.word	3193785764
	.word	3193167513
	.word	3194284875
	.word	3195183046
	.word	3193888863
	.word	3193508347
	.word	3195790892
	.word	3193119456
	.word	3194561152
	.word	3182220886
	.word	3171690123
	.word	1053397849
	.word	3190423729
	.word	1028467414
	.word	3196486842
	.word	1022814230
	.word	3196193782
	.word	3183411014
	.word	3198705303
	.word	1045218332
	.word	3186670239
	.word	1044968780
	.word	3202986917
	.word	1041146174
	.word	1047983214
	.word	3181409894
	.word	1052852113
	.word	1038106893
	.word	1040427754
	.word	3180160601
	.word	1012617318
	.word	3193260532
	.word	1042618942
	.word	1033286001
	.word	3198283287
	.word	3179493267
	.word	3186607875
	.word	1052294002
	.word	1051491872
	.word	1023945626
	.word	1040721180
	.word	1002637763
	.word	3189869232
	.word	3192693419
	.word	1044797028
	.word	1036433200
	.word	1052759700
	.word	3203713781
	.word	3195609361
	.word	1039151846
	.word	1050602670
	.word	3188913458
	.word	1035329801
	.word	1037603407
	.word	3200216093
	.word	1044487010
	.word	1040741592
	.word	3193579543
	.word	1050297468
	.word	3191501965
	.word	3190152183
	.word	1047186925
	.word	3197522162
	.word	3168101025
	.word	3165817907
	.word	1017514032
	.word	3190028885
	.word	1054681232
	.word	3198740149
	.word	1048794002
	.word	1035589205
	.word	1012818366
	.word	1056211574
	.word	3180656549
	.word	1037064505
	.word	3189167100
	.word	3199358897
	.word	3196250173
	.word	3191838007
	.word	3191171711
	.word	3194443766
	.word	1054358061
	.word	1050923463
	.word	3179246262
	.word	1034472454
	.word	3184591807
	.word	1039614069
	.word	3189808176
	.word	3187473493
	.word	3155463283
	.word	3181828850
	.word	3181130813
	.word	1030005632
	.word	3177014600
	.word	3152498329
	.word	3198267971
	.word	3156844177
	.word	3192344121
	.word	3164094913
	.word	1056987118
	.word	1053090139
	.word	3173377083
	.word	1033893032
	.word	1032716149
	.word	1053490220
	.word	3192977056
	.word	3193729097
	.word	1043277542
	.word	3200971794
	.word	1045352835
	.word	1056620597
	.word	991184875
	.word	1036422773
	.word	1034871318
	.word	1034980667
	.word	3203287680
	.word	3188041258
	.word	1042906215
	.word	1032969673
	.word	1041244151
	.word	3198607076
	.word	3201804619
	.word	3190255281
	.word	1049236881
	.word	3185697557
	.word	3185232854
	.word	1000795339
	.word	1008006976
	.word	1028454128
	.word	1057230597
	.word	3182633636
	.word	1037207285
	.word	3178735108
	.word	3193510476
	.word	3196390282
	.word	3184280336
	.word	3185648993
	.word	1049746748
	.word	3196079054
	.word	1041339933
	.word	1045917477
	.word	1039355670
	.word	3168528068
	.word	1009381331
	.word	3199601492
	.word	1054550109
	.word	3189389710
	.word	1027479413
	.word	3188693698
	.word	3195347772
	.word	3198256909
	.word	1036859490
	.word	1045074944
	.word	1053669162
	.word	1044939335
	.word	3201355112
	.word	1018811162
	.word	3190676193
	.word	1034391355
	.word	3190884631
	.word	1043541671
	.word	1035070838
	.word	3192600221
	.word	1043112069
	.word	3199801448
	.word	1047815551
	.word	1042904900
	.word	1038232874
	.word	3190663559
	.word	3198178669
	.word	1037849165
	.word	3204196295
	.word	1036744336
	.word	3189261233
	.word	1030424425
	.word	3192035826
	.word	1048738687
	.word	1040801296
	.word	3199506337
	.word	1034679222
	.word	3193234645
	.word	1048708222
	.word	3185635244
	.word	1036564648
	.word	1045826321
	.word	1053818412
	.word	3176493931
	.word	1029895792
	.word	1040837076
	.word	3184705528
	.word	1047623296
	.word	1046120821
	.word	3196180659
	.word	1008398265
	.word	1048896488
	.word	1042504483
	.word	1034579609
	.word	3197294986
	.word	1012747327
	.word	1051487119
	.word	3196788026
	.word	3173242899
	.word	1035103040
	.word	3190792026
	.word	3183701907
	.word	1053389973
	.word	1038406705
	.word	3195380913
	.word	3201981161
	.word	3159772065
	.word	1033596868
	.word	3190362065
	.word	3203117874
	.word	1053940956
	.word	3166735970
	.word	1032797273
	.word	3190108495
	.word	1046972885
	.word	3191215183
	.word	3193984234
	.word	3152440913
	.word	1042726246
	.word	1049303143
	.word	1055321569
	.word	1034428682
	.word	3183040307
	.word	3178262385
	.word	3183494895
	.word	3197941334
	.word	1051766759
	.word	3196318742
	.word	3197794047
	.word	3182640723
	.word	1042604158
	.word	1053109368
	.word	1039295554
	.word	3195504241
	.word	1034577349
	.word	3181753317
	.word	3181903374
	.word	3186405336
	.word	3196063194
	.word	3190301545
	.word	3197719970
	.word	1048774204
	.word	1040458649
	.word	1045473002
	.word	1051849237
	.word	3185559105
	.word	1030146812
	.word	1033145894
	.word	1050358663
	.word	3200048504
	.word	3199181032
	.word	1045682234
	.word	3201529447
	.word	1033951477
	.word	1037285925
	.word	1049861806
	.word	3200846633
	.word	1023600457
	.word	1046583994
	.word	3177636560
	.word	3182561184
	.word	1051048190
	.word	1036628947
	.word	3170399357
	.word	1027106475
	.word	3168170343
	.word	3196183854
	.word	3189276473
	.word	1038414920
	.word	1042355946
	.word	3196725569
	.word	3194247029
	.word	1038904409
	.word	3199430412
	.word	3173499834
	.word	1043481011
	.word	3188051775
	.word	3187531964
	.word	3199469087
	.word	1049634576
	.word	1051608739
	.word	1043895971
	.word	1053257729
	.word	1011295342
	.word	1046215845
	.word	3179088700
	.word	3167997126
	.word	1056315490
	.word	3188545103
	.word	3188019447
	.word	1037881112
	.word	3185824741
	.word	3180018139
	.word	3191574628
	.word	3199863216
	.word	3191626094
	.word	3193784465
	.word	1057304189
	.word	3191336259
	.word	1032323999
	.word	3191251345
	.word	1024471774
	.word	1046821588
	.word	1040413125
	.word	3117646834
	.word	1046896407
	.word	1042483011
	.word	3172478058
	.word	3197546198
	.word	3182529889
	.word	3196395144
	.word	1049749287
	.word	1045580020
	.word	3196315122
	.word	3196556942
	.word	1050030895
	.word	1036798078
	.word	1041958431
	.word	1042910089
	.word	3199333538
	.word	1054881653
	.word	3180601097
	.word	1025201043
	.word	3177074785
	.word	3196328765
	.word	1040434386
	.word	1050819243
	.word	3189613842
	.word	3188266339
	.word	3180328946
	.word	3192875902
	.word	3190888335
	.word	3180139080
	.word	1057379646
	.word	3196786789
	.word	3186042275
	.word	3189136136
	.word	3171963169
	.word	3193449683
	.word	1036544335
	.word	1049463842
	.word	1019050652
	.word	3181271181
	.word	1056535393
	.word	3180747974
	.word	3186087105
	.word	3196874535
	.word	1047054928
	.word	3183963230
	.word	3156092364
	.word	3201174633
	.word	1045125680
	.word	1036270047
	.word	3185514749
	.word	1048698196
	.word	3177320665
	.word	1019713295
	.word	1044008321
	.word	1035617646
	.word	1031217688
	.word	3146750024
	.word	3199338615
	.word	3196659601
	.word	1053736828
	.word	1051517191
	.word	3195489846
	.word	3164697771
	.word	1041172620
	.word	1048642454
	.word	1051657861
	.word	3180979104
	.word	1046461746
	.word	1049209200
	.word	1041891447
	.word	1040831127
	.word	3198980568
	.word	3198177247
	.word	1045354326
	.word	3193854500
	.word	3198999780
	.word	1040875478
	.word	1043994428
	.word	3150821581
	.word	3192517564
	.word	3192305578
	.word	3197839908
	.word	1101157530
	.word	1057041255
	.word	1049481785
	.word	1042208355
	.word	1023706754
	.word	3173585263
	.word	3199470208
	.word	3203440717
	.word	3205849474
	.word	3207657917
	.word	3208152618
	.word	3209326861
	.word	3212038784
	.word	3213636382
	.word	3216210368
	.word	3216395135
	.word	3220694507
	.word	3221384709
	.word	3226567174
	.word	3232736181
	.space	1760
	.global	matrixJTT92
	.align	3
	.type	matrixJTT92, %object
	.size	matrixJTT92, 3200
matrixJTT92:
	.word	2743006633
	.word	-1074530531
	.word	4178693941
	.word	1067885870
	.word	4103102517
	.word	1067783529
	.word	3050320133
	.word	1068474415
	.word	1993414581
	.word	1067834700
	.word	2129204267
	.word	1067860302
	.word	2942567994
	.word	1068793719
	.word	1634698913
	.word	1069643997
	.word	2189402529
	.word	1066734987
	.word	2763347599
	.word	1067195555
	.word	2069006006
	.word	1066888465
	.word	2491768226
	.word	1067144351
	.word	4103102517
	.word	1067783529
	.word	2536573325
	.word	1065839956
	.word	2866976569
	.word	1069739954
	.word	3053343790
	.word	1070756540
	.word	1622604285
	.word	1071066793
	.word	2295780279
	.word	1065098336
	.word	1299072988
	.word	1065430458
	.word	9345849
	.word	1070405230
	.word	4078913261
	.word	1067352321
	.word	1184723779
	.word	-1074763174
	.word	278176442
	.word	1066904236
	.word	1239974238
	.word	1065407641
	.word	534362651
	.word	1068349224
	.word	1668783773
	.word	1069834561
	.word	251513285
	.word	1066303813
	.word	114349209
	.word	1068630880
	.word	298517407
	.word	1069912114
	.word	466742686
	.word	1065821166
	.word	3000842110
	.word	1066662979
	.word	533263139
	.word	1070939148
	.word	934310006
	.word	1066869809
	.word	2156142302
	.word	1063586172
	.word	1275708366
	.word	1067677095
	.word	2600894756
	.word	1068142394
	.word	3153674226
	.word	1067504759
	.word	3247957348
	.word	1068536088
	.word	2156142302
	.word	1065683324
	.word	4222674406
	.word	1065476494
	.word	3939275284
	.word	1066888733
	.word	3516513064
	.word	1066632847
	.word	3741638069
	.word	-1074496204
	.word	438155384
	.word	1070375702
	.word	3467309918
	.word	1066238314
	.word	2156417180
	.word	1067624515
	.word	1896932436
	.word	1067002483
	.word	923864645
	.word	1067553447
	.word	81638738
	.word	1069888735
	.word	114074331
	.word	1066689689
	.word	1261689593
	.word	1064621058
	.word	4084685697
	.word	1069320020
	.word	3257028319
	.word	1066010815
	.word	116273355
	.word	1064393425
	.word	3257028319
	.word	1064962239
	.word	2480223354
	.word	1070286841
	.word	1896932436
	.word	1069099635
	.word	1682252790
	.word	1064027480
	.word	64871186
	.word	1067343732
	.word	1682252790
	.word	1065076056
	.word	245191093
	.word	1067793764
	.word	271579372
	.word	1065404420
	.word	1406825128
	.word	1070681714
	.word	893902953
	.word	-1074743316
	.word	4166874191
	.word	1064630721
	.word	4046202790
	.word	1067037312
	.word	3092651331
	.word	1071195109
	.word	1134146244
	.word	1068567378
	.word	942831221
	.word	1068326474
	.word	1542339936
	.word	1064768429
	.word	942831221
	.word	1064132170
	.word	1142667459
	.word	1066091883
	.word	742994982
	.word	1065318185
	.word	2141848651
	.word	1063307536
	.word	742994982
	.word	1065318185
	.word	2334263186
	.word	1067381044
	.word	3054443302
	.word	1066659288
	.word	2141848651
	.word	1063307536
	.word	3122338145
	.word	1066934233
	.word	1862847575
	.word	1066418703
	.word	622048703
	.word	1065783585
	.word	2070930151
	.word	1066845314
	.word	861742238
	.word	1065051897
	.word	4100903494
	.word	1063264049
	.word	3684738343
	.word	-1075701173
	.word	3308430488
	.word	1063060508
	.word	4100903494
	.word	1062215473
	.word	2595672075
	.word	1065862773
	.word	399672477
	.word	1066126914
	.word	861742238
	.word	1064003321
	.word	3753182941
	.word	1064471002
	.word	2111612081
	.word	1062637454
	.word	1209462791
	.word	1064893520
	.word	2960709936
	.word	1066364613
	.word	1557183343
	.word	1063686567
	.word	1577524308
	.word	1067874093
	.word	1306494692
	.word	1065413815
	.word	1608860389
	.word	1066871755
	.word	1982419465
	.word	1067781684
	.word	274328151
	.word	1065941962
	.word	2495891395
	.word	1066902088
	.word	2708372017
	.word	1069551915
	.word	4232844889
	.word	1067570257
	.word	4168798337
	.word	1066684722
	.word	2591274029
	.word	1064163845
	.word	2707547383
	.word	-1074744106
	.word	1130023075
	.word	1069596073
	.word	1032441418
	.word	1065717684
	.word	665204535
	.word	1070526764
	.word	2591274029
	.word	1064163845
	.word	3526408668
	.word	1067309707
	.word	574494826
	.word	1069434022
	.word	1851577581
	.word	1066521648
	.word	3242184912
	.word	1062898373
	.word	3460437971
	.word	1068564475
	.word	1418644878
	.word	1066793439
	.word	646237959
	.word	1066739081
	.word	2591274029
	.word	1065212421
	.word	3782594877
	.word	1065608967
	.word	692967203
	.word	1065391535
	.word	3747410505
	.word	1068532615
	.word	2237781040
	.word	1066548827
	.word	2237781040
	.word	1067597403
	.word	70093866
	.word	1071523897
	.word	1896932436
	.word	1063856755
	.word	1840307587
	.word	1070163537
	.word	3483802593
	.word	-1074907122
	.word	3994800622
	.word	1068676899
	.word	3799637308
	.word	1066425145
	.word	780103500
	.word	1065234970
	.word	2732561273
	.word	1064740243
	.word	376032977
	.word	1069315944
	.word	2732561273
	.word	1065788819
	.word	1896932436
	.word	1063856755
	.word	2732561273
	.word	1065788819
	.word	1561306511
	.word	1066590032
	.word	675924773
	.word	1066672509
	.word	26663157
	.word	1064905063
	.word	1979120930
	.word	1064410336
	.word	2809527087
	.word	1067208507
	.word	3624265203
	.word	1069590343
	.word	2640752052
	.word	1069121009
	.word	2703973971
	.word	1068377275
	.word	600608227
	.word	1069035647
	.word	1124800395
	.word	1067840740
	.word	1339480041
	.word	1066621439
	.word	1279556657
	.word	1068901513
	.word	332052512
	.word	-1075528952
	.word	3777372197
	.word	1066475074
	.word	101429948
	.word	1064426711
	.word	101429948
	.word	1064426711
	.word	1958505087
	.word	1066670227
	.word	2577530133
	.word	1065670439
	.word	3840594116
	.word	1064158476
	.word	101429948
	.word	1066523863
	.word	319408128
	.word	1069724486
	.word	910120750
	.word	1066962889
	.word	4181717598
	.word	1067743163
	.word	758663023
	.word	1064817016
	.word	2173184732
	.word	1067548078
	.word	995058023
	.word	1064908284
	.word	1401877325
	.word	1068704884
	.word	2060759668
	.word	1068945855
	.word	2682258616
	.word	1067066706
	.word	1849928314
	.word	1066408838
	.word	2357078052
	.word	1069640633
	.word	4070392046
	.word	1064847080
	.word	411492227
	.word	1064663471
	.word	2234757383
	.word	-1074648114
	.word	373559076
	.word	1064165993
	.word	3149825936
	.word	1066018197
	.word	2884293878
	.word	1065681579
	.word	4017890366
	.word	1065275503
	.word	1982694343
	.word	1065528571
	.word	375758099
	.word	1067112609
	.word	3069561587
	.word	1066470041
	.word	1346626866
	.word	1065712181
	.word	373559076
	.word	1063117417
	.word	2037669924
	.word	1069594739
	.word	1062128232
	.word	1063553960
	.word	1953007529
	.word	1066643719
	.word	3175939337
	.word	1065881966
	.word	599508715
	.word	1067038051
	.word	3175939337
	.word	1064833390
	.word	807316413
	.word	1065523471
	.word	2888142168
	.word	1064546701
	.word	1172354273
	.word	1064976735
	.word	1172354273
	.word	1063928159
	.word	3956592593
	.word	1065451798
	.word	2107763790
	.word	-1074503508
	.word	3111343029
	.word	1069502657
	.word	2030248221
	.word	1065810294
	.word	2424423139
	.word	1070620716
	.word	3462362116
	.word	1067997036
	.word	884557105
	.word	1064690046
	.word	416989785
	.word	1066787131
	.word	1266087639
	.word	1069596786
	.word	2888142168
	.word	1064546701
	.word	3956592593
	.word	1066500374
	.word	867514674
	.word	1071672652
	.word	1414246831
	.word	1067191663
	.word	3394742151
	.word	1067566130
	.word	3708377843
	.word	1065775397
	.word	1867245622
	.word	1064971903
	.word	2021177250
	.word	1066762703
	.word	1707541558
	.word	1068553436
	.word	2175108878
	.word	1065407775
	.word	3708377843
	.word	1064726821
	.word	4248512930
	.word	1068117664
	.word	3272421482
	.word	1070253127
	.word	172348448
	.word	-1075486363
	.word	1867245622
	.word	1066020479
	.word	2817223668
	.word	1071033599
	.word	475538779
	.word	1070398670
	.word	987361442
	.word	1069013048
	.word	570646535
	.word	1068209604
	.word	1100611139
	.word	1066885244
	.word	874111744
	.word	1067995124
	.word	3708377843
	.word	1066823973
	.word	2134426947
	.word	1069877779
	.word	1588794302
	.word	1066722572
	.word	3195455668
	.word	1071127199
	.word	179770151
	.word	1069785186
	.word	1378787581
	.word	1066339112
	.word	412041983
	.word	1064351549
	.word	1019247279
	.word	1069927012
	.word	3085504505
	.word	1069220783
	.word	2698201535
	.word	1066409576
	.word	202035262
	.word	1067113817
	.word	2765546622
	.word	1065947867
	.word	412041983
	.word	1065400125
	.word	470590977
	.word	-1074998576
	.word	3243009546
	.word	1067673370
	.word	4152305662
	.word	1063459470
	.word	2765546622
	.word	1065947867
	.word	4219650749
	.word	1067192065
	.word	2755651017
	.word	1068416735
	.word	3042898430
	.word	1064821042
	.word	4152305662
	.word	1064508046
	.word	412041983
	.word	1065400125
	.word	1867245622
	.word	1066020479
	.word	3671544203
	.word	1065702651
	.word	2613539139
	.word	1065162492
	.word	2613539139
	.word	1064113916
	.word	3485726738
	.word	1065226111
	.word	2023101395
	.word	1065670976
	.word	2053063087
	.word	1064399867
	.word	869163942
	.word	1063986678
	.word	3359832657
	.word	1065353081
	.word	4134988354
	.word	1069352853
	.word	1711389849
	.word	1068991422
	.word	1711389849
	.word	1066369982
	.word	1328759802
	.word	-1074599506
	.word	2023101395
	.word	1065670976
	.word	62947041
	.word	1064241155
	.word	1741351540
	.word	1065098873
	.word	3329870965
	.word	1068197054
	.word	1120952105
	.word	1064781314
	.word	2053063087
	.word	1064399867
	.word	2571207942
	.word	1068733254
	.word	115448721
	.word	1064861308
	.word	3125086924
	.word	1063277471
	.word	700388907
	.word	1064326316
	.word	898850756
	.word	1062871530
	.word	1944211436
	.word	1067440167
	.word	898850756
	.word	1062871530
	.word	3125086924
	.word	1063277471
	.word	3125086924
	.word	1063277471
	.word	700388907
	.word	1066423468
	.word	1997537750
	.word	1067592437
	.word	3377699721
	.word	1069109248
	.word	898850756
	.word	1062871530
	.word	1565154802
	.word	1066503730
	.word	2171810343
	.word	-1075551285
	.word	2236681529
	.word	1065075519
	.word	2429920697
	.word	1067632568
	.word	951352436
	.word	1064540259
	.word	1740252029
	.word	1066771293
	.word	3943673331
	.word	1070291597
	.word	39582419
	.word	1067012080
	.word	439254895
	.word	1069096498
	.word	738871814
	.word	1067657600
	.word	1585770645
	.word	1065292415
	.word	1585770645
	.word	1065292415
	.word	1992589947
	.word	1065156855
	.word	1734754471
	.word	1068841937
	.word	840576639
	.word	1065526558
	.word	3360657290
	.word	1065933774
	.word	3753732697
	.word	1068353384
	.word	2304026616
	.word	1064613810
	.word	2076977465
	.word	1068132764
	.word	2100616965
	.word	1065730166
	.word	3672093959
	.word	1065390729
	.word	108851651
	.word	1065458644
	.word	350469331
	.word	-1075361507
	.word	1484890453
	.word	1069708086
	.word	4068742779
	.word	1068404286
	.word	935959273
	.word	1063836891
	.word	2304026616
	.word	1064613810
	.word	2628932302
	.word	1065865860
	.word	379606389
	.word	1070630787
	.word	3860935081
	.word	1068608146
	.word	43430709
	.word	1070989010
	.word	1128648686
	.word	1067754438
	.word	2776816616
	.word	1069777082
	.word	2774617593
	.word	1067616898
	.word	2122882075
	.word	1066728813
	.word	391151262
	.word	1069650985
	.word	4120144947
	.word	1068075419
	.word	1087142122
	.word	1067187301
	.word	1128648686
	.word	1067754438
	.word	2039319192
	.word	1067479325
	.word	134415296
	.word	1066682911
	.word	3426353110
	.word	1068504983
	.word	3687762000
	.word	1070132440
	.word	1688300104
	.word	-1074320782
	.word	857069314
	.word	1070914498
	.word	1605012099
	.word	1066958057
	.word	2256747616
	.word	1067846142
	.word	2340310500
	.word	1067095630
	.word	3399140197
	.word	1070706850
	.word	672351360
	.word	1067651426
	.word	1055806041
	.word	1069631431
	.word	862291994
	.word	1066837127
	.word	2732286395
	.word	1066993356
	.word	3250981005
	.word	1067344805
	.word	672351360
	.word	1066602850
	.word	2213591785
	.word	1066641907
	.word	307313500
	.word	1067149586
	.word	2906558988
	.word	1069694882
	.word	2177307901
	.word	1066257239
	.word	1874117570
	.word	1068412910
	.word	973617546
	.word	1069602138
	.word	3389794348
	.word	1065130548
	.word	2304851250
	.word	1068602375
	.word	4128666162
	.word	1070711732
	.word	3676766883
	.word	-1074438720
	.word	3389794348
	.word	1065130548
	.word	2732286395
	.word	1065944780
	.word	1183624267
	.word	1068543806
	.word	3545925000
	.word	1062527932
	.word	2825470005
	.word	1066551377
	.word	981039250
	.word	1062376535
	.word	981039250
	.word	1061327959
	.word	4032458895
	.word	1066446754
	.word	2991496261
	.word	1063577045
	.word	706985977
	.word	1062680404
	.word	2184454726
	.word	1065347981
	.word	981039250
	.word	1062376535
	.word	3545925000
	.word	1062527932
	.word	1888960977
	.word	1065233896
	.word	706985977
	.word	1062680404
	.word	4173471261
	.word	1064033385
	.word	1179226221
	.word	1065272014
	.word	432932703
	.word	1061935697
	.word	1830961738
	.word	1064587235
	.word	432932703
	.word	1062984273
	.word	1617656482
	.word	-1076624213
	.word	2411229000
	.word	1065655004
	.word	3308430488
	.word	1064109084
	.word	129742372
	.word	1064091368
	.word	3323548773
	.word	1064968413
	.word	3072585244
	.word	1066851622
	.word	3105020837
	.word	1066274016
	.word	1406275372
	.word	1068568804
	.word	1785332006
	.word	1065310937
	.word	3206175907
	.word	1063406320
	.word	2437067523
	.word	1063577582
	.word	2128379633
	.word	1070032121
	.word	1501932884
	.word	1065674600
	.word	1785332006
	.word	1065310937
	.word	2437067523
	.word	1063577582
	.word	4092657156
	.word	1064797151
	.word	618200413
	.word	1069933119
	.word	898850756
	.word	1063920106
	.word	2671813255
	.word	1066701768
	.word	2938994581
	.word	1065054044
	.word	1902704872
	.word	1066873030
	.word	4186115645
	.word	-1075616725
	.word	566798244
	.word	1064625890
	.word	3308430488
	.word	1070138396
	.word	1930467540
	.word	1065801033
	.word	2662467407
	.word	1065712986
	.word	1348551011
	.word	1066717606
	.word	1348551011
	.word	1067766182
	.word	4029435238
	.word	1066065173
	.word	3411784581
	.word	1067333732
	.word	2679784715
	.word	1067421779
	.word	1630300866
	.word	1065192557
	.word	1875217081
	.word	1071917834
	.word	1498084593
	.word	1069430918
	.word	766634482
	.word	1065537027
	.word	1662461581
	.word	1070275936
	.word	1348551011
	.word	1067766182
	.word	898301000
	.word	1066329180
	.word	466467808
	.word	1067025703
	.word	3637184465
	.word	1068682704
	.word	4012117930
	.word	1066453532
	.word	2662467407
	.word	1065712986
	.word	3813381203
	.word	-1074536937
	.global	statJTT92
	.align	3
	.type	statJTT92, %object
	.size	statJTT92, 160
statJTT92:
	.word	3986048509
	.word	1068737983
	.word	3360536344
	.word	1068136249
	.word	3318029224
	.word	1067832723
	.word	4259826904
	.word	1068131323
	.word	2168445837
	.word	1066682173
	.word	2298419107
	.word	1067769200
	.word	3605936344
	.word	1068476458
	.word	3165647908
	.word	1068677654
	.word	448941593
	.word	1066892961
	.word	748162687
	.word	1068205715
	.word	2497705589
	.word	1068992259
	.word	634704082
	.word	1068370626
	.word	3294807539
	.word	1066952147
	.word	1921759408
	.word	1067748193
	.word	586688409
	.word	1068109745
	.word	3270860176
	.word	1068604053
	.word	2772935340
	.word	1068366907
	.word	1311618416
	.word	1066218661
	.word	145542354
	.word	1067478955
	.word	3492532715
	.word	1068557748
	.global	matrixWAG01
	.align	3
	.type	matrixWAG01, %object
	.size	matrixWAG01, 3200
matrixWAG01:
	.word	3122338145
	.word	-1074667559
	.word	435956360
	.word	1068084446
	.word	605281151
	.word	1067957174
	.word	2528052110
	.word	1068577595
	.word	1379612215
	.word	1069016957
	.word	2070655273
	.word	1068836283
	.word	3436248715
	.word	1069706131
	.word	1137444779
	.word	1069579430
	.word	575044581
	.word	1067287092
	.word	2158341325
	.word	1066532788
	.word	2948340430
	.word	1067615690
	.word	3059391104
	.word	1068832726
	.word	1565704558
	.word	1068813248
	.word	1886487075
	.word	1066637545
	.word	2799081726
	.word	1069596081
	.word	4238067569
	.word	1070832918
	.word	2140474261
	.word	1070116653
	.word	2363125366
	.word	1065685203
	.word	3033827459
	.word	1066822027
	.word	3073684755
	.word	1070028866
	.word	571746046
	.word	1067061472
	.word	4047302302
	.word	-1074844260
	.word	5772436
	.word	1067320915
	.word	987361442
	.word	1065080888
	.word	2872749005
	.word	1066989061
	.word	2320519290
	.word	1069674070
	.word	1489013622
	.word	1066713311
	.word	1582472110
	.word	1067163947
	.word	1115179668
	.word	1069105071
	.word	3328221697
	.word	1065462804
	.word	1200391820
	.word	1066894505
	.word	799344953
	.word	1070570628
	.word	2481047988
	.word	1067459662
	.word	263882791
	.word	1064528448
	.word	3773798784
	.word	1067453991
	.word	2730912005
	.word	1068297449
	.word	1693522785
	.word	1067070263
	.word	3266099290
	.word	1068204134
	.word	3300459029
	.word	1066534801
	.word	2802655139
	.word	1065864652
	.word	4292493395
	.word	1066756864
	.word	2319969535
	.word	1067102408
	.word	2698476412
	.word	-1074315985
	.word	4013767197
	.word	1070367430
	.word	1357621982
	.word	1065765197
	.word	2297154668
	.word	1068512835
	.word	2890890947
	.word	1067705683
	.word	1941462657
	.word	1067951201
	.word	1761142750
	.word	1069860465
	.word	1034090686
	.word	1066879070
	.word	3094850354
	.word	1064704541
	.word	1071474081
	.word	1069523478
	.word	2422773872
	.word	1065396098
	.word	3753457819
	.word	1064315041
	.word	2049489674
	.word	1065378784
	.word	1827663203
	.word	1069866639
	.word	3780120976
	.word	1068847624
	.word	817761773
	.word	1063791257
	.word	2615188407
	.word	1067896742
	.word	3986279407
	.word	1065385226
	.word	1242997895
	.word	1067886374
	.word	615176756
	.word	1065488306
	.word	299067163
	.word	1070910912
	.word	4011843052
	.word	-1074812075
	.word	2872199250
	.word	1063106679
	.word	2192426186
	.word	1067640856
	.word	2156417180
	.word	1071097923
	.word	3329046331
	.word	1068140649
	.word	1703418389
	.word	1068271411
	.word	958774139
	.word	1063475040
	.word	3479404546
	.word	1064618910
	.word	2378793407
	.word	1067281186
	.word	226224517
	.word	1064923585
	.word	3486551372
	.word	1063709652
	.word	1734204715
	.word	1067056707
	.word	3615743988
	.word	1068526894
	.word	1008252163
	.word	1066859340
	.word	247664994
	.word	1065341539
	.word	3642132267
	.word	1066661838
	.word	2917828982
	.word	1065528705
	.word	2910132401
	.word	1066749885
	.word	1472246070
	.word	1065741172
	.word	2473901162
	.word	1064698904
	.word	4122618848
	.word	1061428890
	.word	1780384203
	.word	-1075892005
	.word	2430195575
	.word	1063282303
	.word	3604199116
	.word	1060921480
	.word	3966763075
	.word	1064924121
	.word	3760329767
	.word	1064610320
	.word	3885124337
	.word	1064058618
	.word	3847740941
	.word	1065346370
	.word	3161095930
	.word	1062769524
	.word	3786718046
	.word	1065366704
	.word	4193262470
	.word	1065387105
	.word	3487101127
	.word	1063397730
	.word	1484340697
	.word	1067267496
	.word	1213585959
	.word	1065699833
	.word	3459888215
	.word	1066254957
	.word	1557183343
	.word	1065783719
	.word	3011837226
	.word	1066715995
	.word	3744936604
	.word	1067576968
	.word	2103365744
	.word	1069413436
	.word	3491224296
	.word	1068398347
	.word	1037664099
	.word	1066948729
	.word	1304845424
	.word	1064252429
	.word	1873292936
	.word	-1074392167
	.word	964821453
	.word	1070267514
	.word	4018440122
	.word	1066012157
	.word	4082761552
	.word	1069887459
	.word	374933465
	.word	1064434764
	.word	1472795825
	.word	1067526402
	.word	2843611947
	.word	1069758367
	.word	3187209331
	.word	1068400461
	.word	3234213453
	.word	1064275514
	.word	1522548727
	.word	1067609013
	.word	3320525116
	.word	1067732560
	.word	284498634
	.word	1067511437
	.word	2688855686
	.word	1065420794
	.word	4289194860
	.word	1065482668
	.word	2041243337
	.word	1065863310
	.word	3032178191
	.word	1069068513
	.word	394174919
	.word	1067148982
	.word	2565435506
	.word	1068338419
	.word	3801286575
	.word	1071125475
	.word	485434384
	.word	1062555850
	.word	2858730232
	.word	1070945376
	.word	1558832610
	.word	-1074541999
	.word	2002210674
	.word	1067562540
	.word	2753451994
	.word	1067567271
	.word	1910951209
	.word	1065339928
	.word	2762522965
	.word	1065566286
	.word	2573681843
	.word	1069819973
	.word	1746024465
	.word	1066641840
	.word	3841693627
	.word	1064583208
	.word	746018639
	.word	1067796918
	.word	2691054709
	.word	1067843122
	.word	3839219726
	.word	1068084009
	.word	537386308
	.word	1065585077
	.word	1050583360
	.word	1065910018
	.word	2978851878
	.word	1067605523
	.word	3888422872
	.word	1069527118
	.word	681697209
	.word	1068115920
	.word	1320788343
	.word	1069100323
	.word	3633885930
	.word	1068719228
	.word	46729244
	.word	1067151398
	.word	1804023703
	.word	1067288501
	.word	192964291
	.word	1068066226
	.word	2512384069
	.word	-1075848980
	.word	1564605046
	.word	1066815652
	.word	2133877192
	.word	1063636101
	.word	1298523232
	.word	1064693804
	.word	455472692
	.word	1067496975
	.word	336450558
	.word	1066346360
	.word	3841968505
	.word	1064427247
	.word	3623440569
	.word	1066781426
	.word	3452466511
	.word	1069417328
	.word	448600744
	.word	1066677408
	.word	1681977913
	.word	1067329169
	.word	3753182941
	.word	1065519578
	.word	532163628
	.word	1066451184
	.word	2042067971
	.word	1065395427
	.word	1370816122
	.word	1068240541
	.word	526940948
	.word	1069152299
	.word	3528882569
	.word	1066954634
	.word	4084960575
	.word	1064969755
	.word	1579173575
	.word	1069297623
	.word	1341953942
	.word	1066266366
	.word	3183086162
	.word	1064972708
	.word	42880953
	.word	-1074806460
	.word	2754001750
	.word	1064109621
	.word	1900505849
	.word	1066023566
	.word	2503313099
	.word	1066885445
	.word	1354048570
	.word	1065695538
	.word	1764716163
	.word	1066522252
	.word	1422768046
	.word	1066551176
	.word	557727273
	.word	1066626875
	.word	1490388011
	.word	1065933506
	.word	3973909901
	.word	1065063439
	.word	1356797349
	.word	1069116664
	.word	935959273
	.word	1063836891
	.word	589063355
	.word	1065624537
	.word	3483252837
	.word	1065581184
	.word	403245889
	.word	1067245149
	.word	212480622
	.word	1063284451
	.word	936783907
	.word	1065466160
	.word	137713831
	.word	1064811379
	.word	3242184912
	.word	1064995525
	.word	366687128
	.word	1062822138
	.word	3522835255
	.word	1065142896
	.word	332052512
	.word	-1074545912
	.word	595935302
	.word	1069851976
	.word	892528564
	.word	1066458633
	.word	2404631930
	.word	1070315572
	.word	3843617773
	.word	1068210073
	.word	1816118331
	.word	1064620521
	.word	3999198668
	.word	1066443667
	.word	475538779
	.word	1068694734
	.word	877135401
	.word	1065755265
	.word	2754826383
	.word	1066787466
	.word	1376313680
	.word	1071216169
	.word	2838389267
	.word	1067609818
	.word	4140760790
	.word	1067912680
	.word	4136912500
	.word	1065901830
	.word	1090440657
	.word	1065315769
	.word	198461849
	.word	1067568446
	.word	3459613337
	.word	1068770214
	.word	3563517186
	.word	1066177916
	.word	2037669924
	.word	1064745075
	.word	3359008023
	.word	1067918116
	.word	885656616
	.word	1070750874
	.word	1806772482
	.word	-1075364997
	.word	3684188587
	.word	1066917053
	.word	1849928314
	.word	1071389574
	.word	1050583360
	.word	1070104322
	.word	2164663517
	.word	1067664277
	.word	2478299209
	.word	1067446408
	.word	639640889
	.word	1067336417
	.word	2528326988
	.word	1068421634
	.word	620674314
	.word	1067611966
	.word	1533818721
	.word	1069865364
	.word	1628376721
	.word	1068381436
	.word	191589901
	.word	1071008719
	.word	145410413
	.word	1070143799
	.word	3446694075
	.word	1067449629
	.word	3856537034
	.word	1064549922
	.word	1432938529
	.word	1070611019
	.word	3185010308
	.word	1069910293
	.word	1991215558
	.word	1066985236
	.word	3263075633
	.word	1068346841
	.word	4131689819
	.word	1066767937
	.word	1385934407
	.word	1066478430
	.word	2568734040
	.word	-1074659769
	.word	466742686
	.word	1068442606
	.word	1039588244
	.word	1064808426
	.word	1622329407
	.word	1067618274
	.word	2230634215
	.word	1068506661
	.word	1662461581
	.word	1068965216
	.word	434032215
	.word	1065506157
	.word	3394742151
	.word	1065468978
	.word	2799356604
	.word	1066687608
	.word	3886223848
	.word	1066580502
	.word	2107214035
	.word	1066181406
	.word	2770219546
	.word	1064345106
	.word	3509366238
	.word	1063347801
	.word	1288077872
	.word	1065377442
	.word	557177517
	.word	1067463085
	.word	2968681395
	.word	1064987472
	.word	3995900133
	.word	1064120895
	.word	197637215
	.word	1065414889
	.word	4011018418
	.word	1068912384
	.word	2226785924
	.word	1069117251
	.word	3462911872
	.word	1066636538
	.word	998356558
	.word	-1074452656
	.word	67345087
	.word	1066988659
	.word	1238599849
	.word	1064090294
	.word	53051436
	.word	1065661447
	.word	1617106727
	.word	1067435805
	.word	1446407546
	.word	1065721442
	.word	1103085041
	.word	1065481595
	.word	3794414627
	.word	1067815540
	.word	2193525697
	.word	1065444148
	.word	404620279
	.word	1064368192
	.word	1149539407
	.word	1064290010
	.word	1452729738
	.word	1063182915
	.word	3017884540
	.word	1066430581
	.word	3812556569
	.word	1064337858
	.word	2125905732
	.word	1063964666
	.word	72018012
	.word	1063288746
	.word	392250773
	.word	1067192133
	.word	416989785
	.word	1067835707
	.word	786150814
	.word	1068881716
	.word	2051688697
	.word	1064131096
	.word	181969174
	.word	1068013210
	.word	1592092837
	.word	-1075390880
	.word	2961259692
	.word	1065004115
	.word	795771541
	.word	1066830953
	.word	1940912901
	.word	1065117395
	.word	1484065820
	.word	1068472033
	.word	2357627808
	.word	1070639431
	.word	2800456116
	.word	1067112340
	.word	1751796901
	.word	1068609539
	.word	3815305348
	.word	1067496840
	.word	478287558
	.word	1065562260
	.word	3893370674
	.word	1066719820
	.word	1379887093
	.word	1064666692
	.word	2714969087
	.word	1067906003
	.word	1717712040
	.word	1067501471
	.word	4218276360
	.word	1065874718
	.word	417539541
	.word	1067523785
	.word	3235587843
	.word	1064544285
	.word	1463175099
	.word	1066693581
	.word	3373301674
	.word	1067148176
	.word	2936520680
	.word	1065409117
	.word	2258396883
	.word	1065337512
	.word	1201216453
	.word	-1075617538
	.word	3455490168
	.word	1068750333
	.word	1766365430
	.word	1067683638
	.word	1623154041
	.word	1065053239
	.word	625896994
	.word	1065697283
	.word	3943948209
	.word	1066334548
	.word	2281761506
	.word	1070561979
	.word	2583302569
	.word	1068948858
	.word	1665760116
	.word	1070763700
	.word	783127157
	.word	1068762279
	.word	1781758593
	.word	1069173438
	.word	2131403290
	.word	1068709766
	.word	2347732203
	.word	1068127563
	.word	2874123395
	.word	1069092840
	.word	4257583901
	.word	1068213831
	.word	791923250
	.word	1066917255
	.word	632768942
	.word	1067041138
	.word	3931578703
	.word	1068634201
	.word	4110799098
	.word	1067610925
	.word	2495341639
	.word	1067738298
	.word	898850756
	.word	1069425130
	.word	1725133744
	.word	-1074379108
	.word	3341415837
	.word	1070887268
	.word	4104202029
	.word	1067683973
	.word	3998648912
	.word	1068328453
	.word	2661093017
	.word	1066492791
	.word	3884299703
	.word	1069638309
	.word	3824376319
	.word	1067593007
	.word	3999198668
	.word	1069589395
	.word	736397913
	.word	1066964097
	.word	4219100994
	.word	1067503987
	.word	1186922802
	.word	1068245138
	.word	1073398227
	.word	1068169607
	.word	2424972895
	.word	1066245562
	.word	1933216320
	.word	1067387151
	.word	1868894889
	.word	1069016873
	.word	3824926075
	.word	1066756797
	.word	2842512436
	.word	1068940419
	.word	1979670686
	.word	1069079150
	.word	3220469558
	.word	1065782108
	.word	3333719255
	.word	1068110752
	.word	1622054529
	.word	1070723355
	.word	4159452488
	.word	-1074627900
	.word	1297698599
	.word	1065161687
	.word	2368897802
	.word	1066604326
	.word	3603924238
	.word	1068941761
	.word	152007483
	.word	1062992863
	.word	288072046
	.word	1066532520
	.word	2666590575
	.word	1062324995
	.word	500827546
	.word	1063259218
	.word	529689727
	.word	1065757681
	.word	2406830953
	.word	1063956076
	.word	3590455221
	.word	1063476650
	.word	2577530133
	.word	1064621863
	.word	633868453
	.word	1064320142
	.word	3804035354
	.word	1063929769
	.word	333976657
	.word	1065652857
	.word	57174605
	.word	1063322032
	.word	1977471663
	.word	1065346102
	.word	919466599
	.word	1066903095
	.word	1158610378
	.word	1063337601
	.word	3406012145
	.word	1065366033
	.word	3493423319
	.word	1062956355
	.word	2194625209
	.word	-1075978672
	.word	261134012
	.word	1067660922
	.word	4188864424
	.word	1064736753
	.word	1683352302
	.word	1065500788
	.word	1752346657
	.word	1066200465
	.word	4031084505
	.word	1067750847
	.word	1564330168
	.word	1065923037
	.word	3259502221
	.word	1066704318
	.word	1920022180
	.word	1065436095
	.word	1970324837
	.word	1065206784
	.word	3515138674
	.word	1064266924
	.word	2619861331
	.word	1069701853
	.word	3260051976
	.word	1066392396
	.word	51951924
	.word	1066285291
	.word	2318870023
	.word	1064580524
	.word	2971705052
	.word	1066417629
	.word	692967203
	.word	1070503343
	.word	1668783773
	.word	1065378113
	.word	3232564186
	.word	1067308432
	.word	3823001930
	.word	1065751372
	.word	1809796139
	.word	1068994056
	.word	295493750
	.word	-1075364443
	.word	4151755906
	.word	1065868544
	.word	1037114343
	.word	1069751019
	.word	10720238
	.word	1066610769
	.word	1134970878
	.word	1066264487
	.word	4066818633
	.word	1065825997
	.word	476913169
	.word	1068701361
	.word	1736403738
	.word	1066857595
	.word	3838669970
	.word	1067871643
	.word	1659987680
	.word	1066174561
	.word	2278462971
	.word	1065486695
	.word	3438997494
	.word	1071816537
	.word	1603087953
	.word	1069622648
	.word	185817465
	.word	1066878332
	.word	2533549668
	.word	1069783751
	.word	488732919
	.word	1068024350
	.word	2468128726
	.word	1066925509
	.word	849922488
	.word	1066515340
	.word	4175945162
	.word	1069183336
	.word	2476924819
	.word	1067177637
	.word	1619855506
	.word	1066924771
	.word	2647898878
	.word	-1074700761
	.global	statWAG01
	.align	3
	.type	statWAG01, %object
	.size	statWAG01, 160
statWAG01:
	.word	4251701513
	.word	1068903742
	.word	2078351854
	.word	1067877247
	.word	2638058249
	.word	1067713414
	.word	3989522966
	.word	1068315907
	.word	2252019716
	.word	1066648940
	.word	2293251402
	.word	1067634182
	.word	1769718940
	.word	1068349925
	.word	1851082801
	.word	1068847101
	.word	2147181282
	.word	1066992779
	.word	435131727
	.word	1068028041
	.word	60748017
	.word	1068896715
	.word	1893029170
	.word	1068483126
	.word	180100005
	.word	1066662020
	.word	2470382725
	.word	1067691352
	.word	3552192216
	.word	1067937346
	.word	3539767734
	.word	1068616684
	.word	2118648956
	.word	1068449038
	.word	3492818588
	.word	1066235482
	.word	3200843275
	.word	1067585397
	.word	3412994044
	.word	1068639798
	.section	.rodata
	.align	2
.LC7:
	.ascii	"No SSE3\000"
	.align	2
.LC8:
	.ascii	"2.1.7\000"
	.align	2
.LC9:
	.ascii	"Usage for FastTree version %s %s%s:\012%s\000"
	.align	2
.LC10:
	.ascii	"-makematrix\000"
	.align	2
.LC11:
	.ascii	"-logdist\000"
	.align	2
.LC12:
	.ascii	"Warning: logdist is now on by default and obsolete\012"
	.ascii	"\000"
	.align	2
.LC13:
	.ascii	"-rawdist\000"
	.align	2
.LC14:
	.ascii	"-verbose\000"
	.align	2
.LC15:
	.ascii	"-quiet\000"
	.align	2
.LC16:
	.ascii	"-nopr\000"
	.align	2
.LC17:
	.ascii	"-slow\000"
	.align	2
.LC18:
	.ascii	"-fastest\000"
	.align	2
.LC19:
	.ascii	"-2nd\000"
	.align	2
.LC20:
	.ascii	"-no2nd\000"
	.align	2
.LC21:
	.ascii	"-slownni\000"
	.align	2
.LC22:
	.ascii	"-matrix\000"
	.align	2
.LC23:
	.ascii	"-nomatrix\000"
	.align	2
.LC24:
	.ascii	"-n\000"
	.align	2
.LC25:
	.ascii	"-n argument for #input alignments must be > 0 not %"
	.ascii	"s\012\000"
	.align	2
.LC26:
	.ascii	"-quote\000"
	.align	2
.LC27:
	.ascii	"-nt\000"
	.align	2
.LC28:
	.ascii	"-intree\000"
	.align	2
.LC29:
	.ascii	"-intree1\000"
	.align	2
.LC30:
	.ascii	"-nj\000"
	.align	2
.LC31:
	.ascii	"-bionj\000"
	.align	2
.LC32:
	.ascii	"-boot\000"
	.align	2
.LC33:
	.ascii	"-noboot\000"
	.align	2
.LC34:
	.ascii	"-nosupport\000"
	.align	2
.LC35:
	.ascii	"-seed\000"
	.align	2
.LC36:
	.ascii	"-top\000"
	.global	__aeabi_dcmplt
	.align	2
.LC37:
	.ascii	"-notop\000"
	.align	2
.LC38:
	.ascii	"-topm\000"
	.align	2
.LC39:
	.ascii	"-close\000"
	.global	__aeabi_dcmple
	.align	2
.LC40:
	.ascii	"Cannot use -close unless -top is set above 0\012\000"
	.global	__aeabi_dcmpge
	.align	2
.LC41:
	.ascii	"-close argument must be between 0 and 1\012\000"
	.align	2
.LC42:
	.ascii	"-refresh\000"
	.align	2
.LC43:
	.ascii	"Cannot use -refresh unless -top is set above 0\012\000"
	.align	2
.LC44:
	.ascii	"-refresh argument must be between 0 and 1\012\000"
	.align	2
.LC45:
	.ascii	"-nni\000"
	.align	2
.LC46:
	.ascii	"-spr\000"
	.align	2
.LC47:
	.ascii	"-sprlength\000"
	.align	2
.LC48:
	.ascii	"-mlnni\000"
	.align	2
.LC49:
	.ascii	"-noml\000"
	.align	2
.LC50:
	.ascii	"-mllen\000"
	.align	2
.LC51:
	.ascii	"-nome\000"
	.align	2
.LC52:
	.ascii	"-help\000"
	.align	2
.LC53:
	.ascii	"FastTree %s %s%s:\012%s\000"
	.align	2
.LC54:
	.ascii	"-expert\000"
	.align	2
.LC55:
	.ascii	"Detailed usage for FastTree %s %s%s:\012%s\000"
	.align	2
.LC56:
	.ascii	"-pseudo\000"
	.align	2
.LC57:
	.ascii	"Illegal argument to -pseudo: %s\012\000"
	.align	2
.LC58:
	.ascii	"-constraints\000"
	.align	2
.LC59:
	.ascii	"-constraintWeight\000"
	.align	2
.LC60:
	.ascii	"Illegal argument to -constraintWeight (must be grea"
	.ascii	"ter than zero): %s\012\000"
	.align	2
.LC61:
	.ascii	"-mlacc\000"
	.align	2
.LC62:
	.ascii	"Illlegal -mlacc argument: %s\012\000"
	.align	2
.LC63:
	.ascii	"-exactml\000"
	.align	2
.LC64:
	.ascii	"-mlexact\000"
	.align	2
.LC65:
	.ascii	"-exactml is not required -- exact posteriors is the"
	.ascii	" default now\012\000"
	.align	2
.LC66:
	.ascii	"-approxml\000"
	.align	2
.LC67:
	.ascii	"-mlapprox\000"
	.align	2
.LC68:
	.ascii	"-cat\000"
	.align	2
.LC69:
	.ascii	"Illlegal argument to -ncat (must be greater than ze"
	.ascii	"ro): %s\012\000"
	.align	2
.LC70:
	.ascii	"-nocat\000"
	.align	2
.LC71:
	.ascii	"-wag\000"
	.align	2
.LC72:
	.ascii	"-gtr\000"
	.align	2
.LC73:
	.ascii	"-gtrrates\000"
	.align	2
.LC74:
	.ascii	"Illegal or too small value of GTR rate: %s\012\000"
	.align	2
.LC75:
	.ascii	"-gtrfreq\000"
	.global	__aeabi_dadd
	.align	2
.LC76:
	.ascii	"Illegal or too small value of GTR frequency: %s\012"
	.ascii	"\000"
	.global	__aeabi_dsub
	.global	__aeabi_dcmpgt
	.align	2
.LC77:
	.ascii	"-gtrfreq values do not sum to 1\012\000"
	.global	__aeabi_ddiv
	.align	2
.LC78:
	.ascii	"-log\000"
	.align	2
.LC79:
	.ascii	"-gamma\000"
	.align	2
.LC80:
	.ascii	"-out\000"
	.align	2
.LC81:
	.ascii	"w\000"
	.align	2
.LC82:
	.ascii	"Cannot write to %s\012\000"
	.align	2
.LC83:
	.ascii	"Unknown or incorrect use of option %s\012%s\000"
	.align	2
.LC84:
	.ascii	"Cannot be both slow and fastest\012\000"
	.align	2
.LC85:
	.ascii	"Cannot write to: %s\012\000"
	.align	2
.LC86:
	.ascii	"Command:\000"
	.align	2
.LC87:
	.ascii	" %s\000"
	.align	2
.LC89:
	.ascii	"%.2f\000"
	.align	2
.LC90:
	.ascii	"%.2f*sqrtN close=%s refresh=%.2f\000"
	.align	2
.LC92:
	.ascii	"SH-like %d\000"
	.align	2
.LC93:
	.ascii	"Local boot %d\000"
	.align	2
.LC95:
	.ascii	"+NNI (%d rounds)\000"
	.align	2
.LC96:
	.ascii	"+NNI\000"
	.align	2
.LC98:
	.ascii	"+SPR (%d rounds range %d)\000"
	.align	2
.LC100:
	.ascii	"+ML-NNI (%d rounds)\000"
	.align	2
.LC101:
	.ascii	"+ML-NNI\000"
	.align	2
.LC102:
	.ascii	"+ML branch lengths\000"
	.align	2
.LC103:
	.ascii	" approx\000"
	.align	2
.LC104:
	.ascii	" opt-each=%d\000"
	.align	2
.LC105:
	.ascii	"standard input\000"
	.align	2
.LC106:
	.ascii	"FastTree Version %s %s%s\012Alignment: %s\000"
	.align	2
.LC107:
	.ascii	" (%d alignments)\000"
	.align	2
.LC108:
	.ascii	"Amino acid\000"
	.align	2
.LC109:
	.ascii	"Nucleotide\000"
	.align	2
.LC110:
	.ascii	"BLOSUM45\000"
	.align	2
.LC111:
	.ascii	"Jukes-Cantor\000"
	.align	2
.LC112:
	.ascii	"%different\000"
	.align	2
.LC113:
	.ascii	"weighted\000"
	.align	2
.LC114:
	.ascii	"balanced\000"
	.align	2
.LC115:
	.ascii	"\012%s distances: %s Joins: %s Support: %s\012\000"
	.align	2
.LC116:
	.ascii	"Fastest\000"
	.align	2
.LC117:
	.ascii	"Normal\000"
	.align	2
.LC118:
	.ascii	"Exhaustive (slow)\000"
	.align	2
.LC119:
	.ascii	"+2nd\000"
	.align	2
.LC120:
	.ascii	"\000"
	.align	2
.LC121:
	.ascii	"Search: %s%s %s %s %s\012TopHits: %s\012\000"
	.align	2
.LC122:
	.ascii	"Start at tree from %s %s %s\012\000"
	.align	2
.LC123:
	.ascii	"Generalized Time-Reversible\000"
	.align	2
.LC124:
	.ascii	"Whelan-And-Goldman\000"
	.align	2
.LC125:
	.ascii	"Jones-Taylor-Thorton\000"
	.align	2
.LC126:
	.ascii	"ML Model: %s,\000"
	.align	2
.LC127:
	.ascii	" No rate variation across sites\000"
	.align	2
.LC128:
	.ascii	" CAT approximation with %d rate categories\000"
	.align	2
.LC129:
	.ascii	"GTR rates(ac ag at cg ct gt) %.4f %.4f %.4f %.4f %."
	.ascii	"4f %.4f\012\000"
	.align	2
.LC130:
	.ascii	"GTR frequencies(A C G T) %.4f %.4f %.4f %.4f\012\000"
	.align	2
.LC131:
	.ascii	"Constraints: %s Weight: %.3f\012\000"
	.align	2
.LC132:
	.ascii	"Pseudocount weight for comparing sequences with lit"
	.ascii	"tle overlap: %.3lf\012\000"
	.align	2
.LC133:
	.ascii	"Cannot use both -matrix and -nomatrix arguments!\000"
	.align	2
.LC134:
	.ascii	"the_stack_data/857736.c\000"
	.align	2
.LC135:
	.ascii	"nCodes==20\000"
	.align	2
.LC136:
	.ascii	"r\000"
	.align	2
.LC137:
	.ascii	"Cannot read %s\012\000"
	.align	2
.LC138:
	.ascii	"No alignment sequences\012\000"
	.align	2
.LC139:
	.ascii	"Read %d sequences, %d positions\012\000"
	.align	2
.LC140:
	.ascii	"Read alignment\000"
	.align	2
.LC141:
	.ascii	"Non-unique name '%s' in the alignment\012\000"
	.align	2
.LC142:
	.ascii	"Hashed the names\000"
	.align	2
.LC143:
	.ascii	"   %d\012\000"
	.align	2
.LC144:
	.ascii	"%s\000"
	.global	__aeabi_f2d
	.global	__aeabi_d2f
	.global	__aeabi_fcmple
	.align	2
.LC145:
	.ascii	" %f\000"
	.align	2
.LC146:
	.ascii	"Identified unique sequences\000"
	.align	2
.LC147:
	.ascii	"Warning: constraints file with less than 4 sequence"
	.ascii	"s ignored:\012alignment #%d in %s\012\000"
	.align	2
.LC148:
	.ascii	"Read the constraints\000"
	.align	2
.LC149:
	.ascii	"read %s seqs %d (%d unique) positions %d nameLast %"
	.ascii	"s seqLast %s\012\000"
	.align	2
.LC150:
	.ascii	"Read tree from %s\012\000"
	.align	2
.LC151:
	.ascii	"NJ\000"
	.global	__aeabi_i2d
	.global	__aeabi_dmul
	.global	__aeabi_d2iz
	.align	2
.LC152:
	.ascii	"Initial topology in %.2f seconds\012\000"
	.align	2
.LC153:
	.ascii	"Refining topology: %d rounds ME-NNIs, %d rounds ME-"
	.ascii	"SPRs, %d rounds ML-NNIs\012\000"
	.align	2
.LC154:
	.ascii	"ME_NNI%d\000"
	.align	2
.LC155:
	.ascii	"Min_evolution NNIs converged at round %d -- skippin"
	.ascii	"g some rounds\012\000"
	.global	__aeabi_idiv
	.global	__aeabi_idivmod
	.align	2
.LC156:
	.ascii	"ME_SPR%d\000"
	.align	2
.LC157:
	.ascii	"ME_Lengths\000"
	.align	2
.LC158:
	.ascii	"Total branch-length %.3f after %.2f sec\012\000"
	.align	2
.LC159:
	.ascii	"ML_Lengths\000"
	.global	__aeabi_fsub
	.align	2
.LC160:
	.ascii	"~\000"
	.align	2
.LC161:
	.ascii	" (converged)\000"
	.align	2
.LC162:
	.ascii	"%d rounds ML lengths: LogLk %s= %.3lf Max-change %."
	.ascii	"4lf%s Time %.2f\012\000"
	.align	2
.LC163:
	.ascii	"TreeLogLk\011Length%d\011%.4lf\011MaxChange\011%.4l"
	.ascii	"f\012\000"
	.align	2
.LC164:
	.ascii	"ML_Lengths%d\000"
	.align	2
.LC165:
	.ascii	"ML_NNI%d\000"
	.align	2
.LC166:
	.ascii	" (final)\000"
	.align	2
.LC167:
	.ascii	"ML-NNI round %d: LogLk %s= %.3f NNIs %d max delta %"
	.ascii	".2f Time %.2f%s\012\000"
	.align	2
.LC168:
	.ascii	"TreeLogLk\011ML_NNI%d\011%.4lf\011MaxChange\011%.4l"
	.ascii	"f\012\000"
	.align	2
.LC169:
	.ascii	"Turning off heuristics for final round of ML NNIs%s"
	.ascii	"\012\000"
	.align	2
.LC170:
	.ascii	"Optimize all lengths: LogLk %s= %.3f Time %.2f\012\000"
	.align	2
.LC171:
	.ascii	"TreeLogLk\011ML_Lengths%d\011%.4f\012\000"
	.align	2
.LC172:
	.ascii	"Total time: %.2f seconds Unique: %d/%d Bad splits: "
	.ascii	"%d/%d\000"
	.align	2
.LC173:
	.ascii	"unconstrained \000"
	.align	2
.LC174:
	.ascii	"LogLk\000"
	.align	2
.LC175:
	.ascii	"Len\000"
	.align	2
.LC176:
	.ascii	" Worst %sdelta-%s %.3f\000"
	.align	2
.LC177:
	.ascii	"Violating constraints: %d both bad: %d\000"
	.align	2
.LC178:
	.ascii	" Worst delta-%s due to constraints: %.3f\000"
	.align	2
.LC179:
	.ascii	"Dist/N**2: by-profile %.3f (out %.3f) by-leaf %.3f "
	.ascii	"avg-prof %.3f\012\000"
	.align	2
.LC180:
	.ascii	"Top hits: close neighbors %ld/%d 2nd-level %ld refr"
	.ascii	"eshes %ld\000"
	.align	2
.LC181:
	.ascii	" Hill-climb: %ld Update-best: %ld\012\000"
	.align	2
.LC182:
	.ascii	"NNI: %ld SPR: %ld ML-NNI: %ld\012\000"
	.align	2
.LC183:
	.ascii	"Max-lk operations: lk %ld posterior %ld\000"
	.align	2
.LC184:
	.ascii	" approximate-posteriors %.2f%%\000"
	.align	2
.LC185:
	.ascii	" star-only %ld\000"
	.align	2
.LC186:
	.ascii	"TreeCompleted\012\000"
	.align	3
.LC0:
	.word	0
	.word	1072693248
	.word	0
	.word	1072693248
	.word	0
	.word	1072693248
	.word	0
	.word	1072693248
	.word	0
	.word	1072693248
	.word	0
	.word	1072693248
	.align	3
.LC1:
	.word	0
	.word	1070596096
	.word	0
	.word	1070596096
	.word	0
	.word	1070596096
	.word	0
	.word	1070596096
	.align	2
.LC88:
	.ascii	"default\000"
	.space	92
	.align	2
.LC91:
	.ascii	"none\000"
	.space	95
	.align	2
.LC94:
	.ascii	"(no NNI)\000"
	.space	91
	.align	2
.LC97:
	.ascii	"(no SPR)\000"
	.space	91
	.align	2
.LC99:
	.ascii	"(no ML-NNI)\000"
	.space	88
	.align	2
.LC187:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 1096
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #1136
	str	r0, [fp, #-1112]
	str	r1, [fp, #-1116]
	ldr	r3, .L355
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	mov	r3, #1
	str	r3, [fp, #-1088]
	mov	r3, #0
	str	r3, [fp, #-1080]
	mov	r3, #0
	str	r3, [fp, #-1076]
	mov	r3, #0
	strb	r3, [fp, #-1101]
	mov	r3, #0
	str	r3, [fp, #-1072]
	mov	r3, #0
	str	r3, [fp, #-1068]
	mov	r3, #0
	strb	r3, [fp, #-1100]
	mvn	r3, #0
	str	r3, [fp, #-1064]
	mov	r3, #2
	str	r3, [fp, #-1060]
	mov	r3, #10
	str	r3, [fp, #-1056]
	mvn	r3, #0
	str	r3, [fp, #-1052]
	mov	r3, #0
	strb	r3, [fp, #-1099]
	mov	r3, #1000
	str	r3, [fp, #-1048]
	mov	r3, #20
	str	r3, [fp, #-1044]
	mov	r3, #0
	str	r3, [fp, #-1040]
	mov	r3, #0
	strb	r3, [fp, #-1098]
	mov	r3, #0
	strb	r3, [fp, #-1097]
	mov	r3, #0
	strb	r3, [fp, #-1096]
	ldr	r3, .L355+4
	sub	ip, fp, #684
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	mov	r3, #0
	strb	r3, [fp, #-1095]
	ldr	r3, .L355+8
	sub	ip, fp, #716
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	mov	r3, #0
	strb	r3, [fp, #-1094]
	ldr	r3, .L355+12
	ldr	r3, [r3]
	str	r3, [fp, #-1036]
	mov	r0, #0
	bl	isatty
	mov	r3, r0
	cmp	r3, #0
	beq	.L2
	ldr	r3, [fp, #-1112]
	cmp	r3, #1
	bne	.L2
	ldr	r3, .L355+308
	ldr	r4, [r3]
	bl	OpenMPString
	mov	r2, r0
	ldr	r3, .L355+16
	ldr	r3, [r3]
	str	r3, [sp, #4]
	str	r2, [sp]
	ldr	r3, .L355+20
	ldr	r2, .L355+24
	ldr	r1, .L355+28
	mov	r0, r4
	bl	fprintf
	mov	r0, #0
	bl	exit
.L2:
	mov	r3, #1
	str	r3, [fp, #-1084]
	b	.L3
.L96:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+32
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4
	mov	r3, #1
	strb	r3, [fp, #-1101]
	b	.L5
.L4:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+36
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L6
	ldr	r3, .L355+308
	ldr	r3, [r3]
	mov	r2, #51
	mov	r1, #1
	ldr	r0, .L355+40
	bl	fwrite
	b	.L5
.L6:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+44
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L7
	ldr	r3, .L355+48
	mov	r2, #0
	strb	r2, [r3]
	b	.L5
.L7:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+52
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L8
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L8
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L355+444
	str	r3, [r2]
	b	.L5
.L8:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+56
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L9
	ldr	r3, .L355+444
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L355+60
	mov	r2, #0
	str	r2, [r3]
	b	.L5
.L9:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+64
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L10
	ldr	r3, .L355+60
	mov	r2, #0
	str	r2, [r3]
	b	.L5
.L10:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+68
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L11
	ldr	r3, .L355+424
	mov	r2, #1
	str	r2, [r3]
	b	.L5
.L11:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+72
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L12
	ldr	r3, .L355+416
	mov	r2, #1
	str	r2, [r3]
	ldr	r1, .L355+472
	mov	r2, #0
	ldr	r3, .L355+76
	stm	r1, {r2-r3}
	ldr	r3, .L355+80
	mov	r2, #1
	strb	r2, [r3]
	b	.L5
.L12:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+84
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L13
	ldr	r3, .L355+80
	mov	r2, #1
	strb	r2, [r3]
	b	.L5
.L13:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+88
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L14
	ldr	r3, .L355+80
	mov	r2, #0
	strb	r2, [r3]
	b	.L5
.L14:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+92
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L15
	ldr	r3, .L355+96
	mov	r2, #0
	strb	r2, [r3]
	b	.L5
.L15:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+100
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L16
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L16
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-1080]
	b	.L5
.L16:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+104
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L17
	ldr	r3, .L355+412
	mov	r2, #0
	strb	r2, [r3]
	b	.L5
.L17:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+108
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L18
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L18
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	str	r0, [fp, #-1088]
	ldr	r3, [fp, #-1088]
	cmp	r3, #0
	bgt	.L5
	ldr	r3, .L355+308
	ldr	r0, [r3]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L355+112
	bl	fprintf
	mov	r0, #1
	bl	exit
.L18:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+116
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L20
	mov	r3, #1
	strb	r3, [fp, #-1094]
	b	.L5
.L20:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+120
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L21
	ldr	r3, .L355+408
	mov	r2, #4
	str	r2, [r3]
	b	.L5
.L21:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+124
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L22
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L22
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-1068]
	b	.L5
.L22:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+128
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L23
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L23
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-1068]
	mov	r3, #1
	strb	r3, [fp, #-1100]
	b	.L5
.L23:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+132
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L24
	ldr	r3, .L355+136
	mov	r2, #0
	str	r2, [r3]
	b	.L5
.L24:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+140
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L25
	ldr	r3, .L355+136
	mov	r2, #1
	str	r2, [r3]
	b	.L5
.L25:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+144
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L26
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L26
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	str	r0, [fp, #-1048]
	b	.L5
.L26:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+148
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L27
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+152
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L28
.L27:
	mov	r3, #0
	str	r3, [fp, #-1048]
	b	.L5
.L28:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+156
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L29
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L29
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atol
	str	r0, [fp, #-940]
	ldr	r0, [fp, #-940]
	bl	ran_start
	b	.L5
.L29:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+160
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L30
	ldr	r3, .L355+468
	ldmia	r3, {r0-r1}
	ldr	r2, .L355+356
	ldr	r3, .L355+360
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L5
	ldr	r1, .L355+468
	mov	r2, #0
	ldr	r3, .L355+352
	stm	r1, {r2-r3}
	b	.L5
.L30:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+164
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L32
	ldr	r1, .L355+468
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	b	.L5
.L32:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+168
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L33
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L33
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L355+468
	stm	r1, {r2-r3}
	b	.L5
.L33:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+172
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L34
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L34
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L355+460
	stm	r1, {r2-r3}
	ldr	r3, .L355+468
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L345
	ldr	r3, .L355+308
	ldr	r3, [r3]
	mov	r2, #45
	mov	r1, #1
	ldr	r0, .L355+176
	bl	fwrite
	mov	r0, #1
	bl	exit
.L345:
	ldr	r3, .L355+460
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L37
	ldr	r3, .L355+460
	ldmia	r3, {r0-r1}
	mov	r2, #0
	ldr	r3, .L355+352
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	bne	.L37
	b	.L5
.L37:
	ldr	r3, .L355+308
	ldr	r3, [r3]
	mov	r2, #40
	mov	r1, #1
	ldr	r0, .L355+180
	bl	fwrite
	mov	r0, #1
	bl	exit
.L34:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+184
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L40
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L40
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L355+472
	stm	r1, {r2-r3}
	ldr	r3, .L355+468
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L346
	ldr	r3, .L355+308
	ldr	r3, [r3]
	mov	r2, #47
	mov	r1, #1
	ldr	r0, .L355+188
	bl	fwrite
	mov	r0, #1
	bl	exit
.L346:
	ldr	r3, .L355+472
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L43
	ldr	r3, .L355+472
	ldmia	r3, {r0-r1}
	mov	r2, #0
	ldr	r3, .L355+352
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	bne	.L43
	b	.L5
.L43:
	ldr	r3, .L355+308
	ldr	r3, [r3]
	mov	r2, #42
	mov	r1, #1
	ldr	r0, .L355+192
	bl	fwrite
	mov	r0, #1
	bl	exit
.L40:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+196
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L46
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L46
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	str	r0, [fp, #-1064]
	ldr	r3, [fp, #-1064]
	cmp	r3, #0
	bne	.L5
	mov	r3, #0
	str	r3, [fp, #-1060]
	b	.L5
.L46:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+200
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L48
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L48
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	str	r0, [fp, #-1060]
	b	.L5
.L48:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+204
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L49
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L49
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	str	r0, [fp, #-1056]
	b	.L5
.L49:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+208
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L50
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L50
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	str	r0, [fp, #-1052]
	b	.L5
.L50:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+212
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L51
	mov	r3, #0
	str	r3, [fp, #-1052]
	b	.L5
.L51:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+216
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L52
	mov	r3, #0
	str	r3, [fp, #-1052]
	mov	r3, #1
	strb	r3, [fp, #-1099]
	b	.L5
.L52:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+220
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L53
	mov	r3, #0
	str	r3, [fp, #-1060]
	mov	r3, #0
	str	r3, [fp, #-1064]
	b	.L5
.L53:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+224
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L54
	ldr	r3, .L355+308
	ldr	r4, [r3]
	bl	OpenMPString
	mov	r2, r0
	ldr	r3, .L355+16
	ldr	r3, [r3]
	str	r3, [sp, #4]
	str	r2, [sp]
	ldr	r3, .L355+20
	ldr	r2, .L355+24
	ldr	r1, .L355+228
	mov	r0, r4
	bl	fprintf
	mov	r0, #0
	bl	exit
.L54:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+232
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L55
	ldr	r3, .L355+308
	ldr	r4, [r3]
	bl	OpenMPString
	mov	r2, r0
	ldr	r3, .L355+236
	ldr	r3, [r3]
	str	r3, [sp, #4]
	str	r2, [sp]
	ldr	r3, .L355+20
	ldr	r2, .L355+24
	ldr	r1, .L355+240
	mov	r0, r4
	bl	fprintf
	mov	r0, #0
	bl	exit
.L356:
	.align	2
.L355:
	.word	.LC187
	.word	.LC0
	.word	.LC1
	.word	stdout
	.word	usage
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	logdist
	.word	.LC14
	.word	.LC15
	.word	showProgress
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	1071644672
	.word	useTopHits2nd
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.word	fastNNI
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	bionj
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.word	.LC41
	.word	.LC42
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.word	.LC49
	.word	.LC50
	.word	.LC51
	.word	.LC52
	.word	.LC53
	.word	.LC54
	.word	expertUsage
	.word	.LC55
	.word	.LC56
	.word	.LC57
	.word	pseudoWeight
	.word	.LC58
	.word	.LC59
	.word	constraintWeight
	.word	.LC60
	.word	.LC61
	.word	mlAccuracy
	.word	.LC62
	.word	.LC63
	.word	.LC64
	.word	.LC65
	.word	.LC66
	.word	.LC67
	.word	.LC68
	.word	stderr
	.word	.LC69
	.word	.LC70
	.word	.LC71
	.word	.LC72
	.word	.LC73
	.word	.LC74
	.word	.LC75
	.word	-1998362383
	.word	1055193269
	.word	.LC76
	.word	1072693248
	.word	1202590843
	.word	1065646817
	.word	.LC77
	.word	.LC78
	.word	.LC79
	.word	gammaLogLk
	.word	.LC80
	.word	.LC82
	.word	.LC83
	.word	usage
	.word	codesStringAA
	.word	codesStringNT
	.word	codesString
	.word	nCodes
	.word	useMatrix
	.word	fastest
	.word	.LC84
	.word	slow
	.word	.LC81
	.word	.LC85
	.word	.LC86
	.word	.LC87
	.word	verbose
	.word	stderr
	.word	28526
	.word	.LC88
	.word	tophitsClose
	.word	.LC89
	.word	tophitsMult
	.word	tophitsRefresh
	.word	.LC90
	.word	.LC91
	.word	.LC92
	.word	.LC93
	.word	.LC94
	.word	.LC95
	.word	.LC96
	.word	.LC97
	.word	.LC98
	.word	.LC99
	.word	.LC100
	.word	.LC101
	.word	.LC102
	.word	exactML
.L55:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+244
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L56
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L57
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r1, [fp, #-1116]
	add	r3, r1, r3
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L57
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L355+252
	stm	r1, {r2-r3}
	ldr	r3, .L355+252
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L5
	ldr	r3, .L355+308
	ldr	r0, [r3]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L355+248
	bl	fprintf
	mov	r0, #1
	bl	exit
.L57:
	ldr	r1, .L355+252
	mov	r2, #0
	ldr	r3, .L355+352
	stm	r1, {r2-r3}
	b	.L5
.L56:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+256
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L61
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L61
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-1072]
	b	.L5
.L61:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+260
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L62
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L62
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L355+264
	stm	r1, {r2-r3}
	ldr	r3, .L355+264
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L5
	ldr	r3, .L355+308
	ldr	r0, [r3]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L355+268
	bl	fprintf
	mov	r0, #1
	bl	exit
.L62:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+272
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L65
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L65
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L355+276
	str	r3, [r2]
	ldr	r3, .L355+276
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L5
	ldr	r3, .L355+308
	ldr	r0, [r3]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L355+280
	bl	fprintf
	mov	r0, #1
	bl	exit
.L65:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+284
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L67
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+288
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L68
.L67:
	ldr	r3, .L355+308
	ldr	r3, [r3]
	mov	r2, #64
	mov	r1, #1
	ldr	r0, .L355+292
	bl	fwrite
	b	.L5
.L68:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+296
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L69
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+300
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L70
.L69:
	ldr	r3, .L355+528
	mov	r2, #0
	strb	r2, [r3]
	b	.L5
.L70:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+304
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L71
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L71
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	str	r0, [fp, #-1044]
	ldr	r3, [fp, #-1044]
	cmp	r3, #0
	bgt	.L5
	ldr	r3, .L355+308
	ldr	r0, [r3]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L355+312
	bl	fprintf
	mov	r0, #1
	bl	exit
.L71:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+316
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L73
	mov	r3, #1
	str	r3, [fp, #-1044]
	b	.L5
.L73:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+320
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L74
	mov	r3, #1
	strb	r3, [fp, #-1097]
	b	.L5
.L74:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+324
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L75
	mov	r3, #1
	strb	r3, [fp, #-1098]
	b	.L5
.L75:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+328
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L76
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #6
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L76
	mov	r3, #1
	strb	r3, [fp, #-1098]
	mov	r3, #1
	strb	r3, [fp, #-1096]
	mov	r3, #0
	str	r3, [fp, #-1032]
	b	.L77
.L80:
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-1032]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #656
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1032]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #656
	ldmia	r3, {r0-r1}
	ldr	r2, .L355+340
	ldr	r3, .L355+344
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L347
	ldr	r3, .L355+448
	ldr	r0, [r3]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L355+332
	bl	fprintf
	mov	r0, #1
	bl	exit
.L347:
	ldr	r3, [fp, #-1032]
	add	r3, r3, #1
	str	r3, [fp, #-1032]
.L77:
	ldr	r3, [fp, #-1032]
	cmp	r3, #5
	ble	.L80
	b	.L5
.L76:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+336
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L81
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #4
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L81
	mov	r3, #1
	strb	r3, [fp, #-1098]
	mov	r3, #1
	strb	r3, [fp, #-1095]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-852]
	str	r3, [fp, #-848]
	mov	r3, #0
	str	r3, [fp, #-1028]
	b	.L82
.L85:
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-1028]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #688
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1028]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #688
	ldmia	r3, {r2-r3}
	sub	r1, fp, #852
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-852]
	str	r3, [fp, #-848]
	ldr	r3, [fp, #-1028]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #688
	ldmia	r3, {r0-r1}
	ldr	r2, .L355+340
	ldr	r3, .L355+344
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L348
	ldr	r3, .L355+448
	ldr	r0, [r3]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L355+348
	bl	fprintf
	mov	r0, #1
	bl	exit
.L348:
	ldr	r3, [fp, #-1028]
	add	r3, r3, #1
	str	r3, [fp, #-1028]
.L82:
	ldr	r3, [fp, #-1028]
	cmp	r3, #3
	ble	.L85
	sub	r3, fp, #852
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L355+352
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	bic	r5, r3, #-2147483648
	ldr	r2, .L355+356
	ldr	r3, .L355+360
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L349
	ldr	r3, .L355+448
	ldr	r3, [r3]
	mov	r2, #32
	mov	r1, #1
	ldr	r0, .L355+364
	bl	fwrite
	mov	r0, #1
	bl	exit
.L349:
	mov	r3, #0
	str	r3, [fp, #-1028]
	b	.L88
.L89:
	ldr	r3, [fp, #-1028]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #688
	ldmia	r3, {r0-r1}
	sub	r3, fp, #852
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-1028]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #688
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-1028]
	add	r3, r3, #1
	str	r3, [fp, #-1028]
.L88:
	ldr	r3, [fp, #-1028]
	cmp	r3, #3
	ble	.L89
	b	.L5
.L81:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+368
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L90
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L90
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-1040]
	b	.L5
.L90:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+372
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L91
	ldr	r3, .L355+376
	mov	r2, #1
	strb	r2, [r3]
	b	.L5
.L91:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+380
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L92
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L92
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L355+428
	mov	r0, r3
	bl	fopen
	str	r0, [fp, #-1036]
	ldr	r3, [fp, #-1036]
	cmp	r3, #0
	bne	.L5
	ldr	r3, .L355+448
	ldr	r0, [r3]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L355+384
	bl	fprintf
	mov	r0, #1
	bl	exit
.L92:
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L351
	ldr	r3, .L355+448
	ldr	r0, [r3]
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, .L355+392
	ldr	r3, [r3]
	ldr	r1, .L355+388
	bl	fprintf
	mov	r0, #1
	bl	exit
.L5:
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
.L3:
	ldr	r2, [fp, #-1084]
	ldr	r3, [fp, #-1112]
	cmp	r2, r3
	blt	.L96
	b	.L95
.L351:
	nop
.L95:
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bge	.L97
	ldr	r3, .L355+448
	ldr	r2, [r3]
	ldr	r3, .L355+392
	ldr	r3, [r3]
	mov	r1, r2
	mov	r0, r3
	bl	fputs
	mov	r0, #1
	bl	exit
.L97:
	ldr	r3, .L355+408
	ldr	r3, [r3]
	cmp	r3, #20
	bne	.L98
	ldr	r3, .L355+396
	ldr	r3, [r3]
	b	.L99
.L98:
	ldr	r3, .L355+400
	ldr	r3, [r3]
.L99:
	ldr	r2, .L355+404
	str	r3, [r2]
	ldr	r3, .L355+408
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L100
	ldr	r3, [fp, #-1080]
	cmp	r3, #0
	bne	.L100
	ldr	r3, .L355+412
	mov	r2, #0
	strb	r2, [r3]
.L100:
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1084]
	cmp	r2, r3
	bne	.L101
	ldr	r3, [fp, #-1112]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	b	.L102
.L101:
	mov	r3, #0
.L102:
	str	r3, [fp, #-936]
	ldr	r3, .L355+424
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L103
	ldr	r3, .L355+416
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L103
	ldr	r3, .L355+448
	ldr	r3, [r3]
	mov	r2, #32
	mov	r1, #1
	ldr	r0, .L355+420
	bl	fwrite
	mov	r0, #1
	bl	exit
.L103:
	ldr	r3, .L355+424
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L104
	ldr	r3, .L355+468
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L104
	ldr	r1, .L355+468
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
.L104:
	mov	r3, #0
	str	r3, [fp, #-1024]
	ldr	r3, [fp, #-1040]
	cmp	r3, #0
	beq	.L106
	ldr	r1, .L355+428
	ldr	r0, [fp, #-1040]
	bl	fopen
	str	r0, [fp, #-1024]
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	bne	.L107
	ldr	r3, .L355+448
	ldr	r3, [r3]
	ldr	r2, [fp, #-1040]
	ldr	r1, .L355+432
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L107:
	ldr	r3, [fp, #-1024]
	mov	r2, #8
	mov	r1, #1
	ldr	r0, .L355+436
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-1020]
	b	.L108
.L109:
	ldr	r3, [fp, #-1020]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1116]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L355+440
	ldr	r0, [fp, #-1024]
	bl	fprintf
	ldr	r3, [fp, #-1020]
	add	r3, r3, #1
	str	r3, [fp, #-1020]
.L108:
	ldr	r2, [fp, #-1020]
	ldr	r3, [fp, #-1112]
	cmp	r2, r3
	blt	.L109
	ldr	r1, [fp, #-1024]
	mov	r0, #10
	bl	fputc
	ldr	r0, [fp, #-1024]
	bl	fflush
.L106:
	mov	r3, #0
	str	r3, [fp, #-724]
	mov	r3, #0
	str	r3, [fp, #-720]
	mov	r3, #0
	str	r3, [fp, #-1012]
	ldr	r3, .L355+444
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L110
	ldr	r3, [fp, #-1012]
	add	r2, r3, #1
	str	r2, [fp, #-1012]
	ldr	r2, .L355+448
	ldr	r2, [r2]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-696]
.L110:
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L111
	ldr	r3, [fp, #-1012]
	add	r2, r3, #1
	str	r2, [fp, #-1012]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r2, [fp, #-1024]
	str	r2, [r3, #-696]
.L111:
	ldrb	r3, [fp, #-1101]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L112
	ldr	r3, .L355+452
	str	r3, [fp, #-632]
	sub	r3, fp, #628
	mov	r2, #96
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r2, .L355+456
	sub	r3, fp, #532
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	sub	r3, fp, #524
	mov	r2, #92
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, .L355+460
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L113
	ldr	r3, .L355+460
	ldmia	r3, {r2-r3}
	sub	r0, fp, #532
	ldr	r1, .L355+464
	bl	sprintf
.L113:
	ldr	r3, .L355+468
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L115
	ldr	r3, .L355+468
	ldmia	r3, {r0-r1}
	ldr	r3, .L355+472
	ldmia	r3, {r2-r3}
	sub	ip, fp, #632
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #532
	str	r3, [sp]
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L355+476
	mov	r0, ip
	bl	sprintf
.L115:
	ldr	r2, .L355+480
	sub	r3, fp, #432
	ldm	r2, {r0, r1}
	str	r0, [r3]
	add	r3, r3, #4
	strb	r1, [r3]
	sub	r3, fp, #424
	sub	r3, r3, #3
	mov	r2, #95
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-1048]
	cmp	r3, #0
	ble	.L117
	ldr	r3, [fp, #-1052]
	cmp	r3, #0
	bne	.L118
	ldrb	r3, [fp, #-1099]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L119
.L118:
	sub	r3, fp, #432
	ldr	r2, [fp, #-1048]
	ldr	r1, .L355+484
	mov	r0, r3
	bl	sprintf
	b	.L117
.L119:
	sub	r3, fp, #432
	ldr	r2, [fp, #-1048]
	ldr	r1, .L355+488
	mov	r0, r3
	bl	sprintf
.L117:
	ldr	r2, .L355+492
	sub	r3, fp, #332
	ldm	r2, {r0, r1, r2}
	stmia	r3!, {r0, r1}
	strb	r2, [r3]
	sub	r3, fp, #320
	sub	r3, r3, #3
	mov	r2, #91
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-1064]
	cmp	r3, #0
	ble	.L120
	sub	r3, fp, #332
	ldr	r2, [fp, #-1064]
	ldr	r1, .L355+496
	mov	r0, r3
	bl	sprintf
.L120:
	ldr	r3, [fp, #-1064]
	cmn	r3, #1
	bne	.L121
	sub	r3, fp, #332
	ldr	r2, .L355+500
	ldm	r2, {r0, r1}
	str	r0, [r3]
	add	r3, r3, #4
	strb	r1, [r3]
.L121:
	ldr	r2, .L355+504
	sub	r3, fp, #232
	ldm	r2, {r0, r1, r2}
	stmia	r3!, {r0, r1}
	strb	r2, [r3]
	sub	r3, fp, #223
	mov	r2, #91
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-1060]
	cmp	r3, #0
	ble	.L122
	sub	r0, fp, #232
	ldr	r3, [fp, #-1056]
	ldr	r2, [fp, #-1060]
	ldr	r1, .L355+508
	bl	sprintf
.L122:
	ldr	r2, .L355+512
	sub	r3, fp, #132
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
	sub	r3, fp, #120
	mov	r2, #88
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-1052]
	cmp	r3, #0
	ble	.L123
	sub	r3, fp, #132
	ldr	r2, [fp, #-1052]
	ldr	r1, .L355+516
	mov	r0, r3
	bl	sprintf
	b	.L124
.L123:
	ldr	r3, [fp, #-1052]
	cmn	r3, #1
	bne	.L125
	sub	r3, fp, #132
	ldr	r1, .L355+520
	mov	r0, r3
	bl	sprintf
	b	.L124
.L125:
	ldrb	r3, [fp, #-1099]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L124
	sub	r3, fp, #132
	ldr	r1, .L355+524
	mov	r0, r3
	bl	sprintf
.L124:
	ldrb	r3, [fp, #-1099]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L126
	ldr	r3, [fp, #-1052]
	cmp	r3, #0
	beq	.L127
.L126:
	ldr	r3, .L355+528
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L127
	sub	r3, fp, #132
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #132
	add	r3, r3, r2
	ldr	r2, .L357
	mov	r0, r3
	mov	r1, r2
	mov	r3, #8
	mov	r2, r3
	bl	memcpy
.L127:
	ldr	r3, [fp, #-1052]
	cmp	r3, #0
	beq	.L128
	sub	r3, fp, #132
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	sub	r3, fp, #132
	add	r3, r3, r2
	ldr	r2, .L357+4
	ldr	r2, [r2]
	ldr	r1, .L357+8
	mov	r0, r3
	bl	sprintf
.L128:
	mov	r3, #0
	str	r3, [fp, #-1016]
	b	.L129
.L165:
	ldr	r3, [fp, #-1016]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r3, [r3, #-696]
	str	r3, [fp, #-932]
	bl	OpenMPString
	mov	r2, r0
	ldr	r3, [fp, #-936]
	cmp	r3, #0
	beq	.L130
	ldr	r3, [fp, #-936]
	b	.L131
.L130:
	ldr	r3, .L357+12
.L131:
	str	r3, [sp, #4]
	str	r2, [sp]
	ldr	r3, .L357+16
	ldr	r2, .L357+20
	ldr	r1, .L357+24
	ldr	r0, [fp, #-932]
	bl	fprintf
	ldr	r3, [fp, #-1088]
	cmp	r3, #1
	ble	.L132
	ldr	r2, [fp, #-1088]
	ldr	r1, .L357+28
	ldr	r0, [fp, #-932]
	bl	fprintf
.L132:
	ldr	r3, .L357+32
	ldr	r3, [r3]
	cmp	r3, #20
	bne	.L133
	ldr	r0, .L357+36
	b	.L134
.L133:
	ldr	r0, .L357+40
.L134:
	ldr	r3, [fp, #-1080]
	cmp	r3, #0
	bne	.L135
	ldr	r3, .L357+44
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L136
	ldr	r3, .L357+48
	b	.L140
.L136:
	ldr	r3, .L357+32
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L138
	ldr	r3, .L357+52
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L138
	ldr	r3, .L357+56
	b	.L140
.L138:
	ldr	r3, .L357+60
	b	.L140
.L135:
	ldr	r3, [fp, #-1080]
.L140:
	ldr	r2, .L357+64
	ldr	r2, [r2]
	cmp	r2, #0
	beq	.L141
	ldr	r2, .L357+68
	b	.L142
.L141:
	ldr	r2, .L357+72
.L142:
	sub	r1, fp, #432
	str	r1, [sp, #4]
	str	r2, [sp]
	mov	r2, r0
	ldr	r1, .L357+76
	ldr	r0, [fp, #-932]
	bl	fprintf
	ldr	r3, [fp, #-1068]
	cmp	r3, #0
	bne	.L143
	ldr	r3, .L357+80
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L144
	ldr	r3, .L357+488
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L145
	ldr	r2, .L357+84
	b	.L147
.L145:
	ldr	r2, .L357+88
	b	.L147
.L144:
	ldr	r2, .L357+92
.L147:
	ldr	r3, .L357+96
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L148
	ldr	r1, .L357+100
	b	.L149
.L148:
	ldr	r1, .L357+504
.L149:
	sub	r3, fp, #632
	str	r3, [sp, #12]
	sub	r3, fp, #132
	str	r3, [sp, #8]
	sub	r3, fp, #232
	str	r3, [sp, #4]
	sub	r3, fp, #332
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L357+104
	ldr	r0, [fp, #-932]
	bl	fprintf
	b	.L150
.L143:
	sub	r2, fp, #332
	sub	r3, fp, #232
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-1068]
	ldr	r1, .L357+108
	ldr	r0, [fp, #-932]
	bl	fprintf
.L150:
	ldr	r3, [fp, #-1052]
	cmp	r3, #0
	bne	.L151
	ldrb	r3, [fp, #-1099]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L152
.L151:
	ldr	r3, .L357+32
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L153
	ldrb	r3, [fp, #-1098]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L154
	ldr	r3, .L357+112
	b	.L156
.L154:
	ldr	r3, .L357+56
	b	.L156
.L153:
	ldrb	r3, [fp, #-1097]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L157
	ldr	r3, .L357+116
	b	.L156
.L157:
	ldr	r3, .L357+120
.L156:
	mov	r2, r3
	ldr	r1, .L357+124
	ldr	r0, [fp, #-932]
	bl	fprintf
	ldr	r3, [fp, #-1044]
	cmp	r3, #1
	bne	.L159
	ldr	r3, [fp, #-932]
	mov	r2, #31
	mov	r1, #1
	ldr	r0, .L357+128
	bl	fwrite
	b	.L160
.L159:
	ldr	r2, [fp, #-1044]
	ldr	r1, .L357+132
	ldr	r0, [fp, #-932]
	bl	fprintf
.L160:
	ldr	r1, [fp, #-932]
	mov	r0, #10
	bl	fputc
	ldr	r3, .L357+32
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L161
	ldrb	r3, [fp, #-1096]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L161
	sub	r4, fp, #684
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-1124]
	str	r4, [fp, #-1120]
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	sub	r1, fp, #668
	ldmia	r1, {r0-r1}
	sub	r5, fp, #660
	ldmia	r5, {r4-r5}
	sub	r7, fp, #652
	ldmia	r7, {r6-r7}
	sub	r9, fp, #644
	ldmia	r9, {r8-r9}
	str	r8, [sp, #32]
	str	r9, [sp, #36]
	str	r6, [sp, #24]
	str	r7, [sp, #28]
	str	r4, [sp, #16]
	str	r5, [sp, #20]
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-1124]
	ldr	r3, [fp, #-1120]
	ldr	r1, .L357+136
	ldr	r0, [fp, #-932]
	bl	fprintf
.L161:
	ldr	r3, .L357+32
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L152
	ldrb	r3, [fp, #-1095]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L152
	sub	r7, fp, #716
	ldmia	r7, {r6-r7}
	sub	r3, fp, #708
	ldmia	r3, {r2-r3}
	sub	r1, fp, #700
	ldmia	r1, {r0-r1}
	sub	r5, fp, #692
	ldmia	r5, {r4-r5}
	str	r4, [sp, #16]
	str	r5, [sp, #20]
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r6
	mov	r3, r7
	ldr	r1, .L357+140
	ldr	r0, [fp, #-932]
	bl	fprintf
.L152:
	ldr	r3, [fp, #-1072]
	cmp	r3, #0
	beq	.L162
	ldr	r3, .L357+144
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-1072]
	ldr	r1, .L357+148
	ldr	r0, [fp, #-932]
	bl	fprintf
.L162:
	ldr	r3, .L357+152
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L163
	ldr	r3, .L357+152
	ldmia	r3, {r2-r3}
	ldr	r1, .L357+156
	ldr	r0, [fp, #-932]
	bl	fprintf
.L163:
	ldr	r0, [fp, #-932]
	bl	fflush
	ldr	r3, [fp, #-1016]
	add	r3, r3, #1
	str	r3, [fp, #-1016]
.L129:
	ldr	r2, [fp, #-1016]
	ldr	r3, [fp, #-1012]
	cmp	r2, r3
	blt	.L165
.L112:
	ldr	r3, [fp, #-1080]
	cmp	r3, #0
	beq	.L166
	ldr	r3, .L357+44
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L167
	ldr	r3, .L357+464
	ldr	r3, [r3]
	mov	r2, #48
	mov	r1, #1
	ldr	r0, .L357+160
	bl	fwrite
	mov	r0, #1
	bl	exit
.L167:
	ldr	r0, [fp, #-1080]
	bl	ReadDistanceMatrix
	str	r0, [fp, #-1076]
	b	.L168
.L166:
	ldr	r3, .L357+44
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L169
	ldr	r3, .L357+32
	ldr	r3, [r3]
	cmp	r3, #20
	beq	.L170
	ldr	r3, .L357+164
	ldr	r2, .L357+168
	ldr	r1, .L357+172
	ldr	r0, .L357+176
	bl	__assert_fail
.L170:
	ldr	r3, .L357+180
	str	r3, [fp, #-1076]
	ldr	r0, [fp, #-1076]
	bl	SetupDistanceMatrix
	b	.L168
.L169:
	mov	r3, #0
	str	r3, [fp, #-1076]
.L168:
	ldr	r3, [fp, #-936]
	cmp	r3, #0
	beq	.L171
	ldr	r1, .L357+184
	ldr	r0, [fp, #-936]
	bl	fopen
	mov	r3, r0
	b	.L172
.L171:
	ldr	r3, .L357+188
	ldr	r3, [r3]
.L172:
	str	r3, [fp, #-928]
	ldr	r3, [fp, #-928]
	cmp	r3, #0
	bne	.L173
	ldr	r3, .L357+464
	ldr	r3, [r3]
	ldr	r2, [fp, #-936]
	ldr	r1, .L357+192
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L173:
	mov	r3, #0
	str	r3, [fp, #-1004]
	ldr	r3, [fp, #-1072]
	cmp	r3, #0
	beq	.L174
	ldr	r1, .L357+184
	ldr	r0, [fp, #-1072]
	bl	fopen
	str	r0, [fp, #-1004]
	ldr	r3, [fp, #-1004]
	cmp	r3, #0
	bne	.L174
	ldr	r3, .L357+464
	ldr	r3, [r3]
	ldr	r2, [fp, #-1072]
	ldr	r1, .L357+192
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L174:
	mov	r3, #0
	str	r3, [fp, #-1000]
	ldr	r3, [fp, #-1068]
	cmp	r3, #0
	beq	.L175
	ldr	r1, .L357+184
	ldr	r0, [fp, #-1068]
	bl	fopen
	str	r0, [fp, #-1000]
	ldr	r3, [fp, #-1000]
	cmp	r3, #0
	bne	.L175
	ldr	r3, .L357+464
	ldr	r3, [r3]
	ldr	r2, [fp, #-1068]
	ldr	r1, .L357+192
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L175:
	mov	r3, #0
	str	r3, [fp, #-1008]
	b	.L176
.L325:
	ldrb	r3, [fp, #-1094]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-928]
	bl	ReadAlignment
	str	r0, [fp, #-924]
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bgt	.L177
	ldr	r3, .L357+464
	ldr	r3, [r3]
	mov	r2, #23
	mov	r1, #1
	ldr	r0, .L357+196
	bl	fwrite
	mov	r0, #1
	bl	exit
.L177:
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L178
	ldr	r3, [fp, #-924]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-924]
	ldr	r3, [r3]
	ldr	r1, .L357+200
	ldr	r0, [fp, #-1024]
	bl	fprintf
	ldr	r0, [fp, #-1024]
	bl	fflush
.L178:
	sub	r3, fp, #764
	mov	r1, #0
	mov	r0, r3
	bl	gettimeofday
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, .L357+204
	bl	ProgressReport
	ldr	r3, [fp, #-924]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r2
	bl	MakeHashtable
	str	r0, [fp, #-920]
	mov	r3, #0
	str	r3, [fp, #-996]
	b	.L179
.L181:
	ldr	r3, [fp, #-924]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-996]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-920]
	bl	FindMatch
	str	r0, [fp, #-864]
	ldr	r1, [fp, #-864]
	ldr	r0, [fp, #-920]
	bl	HashCount
	mov	r3, r0
	cmp	r3, #1
	beq	.L180
	ldr	r3, .L357+464
	ldr	r0, [r3]
	ldr	r3, [fp, #-924]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-996]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L357+208
	bl	fprintf
	mov	r0, #1
	bl	exit
.L180:
	ldr	r3, [fp, #-996]
	add	r3, r3, #1
	str	r3, [fp, #-996]
.L179:
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-996]
	cmp	r2, r3
	blt	.L181
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, .L357+212
	bl	ProgressReport
	ldrb	r3, [fp, #-1101]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L182
	ldr	r3, [fp, #-924]
	ldr	r0, [r3, #12]
	ldr	r3, [fp, #-924]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-924]
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp, #8]
	ldr	r3, [fp, #-1076]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	bl	InitNJ
	str	r0, [fp, #-868]
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, .L357+216
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-992]
	b	.L183
.L190:
	ldr	r3, [fp, #-924]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-992]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L357+220
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-988]
	b	.L184
.L189:
	ldr	r3, [fp, #-868]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-992]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-868]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-988]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-868]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-868]
	ldr	ip, [r3, #12]
	sub	r3, fp, #756
	str	r3, [sp]
	mov	r3, ip
	bl	SeqDist
	ldr	r3, .L357+52
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L185
	ldr	r3, [fp, #-744]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	LogCorrect
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-744]	@ float
.L185:
	ldr	r3, [fp, #-744]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L350
	mov	r2, #0
	mov	r3, #0
	b	.L188
.L350:
	ldr	r3, [fp, #-744]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
.L188:
	ldr	r0, .L357+224
	bl	printf
	ldr	r3, [fp, #-988]
	add	r3, r3, #1
	str	r3, [fp, #-988]
.L184:
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	ldr	r2, [fp, #-988]
	cmp	r2, r3
	blt	.L189
	mov	r0, #10
	bl	putchar
	ldr	r3, [fp, #-992]
	add	r3, r3, #1
	str	r3, [fp, #-992]
.L183:
	ldr	r3, [fp, #-868]
	ldr	r3, [r3]
	ldr	r2, [fp, #-992]
	cmp	r2, r3
	blt	.L190
	b	.L191
.L182:
	ldr	r3, .L357+228
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+232
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+236
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+240
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+244
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+248
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+252
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+256
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+260
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+264
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+268
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+272
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+276
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+280
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+284
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+288
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+292
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+296
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+300
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+304
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L357+308
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, [fp, #-924]
	bl	UniquifyAln
	str	r0, [fp, #-916]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, .L357+312
	bl	ProgressReport
	mov	r3, #0
	str	r3, [fp, #-984]
	mov	r3, #0
	str	r3, [fp, #-980]
	ldr	r3, [fp, #-1072]
	cmp	r3, #0
	beq	.L192
	ldrb	r3, [fp, #-1094]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-1004]
	bl	ReadAlignment
	str	r0, [fp, #-984]
	ldr	r3, [fp, #-984]
	ldr	r3, [r3, #4]
	cmp	r3, #3
	bgt	.L193
	ldr	r3, .L357+464
	ldr	r0, [r3]
	ldr	r3, [fp, #-1008]
	add	r2, r3, #1
	ldr	r3, [fp, #-1072]
	ldr	r1, .L357+316
	bl	fprintf
	ldr	r0, [fp, #-984]
	bl	FreeAlignment
	str	r0, [fp, #-984]
	b	.L192
.L193:
	ldr	r2, [fp, #-920]
	ldr	r1, [fp, #-916]
	ldr	r0, [fp, #-984]
	bl	AlnToConstraints
	str	r0, [fp, #-980]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, .L357+320
	bl	ProgressReport
.L192:
	mov	r3, #0
	str	r3, [fp, #-976]
	ldr	r3, .L357+32
	ldr	r3, [r3]
	cmp	r3, #20
	bne	.L194
	ldrb	r3, [fp, #-1097]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L195
	ldr	r1, .L357+324
	ldr	r0, .L357+328
	bl	CreateTransitionMatrix
	mov	r3, r0
	b	.L196
.L195:
	ldr	r1, .L357+332
	ldr	r0, .L357+336
	bl	CreateTransitionMatrix
	mov	r3, r0
.L196:
	str	r3, [fp, #-976]
	b	.L197
.L194:
	ldr	r3, .L357+32
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L197
	ldrb	r3, [fp, #-1098]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L197
	ldrb	r3, [fp, #-1096]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L198
	ldrb	r3, [fp, #-1095]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L197
.L198:
	sub	r2, fp, #716
	sub	r3, fp, #684
	mov	r1, r2
	mov	r0, r3
	bl	CreateGTR
	str	r0, [fp, #-976]
.L197:
	ldr	r3, [fp, #-916]
	ldr	r0, [r3, #20]
	ldr	r3, [fp, #-916]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-924]
	ldr	ip, [r3]
	ldr	r3, [fp, #-980]
	cmp	r3, #0
	beq	.L199
	ldr	r3, [fp, #-984]
	ldr	r3, [r3]
	b	.L200
.L199:
	mov	r3, #0
.L200:
	ldr	r2, [fp, #-976]
	str	r2, [sp, #8]
	ldr	r2, [fp, #-1076]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-980]
	mov	r2, ip
	bl	InitNJ
	str	r0, [fp, #-912]
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L201
	ldr	r3, .L357+464
	ldr	r4, [r3]
	ldr	r3, [fp, #-936]
	cmp	r3, #0
	beq	.L202
	ldr	r2, [fp, #-936]
	b	.L203
.L202:
	ldr	r2, .L357+12
.L203:
	ldr	r3, [fp, #-924]
	ldr	r5, [r3, #4]
	ldr	r3, [fp, #-916]
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-924]
	ldr	r1, [r1]
	ldr	r0, [fp, #-924]
	ldr	ip, [r0, #8]
	ldr	r0, [fp, #-924]
	ldr	r0, [r0, #4]
	sub	r0, r0, #-1073741823
	lsl	r0, r0, #2
	add	r0, ip, r0
	ldr	r0, [r0]
	ldr	ip, [fp, #-924]
	ldr	lr, [ip, #12]
	ldr	ip, [fp, #-924]
	ldr	ip, [ip, #4]
	sub	ip, ip, #-1073741823
	lsl	ip, ip, #2
	add	ip, lr, ip
	ldr	ip, [ip]
	str	ip, [sp, #12]
	str	r0, [sp, #8]
	str	r1, [sp, #4]
	str	r3, [sp]
	mov	r3, r5
	ldr	r1, .L357+340
	mov	r0, r4
	bl	fprintf
.L201:
	ldr	r0, [fp, #-924]
	bl	FreeAlignmentSeqs
	ldr	r3, [fp, #-1000]
	cmp	r3, #0
	beq	.L204
	ldrb	r3, [fp, #-1100]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L205
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-1000]
	bl	fseek
.L205:
	ldr	r3, [fp, #-1000]
	ldr	r2, [fp, #-920]
	ldr	r1, [fp, #-916]
	ldr	r0, [fp, #-912]
	bl	ReadTree
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L206
	ldr	r3, .L357+464
	ldr	r3, [r3]
	ldr	r2, [fp, #-1068]
	ldr	r1, .L357+344
	mov	r0, r3
	bl	fprintf
.L206:
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L207
	ldr	r3, .L357+464
	ldr	r0, [r3]
	ldr	r3, [fp, #-924]
	ldr	r2, [r3, #8]
	ldrb	r3, [fp, #-1094]	@ zero_extendqisi2
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-916]
	ldr	r1, [fp, #-912]
	bl	PrintNJ
	b	.L207
.L204:
	ldr	r0, [fp, #-912]
	bl	FastNJ
.L207:
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #8]
	ldrb	r2, [fp, #-1094]	@ zero_extendqisi2
	str	r2, [sp, #8]
	ldr	r2, [fp, #-916]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-912]
	ldr	r2, [fp, #-1024]
	mov	r1, #0
	ldr	r0, .L357+348
	bl	LogTree
	ldr	r3, [fp, #-1064]
	cmn	r3, #1
	bne	.L208
	ldr	r3, [fp, #-912]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	mov	r2, #0
	ldr	r3, .L357+352
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L357+388
	ldr	r3, .L357+392
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L357+396
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L209
.L208:
	ldr	r3, [fp, #-1064]
.L209:
	str	r3, [fp, #-908]
	ldr	r3, [fp, #-1060]
	str	r3, [fp, #-972]
	ldr	r3, [fp, #-1052]
	cmn	r3, #1
	bne	.L210
	ldr	r3, [fp, #-912]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L357+388
	ldr	r3, .L357+392
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L357+396
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L211
.L210:
	ldr	r3, [fp, #-1052]
.L211:
	str	r3, [fp, #-904]
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L212
	ldr	r3, [fp, #-1000]
	cmp	r3, #0
	bne	.L213
	ldr	r3, .L357+464
	ldr	r4, [r3]
	sub	r3, fp, #764
	mov	r0, r3
	bl	clockDiff
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L357+356
	mov	r0, r4
	bl	fprintf
.L213:
	ldr	r3, [fp, #-1060]
	cmp	r3, #0
	bgt	.L214
	ldr	r3, [fp, #-908]
	cmp	r3, #0
	bgt	.L214
	ldr	r3, [fp, #-904]
	cmp	r3, #0
	ble	.L212
.L214:
	ldr	r3, .L357+464
	ldr	r0, [r3]
	ldr	r3, [fp, #-904]
	str	r3, [sp]
	ldr	r3, [fp, #-1060]
	ldr	r2, [fp, #-908]
	ldr	r1, .L357+360
	bl	fprintf
.L212:
	ldr	r3, [fp, #-908]
	cmp	r3, #0
	ble	.L221
	mov	r3, #0
	strb	r3, [fp, #-1093]
	ldr	r0, [fp, #-912]
	bl	InitNNIStats
	str	r0, [fp, #-964]
	mov	r3, #0
	str	r3, [fp, #-968]
	b	.L216
.L358:
	.align	2
.L357:
	.word	.LC103
	.word	mlAccuracy
	.word	.LC104
	.word	.LC105
	.word	.LC7
	.word	.LC8
	.word	.LC106
	.word	.LC107
	.word	nCodes
	.word	.LC108
	.word	.LC109
	.word	useMatrix
	.word	.LC110
	.word	logdist
	.word	.LC111
	.word	.LC112
	.word	bionj
	.word	.LC113
	.word	.LC114
	.word	.LC115
	.word	slow
	.word	.LC116
	.word	.LC117
	.word	.LC118
	.word	useTopHits2nd
	.word	.LC119
	.word	.LC121
	.word	.LC122
	.word	.LC123
	.word	.LC124
	.word	.LC125
	.word	.LC126
	.word	.LC127
	.word	.LC128
	.word	.LC129
	.word	.LC130
	.word	constraintWeight
	.word	.LC131
	.word	pseudoWeight
	.word	.LC132
	.word	.LC133
	.word	__PRETTY_FUNCTION__.8096
	.word	2002
	.word	.LC134
	.word	.LC135
	.word	matrixBLOSUM45
	.word	.LC136
	.word	stdin
	.word	.LC137
	.word	.LC138
	.word	.LC139
	.word	.LC140
	.word	.LC141
	.word	.LC142
	.word	.LC143
	.word	.LC144
	.word	.LC145
	.word	profileOps
	.word	outprofileOps
	.word	seqOps
	.word	profileAvgOps
	.word	nHillBetter
	.word	nCloseUsed
	.word	nClose2Used
	.word	nRefreshTopHits
	.word	nVisibleUpdate
	.word	nNNI
	.word	nML_NNI
	.word	nProfileFreqAlloc
	.word	nProfileFreqAvoid
	.word	szAllAlloc
	.word	mymallocUsed
	.word	maxmallocHeap
	.word	nLkCompute
	.word	nPosteriorCompute
	.word	nAAPosteriorExact
	.word	nAAPosteriorRough
	.word	nStarTests
	.word	.LC146
	.word	.LC147
	.word	.LC148
	.word	statWAG01
	.word	matrixWAG01
	.word	statJTT92
	.word	matrixJTT92
	.word	.LC149
	.word	.LC150
	.word	.LC151
	.word	1074790400
	.word	.LC152
	.word	.LC153
	.word	.LC154
	.word	.LC155
	.word	.LC156
	.word	.LC157
	.word	.LC158
	.word	5040
	.word	-17155601
	.word	1072049730
	.word	1071644672
	.word	2025163840
	.word	-1005211875
	.word	.LC159
	.word	-755914244
	.word	1062232653
	.word	.LC162
	.word	.LC163
	.word	.LC165
	.word	treeLogLkDelta
	.word	.LC166
	.word	.LC167
	.word	.LC168
	.word	.LC161
	.word	.LC169
	.word	.LC164
	.word	verbose
	.word	stderr
	.word	exactML
	.word	nCodes
	.word	.LC160
	.word	.LC170
	.word	.LC171
	.word	fastest
	.word	gammaLogLk
	.word	.LC172
	.word	.LC173
	.word	.LC120
.L220:
	ldrb	r3, [fp, #-1093]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L217
	sub	r3, fp, #756
	str	r3, [sp, #4]
	ldr	r3, [fp, #-964]
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-908]
	ldr	r1, [fp, #-968]
	ldr	r0, [fp, #-912]
	bl	NNI
	str	r0, [fp, #-900]
	ldr	r3, [fp, #-968]
	add	r1, r3, #1
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #8]
	ldrb	r2, [fp, #-1094]	@ zero_extendqisi2
	str	r2, [sp, #8]
	ldr	r2, [fp, #-916]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-912]
	ldr	r2, [fp, #-1024]
	ldr	r0, .L357+364
	bl	LogTree
	ldr	r3, [fp, #-900]
	cmp	r3, #0
	bne	.L217
	mov	r3, #1
	strb	r3, [fp, #-1093]
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L218
	ldr	r3, .L357+464
	ldr	r0, [r3]
	ldr	r3, [fp, #-968]
	add	r3, r3, #1
	mov	r2, r3
	ldr	r1, .L357+368
	bl	fprintf
.L218:
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L217
	ldr	r3, [fp, #-968]
	add	r3, r3, #1
	mov	r2, r3
	ldr	r1, .L357+368
	ldr	r0, [fp, #-1024]
	bl	fprintf
.L217:
	ldr	r3, [fp, #-972]
	cmp	r3, #0
	ble	.L219
	ldr	r3, [fp, #-1060]
	add	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-908]
	bl	__aeabi_idiv
	mov	r3, r0
	cmp	r3, #0
	ble	.L219
	ldr	r3, [fp, #-968]
	add	r4, r3, #1
	ldr	r3, [fp, #-1060]
	add	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-908]
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_idivmod
	mov	r3, r1
	cmp	r3, #0
	bne	.L219
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-972]
	sub	r2, r2, r3
	ldr	r3, [fp, #-1060]
	ldr	r1, [fp, #-1056]
	ldr	r0, [fp, #-912]
	bl	SPR
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-972]
	sub	r3, r2, r3
	add	r1, r3, #1
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #8]
	ldrb	r2, [fp, #-1094]	@ zero_extendqisi2
	str	r2, [sp, #8]
	ldr	r2, [fp, #-916]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-912]
	ldr	r2, [fp, #-1024]
	ldr	r0, .L357+372
	bl	LogTree
	ldr	r3, [fp, #-972]
	sub	r3, r3, #1
	str	r3, [fp, #-972]
	mov	r3, #0
	strb	r3, [fp, #-1093]
	ldr	r1, [fp, #-912]
	ldr	r0, [fp, #-964]
	bl	FreeNNIStats
	str	r0, [fp, #-964]
	ldr	r0, [fp, #-912]
	bl	InitNNIStats
	str	r0, [fp, #-964]
.L219:
	ldr	r3, [fp, #-968]
	add	r3, r3, #1
	str	r3, [fp, #-968]
.L216:
	ldr	r2, [fp, #-968]
	ldr	r3, [fp, #-908]
	cmp	r2, r3
	blt	.L220
	ldr	r1, [fp, #-912]
	ldr	r0, [fp, #-964]
	bl	FreeNNIStats
	str	r0, [fp, #-964]
	b	.L221
.L222:
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-972]
	sub	r2, r2, r3
	ldr	r3, [fp, #-1060]
	ldr	r1, [fp, #-1056]
	ldr	r0, [fp, #-912]
	bl	SPR
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-972]
	sub	r3, r2, r3
	add	r1, r3, #1
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #8]
	ldrb	r2, [fp, #-1094]	@ zero_extendqisi2
	str	r2, [sp, #8]
	ldr	r2, [fp, #-916]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-912]
	ldr	r2, [fp, #-1024]
	ldr	r0, .L357+372
	bl	LogTree
	ldr	r3, [fp, #-972]
	sub	r3, r3, #1
	str	r3, [fp, #-972]
.L221:
	ldr	r3, [fp, #-972]
	cmp	r3, #0
	bgt	.L222
	ldr	r0, [fp, #-912]
	bl	UpdateBranchLengths
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #8]
	ldrb	r2, [fp, #-1094]	@ zero_extendqisi2
	str	r2, [sp, #8]
	ldr	r2, [fp, #-916]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-912]
	ldr	r2, [fp, #-1024]
	mov	r1, #0
	ldr	r0, .L357+376
	bl	LogTree
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L223
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L224
.L223:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-844]
	str	r3, [fp, #-840]
	mov	r3, #0
	str	r3, [fp, #-960]
	b	.L225
.L226:
	ldr	r3, [fp, #-912]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-960]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	bic	r3, r3, #-2147483648
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #844
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-844]
	str	r3, [fp, #-840]
	ldr	r3, [fp, #-960]
	add	r3, r3, #1
	str	r3, [fp, #-960]
.L225:
	ldr	r3, [fp, #-912]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-960]
	cmp	r2, r3
	blt	.L226
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L227
	ldr	r3, .L357+464
	ldr	r4, [r3]
	sub	r3, fp, #764
	mov	r0, r3
	bl	clockDiff
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	sub	r3, fp, #844
	ldmia	r3, {r2-r3}
	ldr	r1, .L357+380
	mov	r0, r4
	bl	fprintf
	ldr	r3, .L357+464
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
.L227:
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L224
	sub	r3, fp, #764
	mov	r0, r3
	bl	clockDiff
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	sub	r3, fp, #844
	ldmia	r3, {r2-r3}
	ldr	r1, .L357+380
	ldr	r0, [fp, #-1024]
	bl	fprintf
	ldr	r3, .L357+464
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
.L224:
	sub	r3, fp, #756
	mov	r2, #32
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-904]
	cmp	r3, #0
	bgt	.L228
	ldrb	r3, [fp, #-1099]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L229
.L228:
	ldr	r3, [fp, #-912]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	TransMatToDistanceMat
	str	r0, [fp, #-896]
	ldr	r1, [fp, #-896]
	ldr	r0, [fp, #-912]
	bl	RecomputeProfiles
	ldr	r1, .L357+384
	ldr	r0, [fp, #-896]
	bl	myfree
	str	r0, [fp, #-896]
	ldr	r2, .L357+400
	ldr	r3, .L357+404
	str	r2, [fp, #-836]
	str	r3, [fp, #-832]
	ldr	r0, [fp, #-912]
	bl	InitNNIStats
	str	r0, [fp, #-956]
	ldr	r3, .L357+472
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L230
	ldrb	r3, [fp, #-1098]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L230
	ldrb	r3, [fp, #-1096]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L230
	mov	r3, #1
	b	.L231
.L230:
	mov	r3, #0
.L231:
	strb	r3, [fp, #-1091]
	ldrb	r3, [fp, #-1091]
	and	r3, r3, #1
	strb	r3, [fp, #-1091]
	ldrb	r3, [fp, #-1099]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L232
	ldr	r3, [fp, #-912]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	ldr	r2, .L357+388
	ldr	r3, .L357+392
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L357+396
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [fp, #-892]
	ldr	r2, .L357+400
	ldr	r3, .L357+404
	str	r2, [fp, #-820]
	str	r3, [fp, #-816]
	mov	r3, #1
	str	r3, [fp, #-952]
	b	.L233
.L256:
	ldr	r3, [fp, #-912]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-888]
	mov	r3, #0
	str	r3, [fp, #-948]
	b	.L234
.L235:
	ldr	r3, [fp, #-912]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-948]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-948]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-888]
	add	r3, r1, r3
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-948]
	add	r3, r3, #1
	str	r3, [fp, #-948]
.L234:
	ldr	r3, [fp, #-912]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-948]
	cmp	r2, r3
	blt	.L235
	ldr	r0, [fp, #-912]
	bl	OptimizeAllBranchLengths
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #8]
	ldrb	r2, [fp, #-1094]	@ zero_extendqisi2
	str	r2, [sp, #8]
	ldr	r2, [fp, #-916]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-912]
	ldr	r2, [fp, #-1024]
	ldr	r1, [fp, #-952]
	ldr	r0, .L357+408
	bl	LogTree
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-828]
	str	r3, [fp, #-824]
	mov	r3, #0
	str	r3, [fp, #-948]
	b	.L236
.L239:
	ldr	r3, [fp, #-948]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-888]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-912]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-948]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	bic	r3, r3, #-2147483648
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-804]
	str	r3, [fp, #-800]
	sub	r3, fp, #804
	ldmia	r3, {r2-r3}
	sub	r1, fp, #828
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L237
	sub	r3, fp, #804
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-828]
	str	r3, [fp, #-824]
.L237:
	ldr	r3, [fp, #-948]
	add	r3, r3, #1
	str	r3, [fp, #-948]
.L236:
	ldr	r3, [fp, #-912]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-948]
	cmp	r2, r3
	blt	.L239
	ldr	r3, [fp, #-912]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-888]
	bl	myfree
	str	r0, [fp, #-888]
	mov	r1, #0
	ldr	r0, [fp, #-912]
	bl	TreeLogLk
	str	r0, [fp, #-812]
	str	r1, [fp, #-808]
	ldr	r3, [fp, #-952]
	cmp	r3, #1
	ble	.L240
	ldr	r2, .L357+412
	ldr	r3, .L357+416
	sub	r1, fp, #828
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L241
	ldr	r3, .L357+432
	ldmia	r3, {r0-r1}
	sub	r3, fp, #820
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #812
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L240
.L241:
	mov	r3, #1
	b	.L243
.L240:
	mov	r3, #0
.L243:
	strb	r3, [fp, #-1090]
	ldrb	r3, [fp, #-1090]
	and	r3, r3, #1
	strb	r3, [fp, #-1090]
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L244
	ldr	r3, .L357+464
	ldr	r5, [r3]
	ldr	r3, .L357+468
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L245
	ldr	r3, .L357+472
	ldr	r3, [r3]
	cmp	r3, #20
	beq	.L246
.L245:
	ldr	r6, .L357+504
	b	.L247
.L246:
	ldr	r6, .L357+476
.L247:
	ldrb	r3, [fp, #-1090]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L248
	ldr	r4, .L357+448
	b	.L249
.L248:
	ldr	r4, .L357+504
.L249:
	sub	r3, fp, #764
	mov	r0, r3
	bl	clockDiff
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #24]
	str	r3, [sp, #28]
	str	r4, [sp, #16]
	sub	r3, fp, #828
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #812
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r3, r6
	ldr	r2, [fp, #-952]
	ldr	r1, .L357+420
	mov	r0, r5
	bl	fprintf
.L244:
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L250
	sub	r3, fp, #828
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #812
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-952]
	ldr	r1, .L357+424
	ldr	r0, [fp, #-1024]
	bl	fprintf
.L250:
	ldr	r3, [fp, #-952]
	cmp	r3, #1
	bne	.L251
	ldrb	r3, [fp, #-1091]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L252
	ldrb	r3, [fp, #-1095]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L253
	sub	r3, fp, #716
	b	.L254
.L253:
	mov	r3, #0
.L254:
	ldr	r2, [fp, #-1024]
	mov	r1, r3
	ldr	r0, [fp, #-912]
	bl	SetMLGtr
.L252:
	ldr	r1, [fp, #-1044]
	ldr	r0, [fp, #-912]
	bl	SetMLRates
	ldr	r1, [fp, #-912]
	ldr	r0, [fp, #-1024]
	bl	LogMLRates
.L251:
	ldrb	r3, [fp, #-1090]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L352
	ldr	r3, [fp, #-952]
	add	r3, r3, #1
	str	r3, [fp, #-952]
.L233:
	ldr	r2, [fp, #-952]
	ldr	r3, [fp, #-892]
	cmp	r2, r3
	ble	.L256
	b	.L232
.L352:
	nop
.L232:
	ldr	r3, [fp, #-904]
	cmp	r3, #0
	ble	.L257
	ldr	r0, [fp, #-912]
	bl	OptimizeAllBranchLengths
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #8]
	ldrb	r2, [fp, #-1094]	@ zero_extendqisi2
	str	r2, [sp, #8]
	ldr	r2, [fp, #-916]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-912]
	ldr	r2, [fp, #-1024]
	mov	r1, #1
	ldr	r0, .L357+456
	bl	LogTree
.L257:
	mov	r3, #0
	strb	r3, [fp, #-1092]
	mov	r3, #0
	str	r3, [fp, #-944]
	b	.L258
.L284:
	sub	r3, fp, #860
	str	r3, [sp, #4]
	ldr	r3, [fp, #-956]
	str	r3, [sp]
	mov	r3, #1
	ldr	r2, [fp, #-904]
	ldr	r1, [fp, #-944]
	ldr	r0, [fp, #-912]
	bl	NNI
	str	r0, [fp, #-884]
	ldr	r3, [fp, #-944]
	add	r1, r3, #1
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #8]
	ldrb	r2, [fp, #-1094]	@ zero_extendqisi2
	str	r2, [sp, #8]
	ldr	r2, [fp, #-916]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-912]
	ldr	r2, [fp, #-1024]
	ldr	r0, .L357+428
	bl	LogTree
	mov	r1, #0
	ldr	r0, [fp, #-912]
	bl	TreeLogLk
	str	r0, [fp, #-796]
	str	r1, [fp, #-792]
	ldr	r3, [fp, #-944]
	cmp	r3, #0
	ble	.L259
	ldr	r3, .L357+432
	ldmia	r3, {r0-r1}
	sub	r3, fp, #836
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #796
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L260
	sub	r1, fp, #860
	ldmia	r1, {r0-r1}
	ldr	r3, .L357+432
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L259
.L260:
	mov	r3, #1
	b	.L262
.L259:
	mov	r3, #0
.L262:
	strb	r3, [fp, #-1089]
	ldrb	r3, [fp, #-1089]
	and	r3, r3, #1
	strb	r3, [fp, #-1089]
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L263
	ldr	r3, .L357+464
	ldr	r6, [r3]
	ldr	r3, [fp, #-944]
	add	r7, r3, #1
	ldr	r3, .L357+468
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L264
	ldr	r3, .L357+472
	ldr	r3, [r3]
	cmp	r3, #20
	beq	.L265
.L264:
	ldr	r8, .L357+504
	b	.L266
.L265:
	ldr	r8, .L357+476
.L266:
	sub	r5, fp, #860
	ldmia	r5, {r4-r5}
	sub	r3, fp, #764
	mov	r0, r3
	bl	clockDiff
	mov	r2, r0
	mov	r3, r1
	ldrb	r1, [fp, #-1092]	@ zero_extendqisi2
	cmp	r1, #0
	beq	.L267
	ldr	r1, .L357+436
	b	.L268
.L267:
	ldr	r1, .L357+504
.L268:
	str	r1, [sp, #32]
	str	r2, [sp, #24]
	str	r3, [sp, #28]
	str	r4, [sp, #16]
	str	r5, [sp, #20]
	ldr	r3, [fp, #-884]
	str	r3, [sp, #8]
	sub	r3, fp, #796
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r3, r8
	mov	r2, r7
	ldr	r1, .L357+440
	mov	r0, r6
	bl	fprintf
.L263:
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L269
	ldr	r3, [fp, #-944]
	add	r1, r3, #1
	sub	r3, fp, #860
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #796
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r1
	ldr	r1, .L357+444
	ldr	r0, [fp, #-1024]
	bl	fprintf
.L269:
	ldrb	r3, [fp, #-1092]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L353
	ldrb	r3, [fp, #-1089]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L272
	mov	r3, #1
	strb	r3, [fp, #-1092]
.L272:
	ldrb	r3, [fp, #-1092]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L273
	ldr	r3, [fp, #-904]
	sub	r3, r3, #2
	ldr	r2, [fp, #-944]
	cmp	r2, r3
	bne	.L274
.L273:
	ldr	r1, [fp, #-912]
	ldr	r0, [fp, #-956]
	bl	FreeNNIStats
	str	r0, [fp, #-956]
	ldr	r0, [fp, #-912]
	bl	InitNNIStats
	str	r0, [fp, #-956]
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L275
	ldr	r3, .L357+464
	ldr	r0, [r3]
	ldrb	r3, [fp, #-1089]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L276
	ldr	r3, .L357+448
	b	.L277
.L276:
	ldr	r3, .L357+504
.L277:
	mov	r2, r3
	ldr	r1, .L357+452
	bl	fprintf
.L275:
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L274
	ldrb	r3, [fp, #-1089]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L278
	ldr	r3, .L357+448
	b	.L279
.L278:
	ldr	r3, .L357+504
.L279:
	mov	r2, r3
	ldr	r1, .L357+452
	ldr	r0, [fp, #-1024]
	bl	fprintf
.L274:
	sub	r3, fp, #796
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-836]
	str	r3, [fp, #-832]
	ldr	r3, [fp, #-944]
	cmp	r3, #0
	bne	.L280
	ldr	r3, [fp, #-912]
	ldr	r3, [r3, #100]
	cmp	r3, #1
	bne	.L280
	ldrb	r3, [fp, #-1091]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L281
	ldrb	r3, [fp, #-1095]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L282
	sub	r3, fp, #716
	b	.L283
.L282:
	mov	r3, #0
.L283:
	ldr	r2, [fp, #-1024]
	mov	r1, r3
	ldr	r0, [fp, #-912]
	bl	SetMLGtr
.L281:
	ldr	r1, [fp, #-1044]
	ldr	r0, [fp, #-912]
	bl	SetMLRates
	ldr	r1, [fp, #-912]
	ldr	r0, [fp, #-1024]
	bl	LogMLRates
.L280:
	ldr	r3, [fp, #-944]
	add	r3, r3, #1
	str	r3, [fp, #-944]
.L258:
	ldr	r2, [fp, #-944]
	ldr	r3, [fp, #-904]
	cmp	r2, r3
	blt	.L284
	b	.L271
.L353:
	nop
.L271:
	ldr	r1, [fp, #-912]
	ldr	r0, [fp, #-956]
	bl	FreeNNIStats
	str	r0, [fp, #-956]
	ldr	r3, [fp, #-904]
	cmp	r3, #0
	ble	.L285
	ldr	r0, [fp, #-912]
	bl	OptimizeAllBranchLengths
	ldr	r3, [fp, #-924]
	ldr	r3, [r3, #8]
	ldrb	r2, [fp, #-1094]	@ zero_extendqisi2
	str	r2, [sp, #8]
	ldr	r2, [fp, #-916]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-912]
	ldr	r2, [fp, #-1024]
	mov	r1, #2
	ldr	r0, .L357+456
	bl	LogTree
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L286
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L285
.L286:
	mov	r1, #0
	ldr	r0, [fp, #-912]
	bl	TreeLogLk
	str	r0, [fp, #-788]
	str	r1, [fp, #-784]
	ldr	r3, .L357+460
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L287
	ldr	r3, .L357+464
	ldr	r4, [r3]
	ldr	r3, .L357+468
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L288
	ldr	r3, .L357+472
	ldr	r3, [r3]
	cmp	r3, #20
	beq	.L289
.L288:
	ldr	r5, .L357+504
	b	.L290
.L289:
	ldr	r5, .L357+476
.L290:
	sub	r3, fp, #764
	mov	r0, r3
	bl	clockDiff
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #788
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L357+480
	mov	r0, r4
	bl	fprintf
.L287:
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L285
	sub	r3, fp, #788
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, #2
	ldr	r1, .L357+484
	ldr	r0, [fp, #-1024]
	bl	fprintf
	ldr	r0, [fp, #-1024]
	bl	fflush
.L285:
	ldr	r3, [fp, #-904]
	cmp	r3, #0
	ble	.L291
	ldr	r3, .L357+488
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L292
.L291:
	ldr	r3, [fp, #-1048]
	cmp	r3, #0
	ble	.L293
.L292:
	sub	r3, fp, #756
	ldr	r2, [fp, #-1048]
	mov	r1, r3
	ldr	r0, [fp, #-912]
	bl	TestSplitsML
.L293:
	ldr	r3, .L357+492
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L354
	ldr	r3, [fp, #-1044]
	cmp	r3, #1
	ble	.L354
	ldr	r0, [fp, #-1044]
	bl	MLSiteRates
	str	r0, [fp, #-880]
	ldr	r2, [fp, #-1044]
	ldr	r1, [fp, #-880]
	ldr	r0, [fp, #-912]
	bl	MLSiteLikelihoodsByRate
	str	r0, [fp, #-876]
	ldr	r3, [fp, #-912]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-1024]
	str	r3, [sp]
	ldr	r3, [fp, #-876]
	ldr	r2, [fp, #-880]
	ldr	r1, [fp, #-1044]
	bl	RescaleGammaLogLk
	str	r0, [fp, #-780]
	str	r1, [fp, #-776]
	ldr	r3, [fp, #-1044]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-880]
	bl	myfree
	str	r0, [fp, #-880]
	ldr	r3, [fp, #-912]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-1044]
	mul	r3, r2, r3
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-876]
	bl	myfree
	str	r0, [fp, #-876]
	mov	r3, #0
	str	r3, [fp, #-996]
	b	.L295
.L296:
	ldr	r3, [fp, #-912]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-996]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #780
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-912]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-996]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-996]
	add	r3, r3, #1
	str	r3, [fp, #-996]
.L295:
	ldr	r3, [fp, #-912]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-996]
	cmp	r2, r3
	blt	.L296
	b	.L354
.L229:
	sub	r3, fp, #756
	mov	r1, r3
	ldr	r0, [fp, #-912]
	bl	TestSplitsMinEvo
	ldr	r3, [fp, #-1048]
	cmp	r3, #0
	ble	.L297
	ldr	r1, [fp, #-1048]
	ldr	r0, [fp, #-912]
	bl	ReliabilityNJ
	b	.L297
.L354:
	nop
.L297:
	mov	r3, #0
	str	r3, [fp, #-996]
	b	.L298
.L322:
	ldr	r3, [fp, #-996]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r3, [r3, #-696]
	str	r3, [fp, #-872]
	sub	r3, fp, #764
	mov	r0, r3
	bl	clockDiff
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-912]
	ldr	r1, [r1]
	ldr	r0, [fp, #-924]
	ldr	r0, [r0, #4]
	ldr	ip, [fp, #-756]
	ldr	lr, [fp, #-744]
	str	lr, [sp, #12]
	str	ip, [sp, #8]
	str	r0, [sp, #4]
	str	r1, [sp]
	ldr	r1, .L357+496
	ldr	r0, [fp, #-872]
	bl	fprintf
	sub	r1, fp, #740
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L299
	ldr	r3, [fp, #-980]
	cmp	r3, #0
	beq	.L301
	ldr	r1, .L357+500
	b	.L302
.L301:
	ldr	r1, .L357+504
.L302:
	ldr	r3, [fp, #-904]
	cmp	r3, #0
	bgt	.L303
	ldrb	r3, [fp, #-1099]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L304
.L303:
	ldr	r0, .L359
	b	.L305
.L304:
	ldr	r0, .L359+4
.L305:
	sub	r3, fp, #740
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r3, r0
	mov	r2, r1
	ldr	r1, .L359+8
	ldr	r0, [fp, #-872]
	bl	fprintf
.L299:
	ldr	r1, [fp, #-872]
	mov	r0, #10
	bl	fputc
	ldr	r3, [fp, #-912]
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L306
	ldr	r3, [fp, #-912]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	ble	.L306
	ldr	r2, [fp, #-752]
	ldr	r3, [fp, #-748]
	ldr	r1, .L359+12
	ldr	r0, [fp, #-872]
	bl	fprintf
	sub	r1, fp, #732
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L307
	ldr	r3, [fp, #-904]
	cmp	r3, #0
	bgt	.L309
	ldrb	r3, [fp, #-1099]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L310
.L309:
	ldr	r1, .L359
	b	.L311
.L310:
	ldr	r1, .L359+4
.L311:
	sub	r3, fp, #732
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r1
	ldr	r1, .L359+16
	ldr	r0, [fp, #-872]
	bl	fprintf
.L307:
	ldr	r1, [fp, #-872]
	mov	r0, #10
	bl	fputc
.L306:
	ldr	r3, .L359+20
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L312
	ldr	r2, [fp, #-872]
	ldr	r3, [fp, #-1024]
	cmp	r2, r3
	bne	.L313
.L312:
	ldr	r3, [fp, #-912]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-912]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-772]
	str	r3, [fp, #-768]
	ldr	r3, .L359+24
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	sub	r3, fp, #772
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r8, r2
	mov	r9, r3
	ldr	r3, .L359+28
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	sub	r3, fp, #772
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, .L359+32
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	sub	r3, fp, #772
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, .L359+36
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	sub	r3, fp, #772
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, r8
	mov	r3, r9
	ldr	r1, .L359+40
	ldr	r0, [fp, #-872]
	bl	fprintf
	ldr	r3, .L359+44
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L314
	ldr	r3, .L359+48
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L314
	ldr	r3, .L359+52
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L315
.L314:
	ldr	r3, .L359+44
	ldr	r1, [r3]
	ldr	r3, [fp, #-912]
	ldr	r0, [r3]
	ldr	r3, .L359+48
	ldr	r3, [r3]
	ldr	r2, .L359+52
	ldr	r2, [r2]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r0
	mov	r2, r1
	ldr	r1, .L359+56
	ldr	r0, [fp, #-872]
	bl	fprintf
.L315:
	ldr	r3, .L359+60
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L316
	ldr	r3, .L359+64
	ldr	r2, [r3]
	ldr	r3, .L359+68
	ldr	r3, [r3]
	ldr	r1, .L359+72
	ldr	r0, [fp, #-872]
	bl	fprintf
.L316:
	ldr	r3, [fp, #-908]
	cmp	r3, #0
	bgt	.L317
	ldr	r3, [fp, #-1060]
	cmp	r3, #0
	bgt	.L317
	ldr	r3, [fp, #-904]
	cmp	r3, #0
	ble	.L318
.L317:
	ldr	r3, .L359+76
	ldr	r2, [r3]
	ldr	r3, .L359+80
	ldr	r1, [r3]
	ldr	r3, .L359+84
	ldr	r3, [r3]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L359+88
	ldr	r0, [fp, #-872]
	bl	fprintf
.L318:
	ldr	r3, [fp, #-904]
	cmp	r3, #0
	ble	.L313
	ldr	r3, .L359+92
	ldr	r2, [r3]
	ldr	r3, .L359+96
	ldr	r3, [r3]
	ldr	r1, .L359+100
	ldr	r0, [fp, #-872]
	bl	fprintf
	ldr	r3, .L359+104
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L319
	ldr	r3, .L359+108
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L320
.L319:
	ldr	r3, .L359+108
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L359+112
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, .L359+104
	ldr	r2, [r3]
	ldr	r3, .L359+108
	ldr	r3, [r3]
	add	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L359+116
	ldr	r0, [fp, #-872]
	bl	fprintf
.L320:
	ldr	r3, .L359+120
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L321
	ldr	r3, .L359+124
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L359+128
	ldr	r0, [fp, #-872]
	bl	fprintf
.L321:
	ldr	r1, [fp, #-872]
	mov	r0, #10
	bl	fputc
.L313:
	ldr	r0, [fp, #-872]
	bl	fflush
	ldr	r3, [fp, #-996]
	add	r3, r3, #1
	str	r3, [fp, #-996]
.L298:
	ldr	r2, [fp, #-996]
	ldr	r3, [fp, #-1012]
	cmp	r2, r3
	blt	.L322
	ldr	r3, [fp, #-924]
	ldr	r1, [r3, #8]
	ldr	r3, [fp, #-1048]
	cmp	r3, #0
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	ldrb	r2, [fp, #-1094]	@ zero_extendqisi2
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-916]
	mov	r2, r1
	ldr	r1, [fp, #-912]
	ldr	r0, [fp, #-1036]
	bl	PrintNJ
	ldr	r0, [fp, #-1036]
	bl	fflush
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L323
	ldr	r3, [fp, #-1024]
	mov	r2, #14
	mov	r1, #1
	ldr	r0, .L359+132
	bl	fwrite
	ldr	r0, [fp, #-1024]
	bl	fflush
.L323:
	ldr	r0, [fp, #-912]
	bl	FreeNJ
	ldr	r3, [fp, #-980]
	cmp	r3, #0
	beq	.L324
	ldr	r3, [fp, #-916]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-980]
	bl	myfree
	str	r0, [fp, #-980]
.L324:
	ldr	r0, [fp, #-984]
	bl	FreeAlignment
	str	r0, [fp, #-984]
	ldr	r0, [fp, #-916]
	bl	FreeUniquify
	str	r0, [fp, #-916]
.L191:
	ldr	r0, [fp, #-920]
	bl	FreeHashtable
	str	r0, [fp, #-920]
	ldr	r0, [fp, #-924]
	bl	FreeAlignment
	str	r0, [fp, #-924]
	ldr	r3, [fp, #-1008]
	add	r3, r3, #1
	str	r3, [fp, #-1008]
.L176:
	ldr	r2, [fp, #-1008]
	ldr	r3, [fp, #-1088]
	cmp	r2, r3
	blt	.L325
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	beq	.L326
	ldr	r0, [fp, #-1024]
	bl	fclose
.L326:
	ldr	r3, .L359+136
	ldr	r3, [r3]
	ldr	r2, [fp, #-1036]
	cmp	r2, r3
	beq	.L327
	ldr	r0, [fp, #-1036]
	bl	fclose
.L327:
	mov	r0, #0
	bl	exit
.L360:
	.align	2
.L359:
	.word	.LC174
	.word	.LC175
	.word	.LC176
	.word	.LC177
	.word	.LC178
	.word	verbose
	.word	profileOps
	.word	outprofileOps
	.word	seqOps
	.word	profileAvgOps
	.word	.LC179
	.word	nCloseUsed
	.word	nClose2Used
	.word	nRefreshTopHits
	.word	.LC180
	.word	slow
	.word	nHillBetter
	.word	nVisibleUpdate
	.word	.LC181
	.word	nNNI
	.word	nSPR
	.word	nML_NNI
	.word	.LC182
	.word	nLkCompute
	.word	nPosteriorCompute
	.word	.LC183
	.word	nAAPosteriorExact
	.word	nAAPosteriorRough
	.word	1079574528
	.word	.LC184
	.word	mlAccuracy
	.word	nStarTests
	.word	.LC185
	.word	.LC186
	.word	stdout
	.size	main, .-main
	.section	.rodata
	.align	2
.LC188:
	.ascii	"%7i.%2.2i seconds: \000"
	.align	2
.LC189:
	.ascii	"   \015\000"
	.text
	.align	2
	.global	ProgressReport
	.syntax unified
	.arm
	.fpu softvfp
	.type	ProgressReport, %function
ProgressReport:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, .L370
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L369
	mov	r1, #0
	ldr	r0, .L370+4
	bl	gettimeofday
	ldr	r3, .L370+8
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L364
	ldr	r3, .L370+12
	ldr	r2, .L370+4
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L370+16
	ldr	r2, .L370+12
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L370+8
	mov	r2, #1
	strb	r2, [r3]
.L364:
	ldr	r2, .L370+12
	ldr	r1, .L370+4
	ldr	r0, .L370+20
	bl	timeval_subtract
	ldr	r3, .L370+20
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L365
	ldr	r3, .L370+20
	ldr	r3, [r3, #4]
	ldr	r2, .L370+24
	cmp	r3, r2
	bgt	.L365
	ldr	r3, .L370+28
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L361
.L365:
	ldr	r2, .L370+16
	ldr	r1, .L370+4
	ldr	r0, .L370+20
	bl	timeval_subtract
	ldr	r3, .L370+32
	ldr	r0, [r3]
	ldr	r3, .L370+20
	ldr	r1, [r3]
	ldr	r3, .L370+20
	ldr	r3, [r3, #4]
	ldr	r2, .L370+36
	smull	ip, r2, r3, r2
	asr	r2, r2, #12
	asr	r3, r3, #31
	sub	r3, r2, r3
	mov	r2, r1
	ldr	r1, .L370+40
	bl	fprintf
	ldr	r3, .L370+32
	ldr	r0, [r3]
	ldr	r3, [fp, #4]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-20]
	str	r3, [sp]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-8]
	bl	fprintf
	ldr	r3, .L370+28
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L366
	mov	r0, #2
	bl	isatty
	mov	r3, r0
	cmp	r3, #0
	bne	.L367
.L366:
	ldr	r3, .L370+32
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	b	.L368
.L367:
	ldr	r3, .L370+32
	ldr	r3, [r3]
	mov	r2, #4
	mov	r1, #1
	ldr	r0, .L370+44
	bl	fwrite
.L368:
	ldr	r3, .L370+32
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	ldr	r3, .L370+12
	ldr	r2, .L370+4
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	b	.L361
.L369:
	nop
.L361:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L371:
	.align	2
.L370:
	.word	showProgress
	.word	time_now.8200
	.word	time_set.8197
	.word	time_last.8198
	.word	time_begin.8199
	.word	elapsed.8201
	.word	100000
	.word	verbose
	.word	stderr
	.word	1759218605
	.word	.LC188
	.word	.LC189
	.size	ProgressReport, .-ProgressReport
	.section	.rodata
	.align	2
.LC190:
	.ascii	"NCategories\011%d\012Rates\000"
	.align	2
.LC191:
	.ascii	"rates->nRateCategories > 0\000"
	.align	2
.LC192:
	.ascii	"\012SiteCategories\000"
	.align	2
.LC193:
	.ascii	" %d\000"
	.text
	.align	2
	.global	LogMLRates
	.syntax unified
	.arm
	.fpu softvfp
	.type	LogMLRates, %function
LogMLRates:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L379
	ldr	r3, [fp, #-28]
	add	r3, r3, #100
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L380
	ldr	r0, [fp, #-24]
	bl	fprintf
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L374
	ldr	r3, .L380+4
	ldr	r2, .L380+8
	ldr	r1, .L380+12
	ldr	r0, .L380+16
	bl	__assert_fail
.L374:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L375
.L376:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L380+20
	ldr	r0, [fp, #-24]
	bl	fprintf
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L375:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L376
	ldr	r3, [fp, #-24]
	mov	r2, #15
	mov	r1, #1
	ldr	r0, .L380+24
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L377
.L378:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	mov	r2, r3
	ldr	r1, .L380+28
	ldr	r0, [fp, #-24]
	bl	fprintf
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L377:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L378
	ldr	r1, [fp, #-24]
	mov	r0, #10
	bl	fputc
	ldr	r0, [fp, #-24]
	bl	fflush
.L379:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L381:
	.align	2
.L380:
	.word	.LC190
	.word	__PRETTY_FUNCTION__.8207
	.word	2489
	.word	.LC134
	.word	.LC191
	.word	.LC145
	.word	.LC192
	.word	.LC193
	.size	LogMLRates, .-LogMLRates
	.align	2
	.global	LogTree
	.syntax unified
	.arm
	.fpu softvfp
	.type	LogTree, %function
LogTree:
	@ args = 12, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L384
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	fprintf
	ldr	r1, [fp, #-16]
	mov	r0, #9
	bl	fputc
	ldrb	r3, [fp, #12]	@ zero_extendqisi2
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #4]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	PrintNJ
	ldr	r0, [fp, #-16]
	bl	fflush
.L384:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	LogTree, .-LogTree
	.section	.rodata
	.align	2
.LC194:
	.ascii	"Ignored unknown character %c (seen %lu times)\012\000"
	.global	__aeabi_ui2d
	.align	2
.LC195:
	.ascii	"WARNING! ONLY %.1f%% NUCLEOTIDE CHARACTERS -- IS TH"
	.ascii	"IS REALLY A NUCLEOTIDE ALIGNMENT?\012\000"
	.align	2
.LC196:
	.ascii	"WARNING! %.1f%% NUCLEOTIDE CHARACTERS -- IS THIS RE"
	.ascii	"ALLY A PROTEIN ALIGNMENT?\012\000"
	.align	2
.LC197:
	.ascii	"Made sequence profiles\012\000"
	.align	2
.LC198:
	.ascii	"Made out-profile\012\000"
	.global	__aeabi_i2f
	.align	2
.LC199:
	.ascii	"Node %d outdist %f\012\000"
	.align	2
.LC200:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	InitNJ
	.syntax unified
	.arm
	.fpu softvfp
	.type	InitNJ, %function
InitNJ:
	@ args = 12, pretend = 0, frame = 1088
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #1104
	str	r0, [fp, #-1080]
	str	r1, [fp, #-1084]
	str	r2, [fp, #-1088]
	str	r3, [fp, #-1092]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #12]
	str	r3, [fp, #-1100]
	ldr	r3, .L440
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r0, #112
	bl	mymalloc
	str	r0, [fp, #-1056]
	ldr	r3, [fp, #-1056]
	mvn	r2, #0
	str	r2, [r3, #80]
	ldr	r3, [fp, #-1056]
	ldr	r2, [fp, #-1084]
	str	r2, [r3]
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3]
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-1056]
	ldr	r2, [fp, #-1088]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1084]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-1056]
	ldr	r2, [fp, #-1080]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1056]
	ldr	r2, [fp, #-1096]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-1056]
	ldr	r2, [fp, #-1100]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-1056]
	ldr	r2, [fp, #4]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-1056]
	ldr	r2, [fp, #-1092]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #36]
	mov	r3, #0
	str	r3, [fp, #-1068]
	b	.L386
.L387:
	ldr	r3, [fp, #-1068]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-1028]
	ldr	r3, [fp, #-1068]
	add	r3, r3, #1
	str	r3, [fp, #-1068]
.L386:
	ldr	r3, [fp, #-1068]
	cmp	r3, #255
	ble	.L387
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L388
.L391:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	beq	.L389
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1092]
	add	r3, r2, r3
	ldr	r2, [r3]
	b	.L390
.L389:
	mov	r2, #0
.L390:
	ldr	r3, [fp, #-1056]
	ldr	r1, [r3, #36]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r4, r1, r3
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #4
	str	r3, [sp, #8]
	ldr	r3, [fp, #-1072]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-1088]
	mov	r1, r0
	ldr	r0, [fp, #-1056]
	bl	SeqToProfile
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L388:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L391
	mov	r3, #0
	str	r3, [fp, #-1064]
	mov	r3, #0
	str	r3, [fp, #-1068]
	b	.L392
.L393:
	ldr	r3, [fp, #-1068]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-1028]
	ldr	r2, [fp, #-1064]
	add	r3, r2, r3
	str	r3, [fp, #-1064]
	ldr	r3, [fp, #-1068]
	add	r3, r3, #1
	str	r3, [fp, #-1068]
.L392:
	ldr	r3, [fp, #-1068]
	cmp	r3, #255
	ble	.L393
	mov	r3, #0
	str	r3, [fp, #-1068]
	b	.L394
.L403:
	ldr	r3, [fp, #-1068]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-1028]
	cmp	r3, #0
	beq	.L439
	ldr	r3, [fp, #-1068]
	cmp	r3, #46
	beq	.L439
	ldr	r3, [fp, #-1068]
	cmp	r3, #45
	beq	.L439
	mov	r3, #0
	strb	r3, [fp, #-1073]
	ldr	r3, .L440+4
	ldr	r3, [r3]
	str	r3, [fp, #-1060]
	b	.L398
.L402:
	ldr	r3, [fp, #-1060]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1068]
	cmp	r3, r2
	beq	.L399
	ldr	r3, [fp, #-1060]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	tolower
	mov	r2, r0
	ldr	r3, [fp, #-1068]
	cmp	r3, r2
	bne	.L400
.L399:
	mov	r3, #1
	strb	r3, [fp, #-1073]
	b	.L401
.L400:
	ldr	r3, [fp, #-1060]
	add	r3, r3, #1
	str	r3, [fp, #-1060]
.L398:
	ldr	r3, [fp, #-1060]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L402
.L401:
	ldrb	r3, [fp, #-1073]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L397
	ldr	r3, .L440+8
	ldr	r0, [r3]
	ldr	r3, [fp, #-1068]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-1028]
	ldr	r2, [fp, #-1068]
	ldr	r1, .L440+12
	bl	fprintf
	b	.L397
.L439:
	nop
.L397:
	ldr	r3, [fp, #-1068]
	add	r3, r3, #1
	str	r3, [fp, #-1068]
.L394:
	ldr	r3, [fp, #-1068]
	cmp	r3, #255
	ble	.L403
	ldr	r2, [fp, #-780]
	ldr	r3, [fp, #-772]
	add	r2, r2, r3
	ldr	r3, [fp, #-756]
	add	r2, r2, r3
	ldr	r3, [fp, #-704]
	add	r2, r2, r3
	ldr	r3, [fp, #-700]
	add	r2, r2, r3
	ldr	r3, [fp, #-728]
	add	r2, r2, r3
	ldr	r3, [fp, #-652]
	add	r2, r2, r3
	ldr	r3, [fp, #-644]
	add	r2, r2, r3
	ldr	r3, [fp, #-628]
	add	r2, r2, r3
	ldr	r3, [fp, #-576]
	add	r2, r2, r3
	ldr	r3, [fp, #-572]
	add	r2, r2, r3
	ldr	r3, [fp, #-600]
	add	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-860]
	ldr	r2, [fp, #-1064]
	sub	r2, r2, r3
	ldr	r3, [fp, #-856]
	sub	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-1052]
	str	r3, [fp, #-1048]
	ldr	r3, .L440+16
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L404
	ldr	r2, .L440+20
	ldr	r3, .L440+24
	ldr	r0, [fp, #-1052]
	ldr	r1, [fp, #-1048]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L404
	ldr	r3, .L440+8
	ldr	r4, [r3]
	mov	r2, #0
	ldr	r3, .L440+28
	ldr	r0, [fp, #-1052]
	ldr	r1, [fp, #-1048]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L440+32
	mov	r0, r4
	bl	fprintf
	b	.L406
.L404:
	ldr	r3, .L440+16
	ldr	r3, [r3]
	cmp	r3, #20
	bne	.L406
	ldr	r2, .L440+20
	ldr	r3, .L440+24
	ldr	r0, [fp, #-1052]
	ldr	r1, [fp, #-1048]
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L406
	ldr	r3, .L440+8
	ldr	r4, [r3]
	mov	r2, #0
	ldr	r3, .L440+28
	ldr	r0, [fp, #-1052]
	ldr	r1, [fp, #-1048]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L440+36
	mov	r0, r4
	bl	fprintf
.L406:
	ldr	r3, .L440+40
	ldr	r3, [r3]
	cmp	r3, #10
	ble	.L408
	ldr	r3, .L440+8
	ldr	r3, [r3]
	mov	r2, #23
	mov	r1, #1
	ldr	r0, .L440+44
	bl	fwrite
.L408:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3]
	str	r3, [fp, #-1072]
	b	.L409
.L410:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L409:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L410
	ldr	r3, [fp, #-1056]
	ldr	r0, [r3, #36]
	ldr	r3, [fp, #-1056]
	ldr	r1, [r3]
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1056]
	ldr	ip, [r3, #20]
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #12]
	str	r3, [sp]
	mov	r3, ip
	bl	OutProfile
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #56]
	ldr	r3, .L440+40
	ldr	r3, [r3]
	cmp	r3, #10
	ble	.L411
	ldr	r3, .L440+8
	ldr	r3, [r3]
	mov	r2, #17
	mov	r1, #1
	ldr	r0, .L440+48
	bl	fwrite
.L411:
	ldr	r1, [fp, #-1056]
	mov	r2, #0
	mov	r3, #0
	str	r2, [r1, #64]
	str	r3, [r1, #68]
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #40]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L412
.L413:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L412:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L413
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #44]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L414
.L415:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L414:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L415
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #48]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L416
.L417:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L416:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L417
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #52]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L418
.L419:
	ldr	r3, [fp, #-1056]
	ldr	r4, [r3, #4]
	ldr	r1, [fp, #-1072]
	ldr	r0, [fp, #-1056]
	bl	NGaps
	mov	r3, r0
	sub	r1, r4, r3
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, r1
	bl	__aeabi_i2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L418:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L419
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #72]
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #76]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L420
.L421:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3]
	ldr	r3, [fp, #-1056]
	ldr	r1, [r3, #76]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r1, r1, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	str	r3, [r1]
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L420:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L421
	ldr	r3, [fp, #-1056]
	mov	r2, #0
	str	r2, [r3, #84]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L422
.L423:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-1072]
	ldr	r0, [fp, #-1056]
	bl	SetOutDistance
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L422:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L423
	ldr	r3, .L440+40
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L424
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L425
.L426:
	ldr	r3, .L440+8
	ldr	r4, [r3]
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-1072]
	ldr	r1, .L440+52
	mov	r0, r4
	bl	fprintf
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L425:
	ldr	r3, [fp, #-1072]
	cmp	r3, #3
	bgt	.L424
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L426
.L424:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #84]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L427
.L428:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L427:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L428
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #92]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L429
.L430:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L429:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L430
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #96]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L431
.L432:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #96]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, .L440+56
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L431:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L432
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #4
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3, #88]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L433
.L434:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-1072]
	lsl	r3, r3, #4
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L433:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L434
	ldr	r3, [fp, #-1056]
	mov	r2, #0
	str	r2, [r3, #100]
	ldr	r3, [fp, #-1056]
	mov	r2, #0
	str	r2, [r3, #104]
	ldr	r3, [fp, #-1056]
	mov	r2, #0
	str	r2, [r3, #108]
	ldr	r3, [fp, #-1056]
	add	r0, r3, #100
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r1, #1
	bl	AllocRateCategories
	ldr	r3, [fp, #-1056]
	ldr	r2, .L440
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L436
	bl	__stack_chk_fail
.L436:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L441:
	.align	2
.L440:
	.word	.LC200
	.word	codesString
	.word	stderr
	.word	.LC194
	.word	nCodes
	.word	-858993459
	.word	1072483532
	.word	1079574528
	.word	.LC195
	.word	.LC196
	.word	verbose
	.word	.LC197
	.word	.LC198
	.word	.LC199
	.word	-1082130432
	.size	InitNJ, .-InitNJ
	.align	2
	.global	FreeNJ
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreeNJ, %function
FreeNJ:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L443
	ldr	r3, [fp, #-24]
	b	.L444
.L443:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L445
.L446:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	ip, [r3, #20]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r2, ip
	bl	FreeProfile
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L445:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L446
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	ldr	r0, [r3, #56]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	mov	r2, r3
	bl	FreeProfile
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #56]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #40]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #44]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #48]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #52]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #72]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #76]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #84]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #92]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #96]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #96]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #4
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #88]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	ldr	r1, .L447
	mov	r0, r3
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	add	r0, r3, #100
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r1, #0
	bl	AllocRateCategories
	mov	r1, #112
	ldr	r0, [fp, #-24]
	bl	myfree
	mov	r3, r0
.L444:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L448:
	.align	2
.L447:
	.word	16880
	.size	FreeNJ, .-FreeNJ
	.section	.rodata
	.align	2
.LC201:
	.ascii	"nRateCategories >= 0\000"
	.text
	.align	2
	.global	AllocRateCategories
	.syntax unified
	.arm
	.fpu softvfp
	.type	AllocRateCategories, %function
AllocRateCategories:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L450
	ldr	r3, .L457
	ldr	r2, .L457+4
	ldr	r1, .L457+8
	ldr	r0, .L457+12
	bl	__assert_fail
.L450:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L456
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L452
.L453:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #1065353216
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L452:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L453
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L454
.L455:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L454:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	blt	.L455
.L456:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L458:
	.align	2
.L457:
	.word	__PRETTY_FUNCTION__.8306
	.word	2660
	.word	.LC134
	.word	.LC201
	.size	AllocRateCategories, .-AllocRateCategories
	.section	.rodata
	.align	2
.LC202:
	.ascii	"NJ->nSeq >= 1\000"
	.align	2
.LC203:
	.ascii	"NJ->nSeq == 2\000"
	.global	__aeabi_fdiv
	.align	2
.LC204:
	.ascii	"Too few leaves, turning off top-hits\012\000"
	.align	2
.LC205:
	.ascii	"Top-hit-list size = %d of %d\012\000"
	.align	2
.LC206:
	.ascii	"!(slow && m>0)\000"
	.align	2
.LC207:
	.ascii	"Joined %6d of %6d\000"
	.align	2
.LC208:
	.ascii	"Constraint violation during neighbor-joining %d %d "
	.ascii	"into %d penalty %.3f\012\000"
	.align	2
.LC209:
	.ascii	"Constraint %d piece %d %d/%d %d/%d %d/%d\012\000"
	.align	2
.LC210:
	.ascii	"NJ->nOutDistActive[join.i] == nActive\000"
	.align	2
.LC211:
	.ascii	"NJ->nOutDistActive[join.j] == nActive\000"
	.global	__aeabi_fadd
	.global	__aeabi_fmul
	.align	2
.LC212:
	.ascii	"dVarO %f dVarDiam %f varIJ %f from dist %f weight %"
	.ascii	"f (pos %d) bionjWeight %f %f\012\000"
	.align	2
.LC213:
	.ascii	"deltaProfileVar actual %.6f estimated %.6f lambda a"
	.ascii	"ctual %.3f estimated %.3f\012\000"
	.align	2
.LC214:
	.ascii	"Join\011%d\011%d\011%.6f\011lambda\011%.6f\011selfw"
	.ascii	"\011%.3f\011%.3f\011new\011%d\012\000"
	.align	2
.LC215:
	.ascii	"nSaved < nActive-1\000"
	.align	2
.LC216:
	.ascii	"nSaved==nActive-1\000"
	.align	2
.LC217:
	.ascii	"Recomputing outprofile %d %d\012\000"
	.align	2
.LC218:
	.ascii	"Visible %d %d %f %f\012\000"
	.align	2
.LC219:
	.ascii	"iOldVisible>=0\000"
	.align	2
.LC220:
	.ascii	"visible[iNode].i == iNode\000"
	.global	__aeabi_fcmplt
	.align	2
.LC221:
	.ascii	"Visible %d reset from %d to %d (%f vs. %f)\012\000"
	.align	2
.LC222:
	.ascii	"nTop <= 2\000"
	.align	2
.LC223:
	.ascii	"nTop==3\000"
	.align	2
.LC224:
	.ascii	"Roundoff error in outprofile@end: WeightError %f Fr"
	.ascii	"eqError %f\012\000"
	.align	2
.LC225:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	FastNJ
	.syntax unified
	.arm
	.fpu softvfp
	.type	FastNJ, %function
FastNJ:
	@ args = 0, pretend = 0, frame = 376
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #436
	str	r0, [fp, #-400]
	ldr	r3, .L574
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L460
	ldr	r3, .L574+4
	ldr	r2, .L574+8
	ldr	r1, .L574+12
	ldr	r0, .L574+16
	bl	__assert_fail
.L460:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	cmp	r3, #2
	bgt	.L461
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #28]
	add	r1, r3, #1
	ldr	r2, [fp, #-400]
	str	r1, [r2, #28]
	ldr	r2, [fp, #-400]
	str	r3, [r2, #80]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #80]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-400]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-392]
	b	.L462
.L463:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-400]
	ldr	r2, [r2, #80]
	str	r2, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #80]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-392]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-392]
	add	r3, r3, #1
	str	r3, [fp, #-392]
.L462:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	ldr	r2, [fp, #-392]
	cmp	r2, r3
	blt	.L463
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L464
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #92]
	mov	r2, #0
	str	r2, [r3]	@ float
	b	.L459
.L464:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L466
	ldr	r3, .L574+4
	ldr	r2, .L574+20
	ldr	r1, .L574+12
	ldr	r0, .L574+24
	bl	__assert_fail
.L466:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #36]
	ldr	r3, [r3]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #36]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	ip, [r3, #12]
	sub	r3, fp, #84
	str	r3, [sp]
	mov	r3, ip
	bl	SeqDist
	ldr	r2, [fp, #-72]	@ float
	ldr	r3, [fp, #-400]
	ldr	r4, [r3, #92]
	mov	r1, #1073741824
	mov	r0, r2
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r2, [fp, #-72]	@ float
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #92]
	add	r4, r3, #4
	mov	r1, #1073741824
	mov	r0, r2
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [r4]	@ float
	b	.L459
.L461:
	mov	r3, #0
	str	r3, [fp, #-388]
	mov	r3, #0
	str	r3, [fp, #-384]
	mov	r3, #0
	str	r3, [fp, #-380]
	mov	r3, #0
	str	r3, [fp, #-376]
	ldr	r3, .L574+28
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L468
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sqrt
	ldr	r3, .L574+28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L574+112
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-376]
	cmp	r3, #3
	ble	.L470
	ldr	r3, [fp, #-376]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L471
.L470:
	mov	r3, #0
	str	r3, [fp, #-376]
	ldr	r3, .L574+128
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L468
	ldr	r3, .L574+132
	ldr	r3, [r3]
	mov	r2, #37
	mov	r1, #1
	ldr	r0, .L574+32
	bl	fwrite
	b	.L468
.L471:
	ldr	r3, .L574+128
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L468
	ldr	r3, .L574+132
	ldr	r0, [r3]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	ldr	r2, [fp, #-376]
	ldr	r1, .L574+36
	bl	fprintf
.L468:
	ldr	r3, .L574+40
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L473
	ldr	r3, [fp, #-376]
	cmp	r3, #0
	ble	.L473
	ldr	r3, .L574+4
	ldr	r2, .L574+44
	ldr	r1, .L574+12
	ldr	r0, .L574+48
	bl	__assert_fail
.L473:
	ldr	r3, [fp, #-376]
	cmp	r3, #0
	ble	.L474
	ldr	r1, [fp, #-376]
	ldr	r0, [fp, #-400]
	bl	InitTopHits
	str	r0, [fp, #-380]
	ldr	r1, [fp, #-380]
	ldr	r0, [fp, #-400]
	bl	SetAllLeafTopHits
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	ldr	r2, [fp, #-380]
	mov	r1, r3
	ldr	r0, [fp, #-400]
	bl	ResetTopVisible
	b	.L475
.L474:
	ldr	r3, .L574+40
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L475
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #32]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-388]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #32]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-384]
	mov	r3, #0
	str	r3, [fp, #-392]
	b	.L476
.L477:
	ldr	r3, [fp, #-400]
	ldr	r1, [r3]
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [sp]
	mov	r2, r1
	ldr	r1, [fp, #-400]
	ldr	r0, [fp, #-392]
	bl	SetBestHit
	ldr	r3, [fp, #-392]
	add	r3, r3, #1
	str	r3, [fp, #-392]
.L476:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	ldr	r2, [fp, #-392]
	cmp	r2, r3
	blt	.L477
.L475:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	str	r3, [fp, #-372]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	str	r3, [fp, #-368]
	b	.L478
.L544:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3]
	ldr	r3, [fp, #-368]
	sub	r3, r2, r3
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-340]
	cmp	r3, #0
	ble	.L479
	ldr	r1, [fp, #-340]
	ldr	r3, .L574+52
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L479
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	sub	r2, r3, #3
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r1, [fp, #-340]
	ldr	r0, .L574+56
	bl	ProgressReport
.L479:
	ldr	r3, .L574+40
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L480
	sub	r3, fp, #164
	mov	r2, r3
	ldr	r1, [fp, #-368]
	ldr	r0, [fp, #-400]
	bl	ExhaustiveNJSearch
	b	.L481
.L480:
	ldr	r3, [fp, #-376]
	cmp	r3, #0
	ble	.L482
	sub	r3, fp, #164
	ldr	r2, [fp, #-380]
	ldr	r1, [fp, #-368]
	ldr	r0, [fp, #-400]
	bl	TopHitNJSearch
	b	.L481
.L482:
	sub	r3, fp, #164
	ldr	r2, [fp, #-388]
	ldr	r1, [fp, #-368]
	ldr	r0, [fp, #-400]
	bl	FastNJSearch
.L481:
	ldr	r3, .L574+128
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L483
	ldr	r3, [fp, #-164]
	ldr	r2, [fp, #-160]
	mov	r1, r3
	ldr	r0, [fp, #-400]
	bl	JoinConstraintPenalty
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, .L574+60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-252]
	str	r3, [fp, #-248]
	ldr	r2, .L574+92
	ldr	r3, .L574+96
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L483
	ldr	r3, .L574+132
	ldr	r0, [r3]
	ldr	ip, [fp, #-164]
	ldr	lr, [fp, #-160]
	ldr	r3, [fp, #-400]
	ldr	r1, [r3, #28]
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	str	r1, [sp]
	mov	r3, lr
	mov	r2, ip
	ldr	r1, .L574+64
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-364]
	b	.L485
.L487:
	ldr	r1, [fp, #-164]
	ldr	r2, [fp, #-160]
	ldr	r3, [fp, #-364]
	ldr	r0, [fp, #-400]
	bl	JoinConstraintPenaltyPiece
	str	r0, [fp, #-336]
	ldr	r3, [fp, #-336]
	cmp	r3, #0
	ble	.L486
	ldr	r3, .L574+132
	ldr	r8, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-364]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-400]
	ldr	r1, [r2, #36]
	ldr	r2, [fp, #-164]
	lsl	r2, r2, #2
	add	r2, r1, r2
	ldr	r2, [r2]
	ldr	r1, [r2, #24]
	ldr	r2, [fp, #-364]
	lsl	r2, r2, #2
	add	r2, r1, r2
	ldr	r2, [r2]
	ldr	r1, [fp, #-400]
	ldr	r0, [r1, #36]
	ldr	r1, [fp, #-160]
	lsl	r1, r1, #2
	add	r1, r0, r1
	ldr	r1, [r1]
	ldr	r0, [r1, #20]
	ldr	r1, [fp, #-364]
	lsl	r1, r1, #2
	add	r1, r0, r1
	ldr	r1, [r1]
	ldr	r0, [fp, #-400]
	ldr	ip, [r0, #36]
	ldr	r0, [fp, #-160]
	lsl	r0, r0, #2
	add	r0, ip, r0
	ldr	r0, [r0]
	ldr	ip, [r0, #24]
	ldr	r0, [fp, #-364]
	lsl	r0, r0, #2
	add	r0, ip, r0
	ldr	r0, [r0]
	ldr	ip, [fp, #-400]
	ldr	ip, [ip, #56]
	ldr	lr, [ip, #20]
	ldr	ip, [fp, #-364]
	lsl	ip, ip, #2
	add	ip, lr, ip
	ldr	lr, [ip]
	ldr	ip, [fp, #-400]
	ldr	r6, [ip, #36]
	ldr	ip, [fp, #-164]
	lsl	ip, ip, #2
	add	ip, r6, ip
	ldr	ip, [ip]
	ldr	r6, [ip, #20]
	ldr	ip, [fp, #-364]
	lsl	ip, ip, #2
	add	ip, r6, ip
	ldr	ip, [ip]
	sub	lr, lr, ip
	ldr	ip, [fp, #-400]
	ldr	r6, [ip, #36]
	ldr	ip, [fp, #-160]
	lsl	ip, ip, #2
	add	ip, r6, ip
	ldr	ip, [ip]
	ldr	r6, [ip, #20]
	ldr	ip, [fp, #-364]
	lsl	ip, ip, #2
	add	ip, r6, ip
	ldr	ip, [ip]
	sub	ip, lr, ip
	ldr	lr, [fp, #-400]
	ldr	lr, [lr, #56]
	ldr	r6, [lr, #24]
	ldr	lr, [fp, #-364]
	lsl	lr, lr, #2
	add	lr, r6, lr
	ldr	r6, [lr]
	ldr	lr, [fp, #-400]
	ldr	r7, [lr, #36]
	ldr	lr, [fp, #-164]
	lsl	lr, lr, #2
	add	lr, r7, lr
	ldr	lr, [lr]
	ldr	r7, [lr, #24]
	ldr	lr, [fp, #-364]
	lsl	lr, lr, #2
	add	lr, r7, lr
	ldr	lr, [lr]
	sub	r6, r6, lr
	ldr	lr, [fp, #-400]
	ldr	r7, [lr, #36]
	ldr	lr, [fp, #-160]
	lsl	lr, lr, #2
	add	lr, r7, lr
	ldr	lr, [lr]
	ldr	r7, [lr, #24]
	ldr	lr, [fp, #-364]
	lsl	lr, lr, #2
	add	lr, r7, lr
	ldr	lr, [lr]
	sub	lr, r6, lr
	str	lr, [sp, #20]
	str	ip, [sp, #16]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-336]
	ldr	r2, [fp, #-364]
	ldr	r1, .L574+68
	mov	r0, r8
	bl	fprintf
.L486:
	ldr	r3, [fp, #-364]
	add	r3, r3, #1
	str	r3, [fp, #-364]
.L485:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-364]
	cmp	r2, r3
	blt	.L487
.L483:
	ldr	r3, [fp, #-164]
	ldr	r2, [fp, #-368]
	mov	r1, r3
	ldr	r0, [fp, #-400]
	bl	SetOutDistance
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-368]
	mov	r1, r3
	ldr	r0, [fp, #-400]
	bl	SetOutDistance
	sub	r3, fp, #164
	mov	r2, r3
	ldr	r1, [fp, #-368]
	ldr	r0, [fp, #-400]
	bl	SetDistCriterion
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-368]
	cmp	r2, r3
	beq	.L488
	ldr	r3, .L574+4
	ldr	r2, .L574+72
	ldr	r1, .L574+12
	ldr	r0, .L574+76
	bl	__assert_fail
.L488:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-368]
	cmp	r2, r3
	beq	.L489
	ldr	r3, .L574+4
	ldr	r2, .L574+80
	ldr	r1, .L574+12
	ldr	r0, .L574+84
	bl	__assert_fail
.L575:
	.align	2
.L574:
	.word	.LC225
	.word	__PRETTY_FUNCTION__.8318
	.word	2678
	.word	.LC134
	.word	.LC202
	.word	2689
	.word	.LC203
	.word	tophitsMult
	.word	.LC204
	.word	.LC205
	.word	slow
	.word	2717
	.word	.LC206
	.word	1374389535
	.word	.LC207
	.word	constraintWeight
	.word	.LC208
	.word	.LC209
	.word	2774
	.word	.LC210
	.word	2775
	.word	.LC211
	.word	bionj
	.word	-755914244
	.word	1062232653
	.word	outprofileOps
	.word	.LC212
	.word	1717986919
	.word	1071644672
	.word	1202590843
	.word	1065646817
	.word	.LC213
	.word	verbose
	.word	stderr
	.word	.LC214
	.word	1072693248
.L489:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #28]
	add	r1, r3, #1
	ldr	r2, [fp, #-400]
	str	r1, [r2, #28]
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-332]
	str	r2, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-332]
	str	r2, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #4
	add	r3, r2, r3
	mov	r2, #2
	str	r2, [r3]
	ldr	r2, [fp, #-160]
	ldr	r3, [fp, #-164]
	ldr	r1, [fp, #-400]
	ldr	r0, [r1, #88]
	ldr	r1, [fp, #-332]
	lsl	r1, r1, #4
	add	r1, r0, r1
	cmp	r2, r3
	movlt	r3, r2
	movge	r3, r3
	str	r3, [r1, #4]
	ldr	r2, [fp, #-160]
	ldr	r3, [fp, #-164]
	ldr	r1, [fp, #-400]
	ldr	r0, [r1, #88]
	ldr	r1, [fp, #-332]
	lsl	r1, r1, #4
	add	r1, r0, r1
	cmp	r2, r3
	movge	r3, r2
	movlt	r3, r3
	str	r3, [r1, #8]
	ldr	r0, [fp, #-152]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-244]
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-152]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-236]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r3, [fp, #-368]
	sub	r3, r3, #2
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-228]
	str	r3, [fp, #-224]
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r6, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r6]	@ float
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r6, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r6]	@ float
	mov	r2, #0
	ldr	r3, .L574+112
	str	r2, [fp, #-316]
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #244
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-220]
	str	r3, [fp, #-216]
	ldr	r3, .L574+88
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L490
	ldr	r3, [fp, #-156]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, .L574+116
	ldr	r3, .L574+120
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L490
	ldr	r2, .L574+92
	ldr	r3, .L574+96
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L490
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-400]
	ldr	r1, [r3, #56]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	ip, [r3, #12]
	sub	r3, fp, #144
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-400]
	ldr	r1, [r3, #56]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	ip, [r3, #12]
	sub	r3, fp, #124
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, .L574+100
	ldr	r3, [r3]
	add	r3, r3, #2
	ldr	r2, .L574+100
	str	r3, [r2]
	ldr	r0, [fp, #-368]
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-136]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-156]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-212]
	str	r3, [fp, #-208]
	ldr	r0, [fp, #-368]
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-116]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-156]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-204]
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-132]	@ float
	ldr	r2, [fp, #-136]	@ float
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r6, r3
	ldr	r0, [fp, #-368]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r6
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r6, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r6
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r3, [fp, #-156]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-196]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-112]	@ float
	ldr	r2, [fp, #-116]	@ float
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r6, r3
	ldr	r0, [fp, #-368]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r6
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r6, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r6
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r3, [fp, #-156]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-188]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-368]
	sub	r3, r3, #2
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r6, r0
	mov	r7, r1
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	sub	r1, fp, #188
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r8, r2
	mov	r9, r3
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-368]
	sub	r3, r3, #2
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r6, r0
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r1, r3
	mov	r0, r6
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	ldr	r2, .L574+116
	ldr	r3, .L574+120
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L493
	ldr	r2, .L574+116
	ldr	r3, .L574+120
	sub	r1, fp, #212
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L493
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-368]
	sub	r3, r3, #2
	lsl	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L574+112
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-316]
	str	r3, [fp, #-312]
.L493:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #316
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L496
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-316]
	str	r3, [fp, #-312]
.L496:
	mov	r2, #0
	ldr	r3, .L574+140
	sub	r1, fp, #316
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L498
	mov	r2, #0
	ldr	r3, .L574+140
	str	r2, [fp, #-316]
	str	r3, [fp, #-312]
.L498:
	ldr	r3, .L574+128
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L500
	ldr	r3, .L574+132
	ldr	r3, [r3]
	str	r3, [fp, #-404]
	ldr	r3, [fp, #-152]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r3, [fp, #-156]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r8, r0
	mov	r9, r1
	ldr	r3, [fp, #-400]
	ldr	r10, [r3, #4]
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L574+140
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #48]
	str	r3, [sp, #52]
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	str	r2, [sp, #40]
	str	r3, [sp, #44]
	str	r10, [sp, #32]
	str	r8, [sp, #24]
	str	r9, [sp, #28]
	str	r6, [sp, #16]
	str	r7, [sp, #20]
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	ldr	r1, .L574+104
	ldr	r0, [fp, #-404]
	bl	fprintf
.L500:
	ldr	r3, .L574+128
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L490
	ldr	r1, [fp, #-332]
	ldr	r3, .L574+108
	smull	r2, r3, r1, r3
	asr	r2, r3, #1
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L490
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-308]
	str	r3, [fp, #-304]
	mov	r3, #0
	str	r3, [fp, #-392]
	b	.L502
.L504:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L503
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	ip, [r3, #12]
	sub	r3, fp, #104
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	ip, [r3, #12]
	sub	r3, fp, #84
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, [fp, #-72]	@ float
	ldr	r2, [fp, #-92]	@ float
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #308
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-308]
	str	r3, [fp, #-304]
.L503:
	ldr	r3, [fp, #-392]
	add	r3, r3, #1
	str	r3, [fp, #-392]
.L502:
	ldr	r2, [fp, #-392]
	ldr	r3, [fp, #-332]
	cmp	r2, r3
	blt	.L504
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	sub	r1, fp, #308
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-368]
	sub	r3, r3, #2
	lsl	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L574+112
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-300]
	str	r3, [fp, #-296]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #300
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L505
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-300]
	str	r3, [fp, #-296]
.L505:
	mov	r2, #0
	ldr	r3, .L574+140
	sub	r1, fp, #300
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L507
	mov	r2, #0
	ldr	r3, .L574+140
	str	r2, [fp, #-300]
	str	r3, [fp, #-296]
.L507:
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	sub	r1, fp, #316
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	bic	r5, r3, #-2147483648
	ldr	r2, .L574+116
	ldr	r3, .L574+120
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L509
	ldr	r3, .L574+128
	ldr	r3, [r3]
	cmp	r3, #4
	ble	.L490
.L509:
	ldr	r3, .L574+132
	ldr	r0, [r3]
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #308
	ldmia	r3, {r2-r3}
	ldr	r1, .L574+124
	bl	fprintf
.L490:
	ldr	r3, .L574+128
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L510
	ldr	r3, .L574+132
	ldr	r10, [r3]
	ldr	r2, [fp, #-160]
	ldr	r3, [fp, #-164]
	cmp	r2, r3
	movlt	r3, r2
	movge	r3, r3
	str	r3, [fp, #-404]
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #-160]
	cmp	r2, r3
	movge	r3, r2
	movlt	r3, r3
	str	r3, [fp, #-408]
	ldr	r3, [fp, #-148]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #52]
	ldr	r1, [fp, #-164]
	ldr	r3, [fp, #-160]
	cmp	r1, r3
	bge	.L511
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	b	.L512
.L511:
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
.L512:
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r8, r0
	mov	r9, r1
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #52]
	ldr	r1, [fp, #-164]
	ldr	r3, [fp, #-160]
	cmp	r1, r3
	bge	.L513
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	b	.L514
.L513:
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
.L514:
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-332]
	str	r1, [sp, #32]
	str	r2, [sp, #24]
	str	r3, [sp, #28]
	str	r8, [sp, #16]
	str	r9, [sp, #20]
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r6-r7}
	ldr	r3, [fp, #-408]
	ldr	r2, [fp, #-404]
	ldr	r1, .L574+136
	mov	r0, r10
	bl	fprintf
.L510:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L574+140
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r8, r2
	mov	r9, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r6, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r6]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L574+140
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r8, r2
	mov	r9, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L574+140
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r6, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r6]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	lr, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r7, [r3]
	ldr	r3, [fp, #-400]
	ldr	r8, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	r9, [r3, #20]
	ldr	r3, [fp, #-400]
	ldr	r1, [r3, #12]
	ldr	r3, .L576
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L515
	sub	r3, fp, #316
	ldmia	r3, {r2-r3}
	b	.L516
.L515:
	mov	r2, #0
	ldr	r3, .L576+4
.L516:
	ldr	r0, [fp, #-400]
	ldr	ip, [r0, #36]
	ldr	r0, [fp, #-332]
	lsl	r0, r0, #2
	add	r6, ip, r0
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	str	r1, [sp]
	mov	r3, r9
	mov	r2, r8
	mov	r1, r7
	mov	r0, lr
	bl	AverageProfile
	mov	r3, r0
	str	r3, [r6]
	ldr	r3, [fp, #-368]
	sub	r3, r3, #1
	ldr	r2, [fp, #-372]
	sub	r3, r2, r3
	str	r3, [fp, #-328]
	ldr	r3, .L576+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-328]
	cmp	r2, r3
	blt	.L517
	ldr	r0, [fp, #-328]
	bl	__aeabi_i2d
	mov	r6, r0
	mov	r7, r1
	ldr	r0, [fp, #-372]
	bl	__aeabi_i2d
	ldr	r3, .L576+12
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L517
	ldr	r3, [fp, #-368]
	sub	r3, r3, #1
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-324]
	mov	r3, #0
	str	r3, [fp, #-360]
	ldr	r1, [fp, #-400]
	mov	r2, #0
	mov	r3, #0
	str	r2, [r1, #64]
	str	r3, [r1, #68]
	mov	r3, #0
	str	r3, [fp, #-392]
	b	.L519
.L522:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L520
	ldr	r3, [fp, #-368]
	sub	r3, r3, #1
	ldr	r2, [fp, #-360]
	cmp	r2, r3
	blt	.L521
	ldr	r3, .L576+16
	ldr	r2, .L576+20
	ldr	r1, .L576+24
	ldr	r0, .L576+28
	bl	__assert_fail
.L521:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-360]
	add	r1, r3, #1
	str	r1, [fp, #-360]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-324]
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-400]
	add	r7, r3, #64
	ldmia	r7, {r6-r7}
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-400]
	str	r2, [r1, #64]
	str	r3, [r1, #68]
.L520:
	ldr	r3, [fp, #-392]
	add	r3, r3, #1
	str	r3, [fp, #-392]
.L519:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-392]
	cmp	r2, r3
	blt	.L522
	ldr	r3, [fp, #-368]
	sub	r3, r3, #1
	ldr	r2, [fp, #-360]
	cmp	r2, r3
	beq	.L523
	ldr	r3, .L576+16
	ldr	r2, .L576+32
	ldr	r1, .L576+24
	ldr	r0, .L576+36
	bl	__assert_fail
.L523:
	ldr	r3, [fp, #-400]
	ldr	r0, [r3, #56]
	ldr	r3, [fp, #-400]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #20]
	mov	r2, r3
	bl	FreeProfile
	ldr	r3, .L576+88
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L524
	ldr	r3, .L576+96
	ldr	r0, [r3]
	ldr	r3, [fp, #-368]
	sub	r3, r3, #1
	ldr	r2, [fp, #-372]
	ldr	r1, .L576+40
	bl	fprintf
.L524:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	r1, [r3, #20]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #12]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-360]
	ldr	r0, [fp, #-324]
	bl	OutProfile
	mov	r2, r0
	ldr	r3, [fp, #-400]
	str	r2, [r3, #56]
	ldr	r3, [fp, #-368]
	sub	r3, r3, #1
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-324]
	bl	myfree
	str	r0, [fp, #-324]
	ldr	r3, [fp, #-368]
	sub	r3, r3, #1
	str	r3, [fp, #-372]
	b	.L525
.L517:
	ldr	r3, [fp, #-400]
	ldr	r0, [r3, #56]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	ip, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	lr, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r6, [r3]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-400]
	ldr	r2, [r2, #20]
	ldr	r1, [fp, #-400]
	ldr	r1, [r1, #12]
	str	r1, [sp, #12]
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-368]
	str	r3, [sp]
	mov	r3, r6
	mov	r2, lr
	mov	r1, ip
	bl	UpdateOutProfile
	ldr	r3, [fp, #-400]
	add	r7, r3, #64
	ldmia	r7, {r6-r7}
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-400]
	str	r2, [r1, #64]
	str	r3, [r1, #68]
.L525:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	ip, [r3, #12]
	sub	r3, fp, #84
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-72]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-76]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-376]
	cmp	r3, #0
	ble	.L526
	ldr	r3, [fp, #-368]
	sub	r2, r3, #1
	ldr	r3, [fp, #-380]
	ldr	r1, [fp, #-400]
	ldr	r0, [fp, #-332]
	bl	TopHitJoin
	b	.L527
.L526:
	mov	r3, #0
	str	r3, [fp, #-392]
	b	.L528
.L530:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L529
	ldr	r3, [fp, #-368]
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-392]
	ldr	r0, [fp, #-400]
	bl	SetOutDistance
.L529:
	ldr	r3, [fp, #-392]
	add	r3, r3, #1
	str	r3, [fp, #-392]
.L528:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-392]
	cmp	r2, r3
	blt	.L530
	ldr	r3, [fp, #-388]
	cmp	r3, #0
	beq	.L527
	ldr	r3, [fp, #-368]
	sub	r1, r3, #1
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r2, r3, r2
	ldr	r3, [fp, #-384]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, r1
	ldr	r1, [fp, #-400]
	ldr	r0, [fp, #-332]
	bl	SetBestHit
	ldr	r3, .L576+88
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L531
	ldr	r3, .L576+96
	ldr	r8, [r3]
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r9, [r3]
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r10, [r3, #4]
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r3, [r3, #12]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r6-r7}
	mov	r3, r10
	mov	r2, r9
	ldr	r1, .L576+44
	mov	r0, r8
	bl	fprintf
.L531:
	ldr	r3, [fp, #-384]
	cmp	r3, #0
	beq	.L527
	mov	r3, #0
	str	r3, [fp, #-392]
	b	.L532
.L543:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L572
	ldr	r2, [fp, #-392]
	ldr	r3, [fp, #-332]
	cmp	r2, r3
	beq	.L572
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-320]
	cmp	r3, #0
	bge	.L536
	ldr	r3, .L576+16
	ldr	r2, .L576+48
	ldr	r1, .L576+24
	ldr	r0, .L576+52
	bl	__assert_fail
.L536:
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r3, [r3]
	ldr	r2, [fp, #-392]
	cmp	r2, r3
	beq	.L537
	ldr	r3, .L576+16
	ldr	r2, .L576+56
	ldr	r1, .L576+24
	ldr	r0, .L576+60
	bl	__assert_fail
.L537:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L538
	ldr	r3, [fp, #-368]
	sub	r1, r3, #1
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	mov	r2, r3
	ldr	r0, [fp, #-400]
	bl	SetCriterion
.L538:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L539
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-384]
	add	r3, r3, r2
	ldr	r0, [r3, #16]	@ float
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L535
.L539:
	ldr	r3, .L576+88
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L541
	ldr	r3, .L576+96
	ldr	r8, [r3]
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-384]
	add	r3, r3, r2
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	ldr	r3, [fp, #-332]
	str	r3, [sp]
	ldr	r3, [fp, #-320]
	ldr	r2, [fp, #-392]
	ldr	r1, .L576+64
	mov	r0, r8
	bl	fprintf
.L541:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L542
	ldr	r3, .L576+68
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L576+68
	str	r3, [r2]
.L542:
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r2, [fp, #-332]
	str	r2, [r3, #4]
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-384]
	add	r1, r3, r2
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r2, [r1, #12]	@ float
	str	r2, [r3, #12]	@ float
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-384]
	add	r1, r3, r2
	ldr	r2, [fp, #-392]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-388]
	add	r3, r3, r2
	ldr	r2, [r1, #16]	@ float
	str	r2, [r3, #16]	@ float
	b	.L535
.L572:
	nop
.L535:
	ldr	r3, [fp, #-392]
	add	r3, r3, #1
	str	r3, [fp, #-392]
.L532:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-392]
	cmp	r2, r3
	blt	.L543
.L527:
	ldr	r3, [fp, #-368]
	sub	r3, r3, #1
	str	r3, [fp, #-368]
.L478:
	ldr	r3, [fp, #-368]
	cmp	r3, #3
	bgt	.L544
	ldr	r3, [fp, #-388]
	cmp	r3, #0
	beq	.L545
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #32]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-388]
	bl	myfree
	str	r0, [fp, #-388]
.L545:
	ldr	r3, [fp, #-384]
	cmp	r3, #0
	beq	.L546
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #32]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-384]
	bl	myfree
	str	r0, [fp, #-384]
.L546:
	ldr	r0, [fp, #-380]
	bl	FreeTopHits
	str	r0, [fp, #-380]
	mov	r3, #0
	str	r3, [fp, #-356]
	mov	r3, #0
	str	r3, [fp, #-392]
	b	.L547
.L550:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L548
	ldr	r3, [fp, #-356]
	cmp	r3, #2
	ble	.L549
	ldr	r3, .L576+16
	ldr	r2, .L576+72
	ldr	r1, .L576+24
	ldr	r0, .L576+76
	bl	__assert_fail
.L549:
	ldr	r3, [fp, #-356]
	add	r2, r3, #1
	str	r2, [fp, #-356]
	lsl	r3, r3, #2
	sub	r2, fp, #36
	add	r3, r2, r3
	ldr	r2, [fp, #-392]
	str	r2, [r3, #-28]
.L548:
	ldr	r3, [fp, #-392]
	add	r3, r3, #1
	str	r3, [fp, #-392]
.L547:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-392]
	cmp	r2, r3
	blt	.L550
	ldr	r3, [fp, #-356]
	cmp	r3, #3
	beq	.L551
	ldr	r3, .L576+16
	ldr	r2, .L576+80
	ldr	r1, .L576+24
	ldr	r0, .L576+84
	bl	__assert_fail
.L551:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #28]
	add	r1, r3, #1
	ldr	r2, [fp, #-400]
	str	r1, [r2, #28]
	ldr	r2, [fp, #-400]
	str	r3, [r2, #80]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #80]
	lsl	r3, r3, #4
	add	r3, r2, r3
	mov	r2, #3
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-356]
	b	.L552
.L577:
	.align	2
.L576:
	.word	bionj
	.word	-1074790400
	.word	nResetOutProfile
	.word	fResetOutProfile
	.word	__PRETTY_FUNCTION__.8318
	.word	2888
	.word	.LC134
	.word	.LC215
	.word	2893
	.word	.LC216
	.word	.LC217
	.word	.LC218
	.word	2940
	.word	.LC219
	.word	2941
	.word	.LC220
	.word	.LC221
	.word	nVisibleUpdate
	.word	2982
	.word	.LC222
	.word	2986
	.word	.LC223
	.word	verbose
	.word	nCodes
	.word	stderr
	.word	.LC224
	.word	.LC225
.L553:
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-356]
	lsl	r3, r3, #2
	sub	r1, fp, #36
	add	r3, r1, r3
	ldr	r3, [r3, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-400]
	ldr	r2, [r2, #80]
	str	r2, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #80]
	lsl	r3, r3, #4
	add	r1, r2, r3
	ldr	r3, [fp, #-356]
	lsl	r3, r3, #2
	sub	r2, fp, #36
	add	r3, r2, r3
	ldr	r2, [r3, #-28]
	ldr	r3, [fp, #-356]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #4]
	ldr	r3, [fp, #-356]
	add	r3, r3, #1
	str	r3, [fp, #-356]
.L552:
	ldr	r3, [fp, #-356]
	cmp	r3, #2
	ble	.L553
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	ip, [r3, #12]
	sub	r3, fp, #124
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	ip, [r3, #12]
	sub	r3, fp, #104
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	ip, [r3, #12]
	sub	r3, fp, #84
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r0, [fp, #-112]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-276]
	str	r3, [fp, #-272]
	ldr	r0, [fp, #-92]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-268]
	str	r3, [fp, #-264]
	ldr	r0, [fp, #-72]	@ float
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-260]
	str	r3, [fp, #-256]
	sub	r3, fp, #268
	ldmia	r3, {r2-r3}
	sub	r1, fp, #276
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	sub	r1, fp, #276
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #268
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	sub	r1, fp, #268
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #276
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, .L576+88
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L573
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-400]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	r1, [r3, #20]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #12]
	sub	r0, fp, #52
	str	r3, [sp]
	mov	r3, r1
	mov	r1, #3
	bl	OutProfile
	str	r0, [fp, #-344]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-292]
	str	r3, [fp, #-288]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-284]
	str	r3, [fp, #-280]
	mov	r3, #0
	str	r3, [fp, #-352]
	b	.L555
.L558:
	ldr	r3, [fp, #-344]
	ldr	r2, [r3]
	ldr	r3, [fp, #-352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #56]
	ldr	r2, [r3]
	ldr	r3, [fp, #-352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	bic	r3, r3, #-2147483648
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #284
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-284]
	str	r3, [fp, #-280]
	mov	r3, #0
	str	r3, [fp, #-348]
	b	.L556
.L557:
	ldr	r3, [fp, #-344]
	ldr	r2, [r3, #8]
	ldr	r3, .L576+92
	ldr	r3, [r3]
	ldr	r1, [fp, #-352]
	mul	r1, r3, r1
	ldr	r3, [fp, #-348]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #56]
	ldr	r2, [r3, #8]
	ldr	r3, .L576+92
	ldr	r3, [r3]
	ldr	r1, [fp, #-352]
	mul	r1, r3, r1
	ldr	r3, [fp, #-348]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	bic	r3, r3, #-2147483648
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #292
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-292]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-348]
	add	r3, r3, #1
	str	r3, [fp, #-348]
.L556:
	ldr	r3, .L576+92
	ldr	r3, [r3]
	ldr	r2, [fp, #-348]
	cmp	r2, r3
	blt	.L557
	ldr	r3, [fp, #-352]
	add	r3, r3, #1
	str	r3, [fp, #-352]
.L555:
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-352]
	cmp	r2, r3
	blt	.L558
	ldr	r3, .L576+96
	ldr	r0, [r3]
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #284
	ldmia	r3, {r2-r3}
	ldr	r1, .L576+100
	bl	fprintf
	ldr	r3, [fp, #-400]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r0, [fp, #-344]
	bl	FreeProfile
.L573:
	nop
.L459:
	ldr	r3, .L576+104
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L560
	bl	__stack_chk_fail
.L560:
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
	.size	FastNJ, .-FastNJ
	.section	.rodata
	.align	2
.LC226:
	.ascii	"join->i >= 0 && join->j >= 0\000"
	.align	2
.LC227:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ExhaustiveNJSearch
	.syntax unified
	.arm
	.fpu softvfp
	.type	ExhaustiveNJSearch, %function
ExhaustiveNJSearch:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	ldr	r3, .L592
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-56]
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	mvn	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-56]
	mov	r2, #0
	str	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-56]
	ldr	r2, .L592+4
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-56]
	ldr	r2, .L592+4
	str	r2, [r3, #16]	@ float
	ldr	r2, .L592+8
	ldr	r3, .L592+12
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L579
.L586:
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L580
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-40]
	b	.L581
.L585:
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L582
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-24]
	sub	r3, fp, #28
	mov	r2, r3
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	SetDistCriterion
	ldr	r3, [fp, #-12]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L582
	ldr	r3, [fp, #-56]
	mov	lr, r3
	sub	ip, fp, #28
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldr	r3, [ip]
	str	r3, [lr]
	ldr	r3, [fp, #-12]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
.L582:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L581:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L585
.L580:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L579:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #28]
	sub	r3, r3, #1
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	blt	.L586
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L587
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bge	.L591
.L587:
	ldr	r3, .L592+16
	ldr	r2, .L592+20
	ldr	r1, .L592+24
	ldr	r0, .L592+28
	bl	__assert_fail
.L591:
	nop
	ldr	r3, .L592
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L589
	bl	__stack_chk_fail
.L589:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L593:
	.align	2
.L592:
	.word	.LC227
	.word	1621981420
	.word	2025163840
	.word	1142271773
	.word	__PRETTY_FUNCTION__.8420
	.word	3051
	.word	.LC134
	.word	.LC226
	.size	ExhaustiveNJSearch, .-ExhaustiveNJSearch
	.section	.rodata
	.align	2
.LC228:
	.ascii	"BetterI\011%d\011%d\011%d\011%d\011%f\011%f\012\000"
	.align	2
.LC229:
	.ascii	"BetterJ\011%d\011%d\011%d\011%d\011%f\011%f\012\000"
	.text
	.align	2
	.global	FastNJSearch
	.syntax unified
	.arm
	.fpu softvfp
	.type	FastNJSearch, %function
FastNJSearch:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #60
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-68]
	mvn	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r2, .L610
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-68]
	mov	r2, #0
	str	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-68]
	ldr	r2, .L610
	str	r2, [r3, #16]	@ float
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L595
.L598:
	ldr	r2, [fp, #-48]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L596
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L596
	ldr	r2, [fp, #-48]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	mov	r2, r3
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-56]
	bl	SetCriterion
	ldr	r2, [fp, #-48]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #16]	@ float
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L596
	ldr	r2, [fp, #-48]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [fp, #-68]
	mov	ip, r2
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
.L596:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L595:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L598
	ldr	r3, .L610+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L609
.L606:
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L600
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bge	.L608
.L600:
	ldr	r3, .L610+8
	ldr	r2, .L610+12
	ldr	r1, .L610+16
	ldr	r0, .L610+20
	bl	__assert_fail
.L608:
	ldr	r3, [fp, #-68]
	ldr	r0, [r3]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [sp]
	ldr	r2, [fp, #-60]
	ldr	r1, [fp, #-56]
	bl	SetBestHit
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	beq	.L602
	mov	r3, #1
	str	r3, [fp, #-44]
	ldr	r3, .L610+24
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L602
	ldr	r3, .L610+28
	ldr	r8, [r3]
	ldr	r3, [fp, #-68]
	ldr	r9, [r3]
	ldr	r3, [fp, #-68]
	ldr	r10, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r6, [r3]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r7, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	str	r7, [sp, #4]
	str	r6, [sp]
	mov	r3, r10
	mov	r2, r9
	ldr	r1, .L610+32
	mov	r0, r8
	bl	fprintf
.L602:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-68]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-68]
	str	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-68]
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #16]	@ float
	ldr	r3, [fp, #-68]
	str	r2, [r3, #16]	@ float
	ldr	r3, [fp, #-68]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [sp]
	ldr	r2, [fp, #-60]
	ldr	r1, [fp, #-56]
	bl	SetBestHit
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L603
	mov	r3, #1
	str	r3, [fp, #-44]
	ldr	r3, .L610+24
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L604
	ldr	r3, .L610+28
	ldr	r8, [r3]
	ldr	r3, [fp, #-68]
	ldr	r9, [r3]
	ldr	r3, [fp, #-68]
	ldr	r10, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r6, [r3]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r7, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	str	r7, [sp, #4]
	str	r6, [sp]
	mov	r3, r10
	mov	r2, r9
	ldr	r1, .L610+36
	mov	r0, r8
	bl	fprintf
.L604:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-68]
	str	r2, [r3]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-68]
	str	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-68]
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	ldr	r2, [r3, #16]	@ float
	ldr	r3, [fp, #-68]
	str	r2, [r3, #16]	@ float
.L603:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L605
	ldr	r3, .L610+40
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L610+40
	str	r3, [r2]
.L605:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L606
.L609:
	nop
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L611:
	.align	2
.L610:
	.word	1621981420
	.word	fastest
	.word	__PRETTY_FUNCTION__.8433
	.word	3075
	.word	.LC134
	.word	.LC226
	.word	verbose
	.word	stderr
	.word	.LC228
	.word	.LC229
	.word	nHillBetter
	.size	FastNJSearch, .-FastNJSearch
	.section	.rodata
	.align	2
.LC230:
	.ascii	"Token too long in tree file, token begins with\012%"
	.ascii	"s\012\000"
	.text
	.align	2
	.global	ReadTreeToken
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReadTreeToken, %function
ReadTreeToken:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-16]
	bl	fgetc
	str	r0, [fp, #-8]
	b	.L613
.L620:
	ldr	r3, [fp, #-8]
	cmp	r3, #40
	beq	.L614
	ldr	r3, [fp, #-8]
	cmp	r3, #41
	beq	.L614
	ldr	r3, [fp, #-8]
	cmp	r3, #58
	beq	.L614
	ldr	r3, [fp, #-8]
	cmp	r3, #59
	beq	.L614
	ldr	r3, [fp, #-8]
	cmp	r3, #44
	bne	.L615
.L614:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L616
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldr	r2, [fp, #-8]
	and	r1, r2, #255
	ldr	r2, .L622
	strb	r1, [r2, r3]
	ldr	r2, .L622
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L622
	b	.L617
.L616:
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	ungetc
	ldr	r2, .L622
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L622
	b	.L617
.L615:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	beq	.L618
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	ble	.L619
	ldr	r2, .L622
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L622
	b	.L617
.L618:
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldr	r2, [fp, #-8]
	and	r1, r2, #255
	ldr	r2, .L622
	strb	r1, [r2, r3]
	ldr	r3, [fp, #-12]
	ldr	r2, .L622+4
	cmp	r3, r2
	ble	.L619
	ldr	r3, .L622
	add	r3, r3, #4096
	mov	r2, #0
	strb	r2, [r3, #903]
	ldr	r3, .L622+8
	ldr	r3, [r3]
	ldr	r2, .L622
	ldr	r1, .L622+12
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L619:
	ldr	r0, [fp, #-16]
	bl	fgetc
	str	r0, [fp, #-8]
.L613:
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L620
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	ble	.L621
	ldr	r2, .L622
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L622
	b	.L617
.L621:
	mov	r3, #0
.L617:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L623:
	.align	2
.L622:
	.word	buf.8439
	.word	4999
	.word	stderr
	.word	.LC230
	.size	ReadTreeToken, .-ReadTreeToken
	.section	.rodata
	.align	2
.LC231:
	.ascii	"(End of file)\000"
	.align	2
.LC232:
	.ascii	"Tree parse error: unexpected token '%s' -- %s\012\000"
	.text
	.align	2
	.global	ReadTreeError
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReadTreeError, %function
ReadTreeError:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, .L627
	ldr	r0, [r3]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L625
	ldr	r2, [fp, #-12]
	b	.L626
.L625:
	ldr	r2, .L627+4
.L626:
	ldr	r3, [fp, #-8]
	ldr	r1, .L627+8
	bl	fprintf
	mov	r0, #1
	bl	exit
.L628:
	.align	2
.L627:
	.word	stderr
	.word	.LC231
	.word	.LC232
	.size	ReadTreeError, .-ReadTreeError
	.section	.rodata
	.align	2
.LC233:
	.ascii	"parent >= 0\000"
	.align	2
.LC234:
	.ascii	"child >= 0\000"
	.align	2
.LC235:
	.ascii	"parents[child] < 0\000"
	.align	2
.LC236:
	.ascii	"children[parent].nChild < 3\000"
	.text
	.align	2
	.global	ReadTreeAddChild
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReadTreeAddChild, %function
ReadTreeAddChild:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L630
	ldr	r3, .L634
	ldr	r2, .L634+4
	ldr	r1, .L634+8
	ldr	r0, .L634+12
	bl	__assert_fail
.L630:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L631
	ldr	r3, .L634
	ldr	r2, .L634+16
	ldr	r1, .L634+8
	ldr	r0, .L634+20
	bl	__assert_fail
.L631:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L632
	ldr	r3, .L634
	ldr	r2, .L634+24
	ldr	r1, .L634+8
	ldr	r0, .L634+28
	bl	__assert_fail
.L632:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L633
	ldr	r3, .L634
	ldr	r2, .L634+32
	ldr	r1, .L634+8
	ldr	r0, .L634+36
	bl	__assert_fail
.L633:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-20]
	add	r1, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [r2]
	add	r0, r3, #1
	str	r0, [r2]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [fp, #-12]
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L635:
	.align	2
.L634:
	.word	__PRETTY_FUNCTION__.8455
	.word	3160
	.word	.LC134
	.word	.LC233
	.word	3161
	.word	.LC234
	.word	3162
	.word	.LC235
	.word	3163
	.word	.LC236
	.size	ReadTreeAddChild, .-ReadTreeAddChild
	.section	.rodata
	.align	2
.LC237:
	.ascii	"not recognized as a sequence name\000"
	.align	2
.LC238:
	.ascii	"iSeqNonunique >= 0 && iSeqNonunique < unique->nSeq\000"
	.align	2
.LC239:
	.ascii	"iSeqUnique >= 0 && iSeqUnique < unique->nUnique\000"
	.align	2
.LC240:
	.ascii	"Found leaf uniq%d name %s child of %d\012\000"
	.align	2
.LC241:
	.ascii	"Skipped redundant leaf uniq%d name %s\012\000"
	.text
	.align	2
	.global	ReadTreeMaybeAddLeaf
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReadTreeMaybeAddLeaf, %function
ReadTreeMaybeAddLeaf:
	@ args = 8, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-32]
	bl	FindMatch
	str	r0, [fp, #-16]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	HashCount
	mov	r3, r0
	cmp	r3, #1
	beq	.L637
	ldr	r1, [fp, #-28]
	ldr	r0, .L647
	bl	ReadTreeError
.L637:
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	HashFirst
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	blt	.L638
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L644
.L638:
	ldr	r3, .L647+4
	ldr	r2, .L647+8
	ldr	r1, .L647+12
	ldr	r0, .L647+16
	bl	__assert_fail
.L644:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	blt	.L640
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L645
.L640:
	ldr	r3, .L647+4
	ldr	r2, .L647+20
	ldr	r1, .L647+12
	ldr	r0, .L647+24
	bl	__assert_fail
.L645:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L642
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #4]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	ReadTreeAddChild
	ldr	r3, .L647+28
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L646
	ldr	r3, .L647+32
	ldr	r0, [r3]
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-8]
	ldr	r1, .L647+36
	bl	fprintf
	b	.L646
.L642:
	ldr	r3, .L647+28
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L646
	ldr	r3, .L647+32
	ldr	r0, [r3]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-8]
	ldr	r1, .L647+40
	bl	fprintf
.L646:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L648:
	.align	2
.L647:
	.word	.LC237
	.word	__PRETTY_FUNCTION__.8466
	.word	3176
	.word	.LC134
	.word	.LC238
	.word	3178
	.word	.LC239
	.word	verbose
	.word	stderr
	.word	.LC240
	.word	.LC241
	.size	ReadTreeMaybeAddLeaf, .-ReadTreeMaybeAddLeaf
	.section	.rodata
	.align	2
.LC242:
	.ascii	"Removing node %d parent %d\012\000"
	.align	2
.LC243:
	.ascii	"parents[node] >= 0\000"
	.align	2
.LC244:
	.ascii	"oldn < pc->nChild\000"
	.align	2
.LC245:
	.ascii	"nc->nChild<=2\000"
	.align	2
.LC246:
	.ascii	"pc->nChild < 3\000"
	.align	2
.LC247:
	.ascii	"pc->nChild + nc->nChild <= 3\000"
	.align	2
.LC248:
	.ascii	"Repointing parent %d to child %d\012\000"
	.text
	.align	2
	.global	ReadTreeRemove
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReadTreeRemove, %function
ReadTreeRemove:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, .L668
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L650
	ldr	r3, .L668+4
	ldr	r0, [r3]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	ldr	r1, .L668+8
	bl	fprintf
.L650:
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L651
	ldr	r3, .L668+12
	ldr	r2, .L668+16
	ldr	r1, .L668+20
	ldr	r0, .L668+24
	bl	__assert_fail
.L651:
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L652
.L655:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	beq	.L666
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L652:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L655
	b	.L654
.L666:
	nop
.L654:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L656
	ldr	r3, .L668+12
	ldr	r2, .L668+28
	ldr	r1, .L668+20
	ldr	r0, .L668+32
	bl	__assert_fail
.L656:
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	b	.L657
.L658:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	ldr	r2, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r1, [fp, #-12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L657:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L658
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	sub	r2, r3, #1
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L667
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L660
	ldr	r3, .L668+12
	ldr	r2, .L668+36
	ldr	r1, .L668+20
	ldr	r0, .L668+40
	bl	__assert_fail
.L660:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L661
	ldr	r3, .L668+12
	ldr	r2, .L668+44
	ldr	r1, .L668+20
	ldr	r0, .L668+48
	bl	__assert_fail
.L661:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	add	r3, r2, r3
	cmp	r3, #3
	ble	.L662
	ldr	r3, .L668+12
	ldr	r2, .L668+52
	ldr	r1, .L668+20
	ldr	r0, .L668+56
	bl	__assert_fail
.L662:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L663
.L665:
	ldr	r3, .L668
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L664
	ldr	r3, .L668+4
	ldr	r0, [r3]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	ldr	r1, .L668+60
	bl	fprintf
.L664:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	add	r1, r2, #1
	ldr	r3, [fp, #-12]
	str	r1, [r3]
	ldr	r1, [fp, #-8]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r1, [r3, #4]
	ldr	r0, [fp, #-12]
	lsl	r3, r2, #2
	add	r3, r0, r3
	str	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L663:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L665
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
.L667:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L669:
	.align	2
.L668:
	.word	verbose
	.word	stderr
	.word	.LC242
	.word	__PRETTY_FUNCTION__.8473
	.word	3193
	.word	.LC134
	.word	.LC243
	.word	3202
	.word	.LC244
	.word	3213
	.word	.LC245
	.word	3214
	.word	.LC246
	.word	3215
	.word	.LC247
	.word	.LC248
	.size	ReadTreeRemove, .-ReadTreeRemove
	.section	.rodata
	.align	2
.LC249:
	.ascii	"NJ->nSeq == unique->nUnique\000"
	.align	2
.LC250:
	.ascii	"No '(' at start\000"
	.align	2
.LC251:
	.ascii	"while reading parentheses\000"
	.align	2
.LC252:
	.ascii	"new < maxnodes\000"
	.align	2
.LC253:
	.ascii	"Added internal child %d of %d, stack size increase "
	.ascii	"to %d\012\000"
	.align	2
.LC254:
	.ascii	"stack_size < maxnodes\000"
	.align	2
.LC255:
	.ascii	"unbalanced parentheses\000"
	.align	2
.LC256:
	.ascii	"unexpected '(' after ')'\000"
	.align	2
.LC257:
	.ascii	"not recognized as a branch length\000"
	.align	2
.LC258:
	.ascii	"Up to nUp=%d stack size %d at %d\012\000"
	.align	2
.LC259:
	.ascii	"too many ')'\000"
	.align	2
.LC260:
	.ascii	"Warning while parsing tree: non-numeric label %s fo"
	.ascii	"r internal node\012\000"
	.align	2
.LC261:
	.ascii	"unexpected token\000"
	.align	2
.LC262:
	.ascii	"Alignment sequence %d (unique %d) absent from input"
	.ascii	" tree\012The starting tree (the argument to -intree"
	.ascii	") must include all sequences in the alignment!\012\000"
	.align	2
.LC263:
	.ascii	"Changed root from %d to %d\012\000"
	.align	2
.LC264:
	.ascii	"Added %d to stack\012\000"
	.align	2
.LC265:
	.ascii	"child >= 0 && child < maxnodes\000"
	.align	2
.LC266:
	.ascii	"Simplfied node %d has parent %d nchild %d\012\000"
	.align	2
.LC267:
	.ascii	"node == root || children[node].nChild > 1\000"
	.align	2
.LC268:
	.ascii	"Map %d to %d (parent %d nchild %d)\012\000"
	.align	2
.LC269:
	.ascii	"children[node].child[i] >= 0 && children[node].chil"
	.ascii	"d[i] < maxnodes\000"
	.align	2
.LC270:
	.ascii	"c->child[j] >= 0 && c->child[j] < NJ->maxnode && NJ"
	.ascii	"->parent[c->child[j]] == i\000"
	.align	2
.LC271:
	.ascii	"NJ->parent[NJ->root] < 0\000"
	.text
	.align	2
	.global	ReadTree
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReadTree, %function
ReadTree:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #120
	str	r0, [fp, #-104]
	str	r1, [fp, #-108]
	str	r2, [fp, #-112]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	beq	.L671
	ldr	r3, .L759
	ldr	r2, .L759+4
	ldr	r1, .L759+8
	ldr	r0, .L759+12
	bl	__assert_fail
.L671:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #4
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-100]
	add	r2, r3, #1
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L672
.L673:
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L672:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L673
	mov	r3, #1
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-96]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-84]
	mov	r3, #0
	str	r3, [fp, #-80]
	ldr	r0, [fp, #-116]
	bl	ReadTreeToken
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L674
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #40
	beq	.L676
.L674:
	ldr	r1, [fp, #-44]
	ldr	r0, .L759+16
	bl	ReadTreeError
	b	.L676
.L703:
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	ble	.L677
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #40
	bne	.L678
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
	b	.L676
.L678:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #44
	beq	.L680
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #59
	beq	.L680
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	beq	.L680
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #41
	bne	.L682
.L680:
	ldr	r1, [fp, #-44]
	ldr	r0, .L759+20
	bl	ReadTreeError
	b	.L676
.L685:
	ldr	r3, [fp, #-100]
	add	r2, r3, #1
	str	r2, [fp, #-100]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L683
	ldr	r3, .L759
	ldr	r2, .L759+24
	ldr	r1, .L759+8
	ldr	r0, .L759+28
	bl	__assert_fail
.L683:
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-56]
	ldr	r1, [fp, #-40]
	bl	ReadTreeAddChild
	ldr	r3, .L759+32
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L684
	ldr	r3, .L759+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-40]
	ldr	r1, .L759+40
	bl	fprintf
.L684:
	ldr	r3, [fp, #-88]
	add	r2, r3, #1
	str	r2, [fp, #-88]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L682
	ldr	r3, .L759
	ldr	r2, .L759+44
	ldr	r1, .L759+8
	ldr	r0, .L759+48
	bl	__assert_fail
.L682:
	ldr	r3, [fp, #-84]
	sub	r2, r3, #1
	str	r2, [fp, #-84]
	cmp	r3, #0
	bgt	.L685
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-52]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-56]
	str	r3, [sp]
	ldr	r3, [fp, #-108]
	ldr	r2, [fp, #-112]
	ldr	r1, [fp, #-44]
	bl	ReadTreeMaybeAddLeaf
	b	.L676
.L677:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	ble	.L686
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #59
	bne	.L687
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	beq	.L758
	ldr	r1, [fp, #-44]
	ldr	r0, .L759+52
	bl	ReadTreeError
	b	.L676
.L687:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #41
	bne	.L690
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
	b	.L676
.L690:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #40
	bne	.L691
	ldr	r1, [fp, #-44]
	ldr	r0, .L759+56
	bl	ReadTreeError
	b	.L676
.L691:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	bne	.L692
	ldr	r0, [fp, #-116]
	bl	ReadTreeToken
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L693
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	beq	.L676
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	bne	.L676
.L693:
	ldr	r1, [fp, #-44]
	ldr	r0, .L759+60
	bl	ReadTreeError
	b	.L676
.L692:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #44
	bne	.L694
	b	.L695
.L697:
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	str	r3, [fp, #-88]
	ldr	r3, .L759+32
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L696
	ldr	r3, .L759+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [sp]
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-80]
	ldr	r1, .L759+64
	bl	fprintf
.L696:
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bgt	.L695
	ldr	r1, [fp, #-44]
	ldr	r0, .L759+68
	bl	ReadTreeError
.L695:
	ldr	r3, [fp, #-80]
	sub	r2, r3, #1
	str	r2, [fp, #-80]
	cmp	r3, #0
	bgt	.L697
	mov	r3, #0
	str	r3, [fp, #-80]
	b	.L676
.L694:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	beq	.L676
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	bne	.L676
	ldr	r3, .L759+36
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	ldr	r1, .L759+72
	mov	r0, r3
	bl	fprintf
	b	.L676
.L686:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #40
	bne	.L698
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L676
.L698:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #41
	bne	.L699
	mov	r3, #1
	str	r3, [fp, #-80]
	b	.L676
.L699:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	bne	.L700
	ldr	r0, [fp, #-116]
	bl	ReadTreeToken
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L701
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	beq	.L676
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	bne	.L676
.L701:
	ldr	r1, [fp, #-44]
	ldr	r0, .L759+60
	bl	ReadTreeError
	b	.L676
.L700:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #44
	beq	.L676
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #59
	bne	.L702
	ldr	r1, [fp, #-44]
	ldr	r0, .L759+76
	bl	ReadTreeError
	b	.L676
.L702:
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-52]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-56]
	str	r3, [sp]
	ldr	r3, [fp, #-108]
	ldr	r2, [fp, #-112]
	ldr	r1, [fp, #-44]
	bl	ReadTreeMaybeAddLeaf
.L676:
	ldr	r0, [fp, #-116]
	bl	ReadTreeToken
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L703
	b	.L689
.L758:
	nop
.L689:
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L704
.L706:
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L705
	ldr	r3, .L759+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-108]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-92]
	ldr	r1, .L759+80
	bl	fprintf
	mov	r0, #1
	bl	exit
.L705:
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L704:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	blt	.L706
.L716:
	mov	r3, #0
	str	r3, [fp, #-76]
	mov	r3, #1
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-96]
	str	r2, [r3]
	b	.L707
.L715:
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L707
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L708
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	beq	.L709
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-56]
	bl	ReadTreeRemove
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	b	.L707
.L709:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	bne	.L707
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L707
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	ldr	r3, .L759+32
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L710
	ldr	r3, .L759+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-96]
	ldr	r1, .L759+84
	bl	fprintf
.L710:
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-88]
	add	r2, r3, #1
	str	r2, [fp, #-88]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	b	.L707
.L708:
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L711
.L714:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L712
	ldr	r3, .L759
	ldr	r2, .L759+88
	ldr	r1, .L759+8
	ldr	r0, .L759+48
	bl	__assert_fail
.L712:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r1, r2, r3
	ldr	r3, [fp, #-88]
	add	r2, r3, #1
	str	r2, [fp, #-88]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r2, r2, r3
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	str	r3, [r2]
	ldr	r3, .L759+32
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L713
	ldr	r3, .L759+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L759+92
	bl	fprintf
.L713:
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L711:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-72]
	cmp	r2, r3
	blt	.L714
.L707:
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bgt	.L715
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	bgt	.L716
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L717
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L718
.L722:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	blt	.L719
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L755
.L719:
	ldr	r3, .L759
	ldr	r2, .L759+96
	ldr	r1, .L759+8
	ldr	r0, .L759+100
	bl	__assert_fail
.L755:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L721
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-56]
	bl	ReadTreeRemove
	b	.L717
.L721:
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L718:
	ldr	r3, [fp, #-92]
	cmp	r3, #1
	ble	.L722
.L717:
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L723
.L725:
	ldr	r3, .L759+32
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L724
	ldr	r3, .L759+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [sp]
	mov	r3, r1
	ldr	r2, [fp, #-92]
	ldr	r1, .L759+104
	bl	fprintf
.L724:
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L723:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L725
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L726
.L727:
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-92]
	str	r2, [r3]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L726:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	blt	.L727
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-92]
	b	.L728
.L729:
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L728:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L729
	mov	r3, #1
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-96]
	str	r2, [r3]
	b	.L730
.L735:
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L730
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	beq	.L731
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L731
	ldr	r3, .L759
	ldr	r2, .L759+108
	ldr	r1, .L759+8
	ldr	r0, .L759+112
	bl	__assert_fail
.L731:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #28]
	add	r1, r3, #1
	ldr	r2, [fp, #-104]
	str	r1, [r2, #28]
	ldr	r2, [fp, #-16]
	lsl	r2, r2, #2
	ldr	r1, [fp, #-32]
	add	r2, r1, r2
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L732
.L734:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L733
	ldr	r3, .L759
	ldr	r2, .L759+116
	ldr	r1, .L759+8
	ldr	r0, .L759+48
	bl	__assert_fail
.L733:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r1, r2, r3
	ldr	r3, [fp, #-88]
	add	r2, r3, #1
	str	r2, [fp, #-88]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	str	r3, [r2]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L732:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	blt	.L734
.L730:
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bgt	.L735
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L736
.L738:
	ldr	r3, .L759+32
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L737
	ldr	r3, .L759+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	ip, [r3]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-92]
	lsl	r2, r2, #4
	ldr	r1, [fp, #-52]
	add	r2, r1, r2
	ldr	r2, [r2]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, ip
	ldr	r2, [fp, #-92]
	ldr	r1, .L759+120
	bl	fprintf
.L737:
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L736:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L738
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	str	r2, [r3, #80]
	mov	r3, #0
	str	r3, [fp, #-68]
	b	.L739
.L745:
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	blt	.L740
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-104]
	ldr	r1, [r3, #88]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L741
.L744:
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	blt	.L742
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	bgt	.L756
.L742:
	ldr	r3, .L759
	ldr	r2, .L759+124
	ldr	r1, .L759+8
	ldr	r0, .L759+128
	bl	__assert_fail
.L756:
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-104]
	ldr	r1, [r2, #88]
	ldr	r2, [fp, #-20]
	lsl	r2, r2, #4
	add	r1, r1, r2
	ldr	r2, [r3]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #4]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L741:
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	blt	.L744
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L740
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldr	r3, [r3]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r2, r2, r3
	ldr	r3, [fp, #-104]
	ldr	r1, [r3, #84]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
.L740:
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L739:
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L745
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L746
.L751:
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L747
.L750:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	blt	.L748
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #28]
	cmp	r2, r3
	bge	.L748
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #84]
	ldr	r1, [fp, #-24]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	beq	.L757
.L748:
	ldr	r3, .L759
	ldr	r2, .L759+132
	ldr	r1, .L759+8
	ldr	r0, .L759+136
	bl	__assert_fail
.L757:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L747:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-64]
	cmp	r2, r3
	blt	.L750
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L746:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	blt	.L751
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #80]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L752
	ldr	r3, .L759
	ldr	r2, .L759+140
	ldr	r1, .L759+8
	ldr	r0, .L759+144
	bl	__assert_fail
.L760:
	.align	2
.L759:
	.word	__PRETTY_FUNCTION__.8495
	.word	3231
	.word	.LC134
	.word	.LC249
	.word	.LC250
	.word	.LC251
	.word	3271
	.word	.LC252
	.word	verbose
	.word	stderr
	.word	.LC253
	.word	3277
	.word	.LC254
	.word	.LC255
	.word	.LC256
	.word	.LC257
	.word	.LC258
	.word	.LC259
	.word	.LC260
	.word	.LC261
	.word	.LC262
	.word	.LC263
	.word	3372
	.word	.LC264
	.word	3386
	.word	.LC265
	.word	.LC266
	.word	3410
	.word	.LC267
	.word	3413
	.word	.LC268
	.word	3431
	.word	.LC269
	.word	3444
	.word	.LC270
	.word	3446
	.word	.LC271
	.word	-1074790400
.L752:
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	myfree
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	myfree
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-52]
	bl	myfree
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-56]
	bl	myfree
	str	r0, [fp, #-56]
	ldr	r0, [fp, #-104]
	bl	InitTraversal
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-68]
	b	.L753
.L754:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	blt	.L753
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	beq	.L753
	mov	r2, #0
	ldr	r3, .L759+148
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-104]
	bl	SetProfile
.L753:
	mov	r3, #0
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-68]
	bl	TraversePostorder
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bge	.L754
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-28]
	bl	FreeTraversal
	str	r0, [fp, #-28]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ReadTree, .-ReadTree
	.section	.rodata
	.align	2
.LC272:
	.ascii	"%d\000"
	.align	2
.LC273:
	.ascii	":%.4f\000"
	.align	2
.LC274:
	.ascii	")%d\000"
	.align	2
.LC275:
	.ascii	";\012\000"
	.text
	.align	2
	.global	PrintNJInternal
	.syntax unified
	.arm
	.fpu softvfp
	.type	PrintNJInternal, %function
PrintNJInternal:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r3, r2
	strb	r3, [fp, #-45]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L772
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-24]
	mov	r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #80]
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L764
.L771:
	ldr	r3, [fp, #-32]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bge	.L765
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-44]
	ldr	r1, [r3, #84]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	beq	.L766
	ldr	r1, [fp, #-40]
	mov	r0, #44
	bl	fputc
.L766:
	ldr	r2, [fp, #-16]
	ldr	r1, .L773
	ldr	r0, [fp, #-40]
	bl	fprintf
	ldrb	r3, [fp, #-45]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L764
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L773+4
	ldr	r0, [fp, #-40]
	bl	fprintf
	b	.L764
.L765:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L767
	ldr	r2, [fp, #-16]
	ldr	r1, .L773+8
	ldr	r0, [fp, #-40]
	bl	fprintf
	ldrb	r3, [fp, #-45]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L764
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L773+4
	ldr	r0, [fp, #-40]
	bl	fprintf
	b	.L764
.L767:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	beq	.L768
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-44]
	ldr	r1, [r3, #84]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	beq	.L768
	ldr	r1, [fp, #-40]
	mov	r0, #44
	bl	fputc
.L768:
	ldr	r1, [fp, #-40]
	mov	r0, #40
	bl	fputc
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3, #4]
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	b	.L769
.L770:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r2, r2, r3
	ldr	r1, [fp, #-8]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	str	r3, [r2]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
.L769:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L770
.L764:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bgt	.L771
	ldr	r3, [fp, #-40]
	mov	r2, #2
	mov	r1, #1
	ldr	r0, .L773+12
	bl	fwrite
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	myfree
	str	r0, [fp, #-24]
	b	.L761
.L772:
	nop
.L761:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L774:
	.align	2
.L773:
	.word	.LC272
	.word	.LC273
	.word	.LC274
	.word	.LC275
	.size	PrintNJInternal, .-PrintNJInternal
	.section	.rodata
	.align	2
.LC276:
	.ascii	"first >= 0 && first < unique->nSeq\000"
	.align	2
.LC277:
	.ascii	"('%s':0.0\000"
	.align	2
.LC278:
	.ascii	"(%s:0.0\000"
	.align	2
.LC279:
	.ascii	"iName < unique->nSeq\000"
	.align	2
.LC280:
	.ascii	",'%s':0.0\000"
	.align	2
.LC281:
	.ascii	",%s:0.0\000"
	.align	2
.LC282:
	.ascii	");\012\000"
	.align	2
.LC283:
	.ascii	"'%s'\000"
	.align	2
.LC284:
	.ascii	":%.5f\000"
	.align	2
.LC285:
	.ascii	")%.3f:%.5f\000"
	.align	2
.LC286:
	.ascii	"):%.5f\000"
	.text
	.align	2
	.global	PrintNJ
	.syntax unified
	.arm
	.fpu softvfp
	.type	PrintNJ, %function
PrintNJ:
	@ args = 8, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #72
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L776
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #8]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L776
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #8]
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	blt	.L777
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L810
.L777:
	ldr	r3, .L812
	ldr	r2, .L812+4
	ldr	r1, .L812+8
	ldr	r0, .L812+12
	bl	__assert_fail
.L810:
	ldrb	r3, [fp, #8]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L779
	ldr	r1, .L812+16
	b	.L780
.L779:
	ldr	r1, .L812+20
.L780:
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r0, [fp, #-64]
	bl	fprintf
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	b	.L781
.L785:
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L782
	ldr	r3, .L812
	ldr	r2, .L812+24
	ldr	r1, .L812+8
	ldr	r0, .L812+28
	bl	__assert_fail
.L782:
	ldrb	r3, [fp, #8]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L783
	ldr	r1, .L812+32
	b	.L784
.L783:
	ldr	r1, .L812+36
.L784:
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r0, [fp, #-64]
	bl	fprintf
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-56]
.L781:
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	bge	.L785
	ldr	r3, [fp, #-64]
	mov	r2, #3
	mov	r1, #1
	ldr	r0, .L812+40
	bl	fwrite
	b	.L775
.L776:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-36]
	mov	r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #80]
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L787
.L809:
	ldr	r3, [fp, #-52]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bge	.L788
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-68]
	ldr	r1, [r3, #84]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	beq	.L789
	ldr	r1, [fp, #-64]
	mov	r0, #44
	bl	fputc
.L789:
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	blt	.L790
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L811
.L790:
	ldr	r3, .L812
	ldr	r2, .L812+44
	ldr	r1, .L812+8
	ldr	r0, .L812+12
	bl	__assert_fail
.L811:
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L792
	ldrb	r3, [fp, #8]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L793
	ldr	r1, .L812+48
	b	.L794
.L793:
	ldr	r1, .L812+52
.L794:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r0, [fp, #-64]
	bl	fprintf
	b	.L795
.L792:
	ldrb	r3, [fp, #8]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L796
	ldr	r1, .L812+16
	b	.L797
.L796:
	ldr	r1, .L812+20
.L797:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r0, [fp, #-64]
	bl	fprintf
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	b	.L798
.L802:
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L799
	ldr	r3, .L812
	ldr	r2, .L812+56
	ldr	r1, .L812+8
	ldr	r0, .L812+28
	bl	__assert_fail
.L799:
	ldrb	r3, [fp, #8]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L800
	ldr	r1, .L812+32
	b	.L801
.L800:
	ldr	r1, .L812+36
.L801:
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r0, [fp, #-64]
	bl	fprintf
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-48]
.L798:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bge	.L802
	ldr	r1, [fp, #-64]
	mov	r0, #41
	bl	fputc
.L795:
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L812+60
	ldr	r0, [fp, #-64]
	bl	fprintf
	b	.L787
.L788:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L803
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bne	.L804
	ldr	r1, [fp, #-64]
	mov	r0, #41
	bl	fputc
	b	.L787
.L804:
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L805
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #96]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r3, r5
	ldr	r1, .L812+64
	ldr	r0, [fp, #-64]
	bl	fprintf
	b	.L787
.L805:
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L812+68
	ldr	r0, [fp, #-64]
	bl	fprintf
	b	.L787
.L803:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	beq	.L806
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-68]
	ldr	r1, [r3, #84]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	beq	.L806
	ldr	r1, [fp, #-64]
	mov	r0, #44
	bl	fputc
.L806:
	ldr	r1, [fp, #-64]
	mov	r0, #40
	bl	fputc
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	sub	r3, r3, #1
	str	r3, [fp, #-44]
	b	.L807
.L808:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r2, r2, r3
	ldr	r1, [fp, #-20]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	str	r3, [r2]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-44]
.L807:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bge	.L808
.L787:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bgt	.L809
	ldr	r3, [fp, #-64]
	mov	r2, #2
	mov	r1, #1
	ldr	r0, .L812+72
	bl	fwrite
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-36]
	bl	myfree
	str	r0, [fp, #-36]
.L775:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L813:
	.align	2
.L812:
	.word	__PRETTY_FUNCTION__.8610
	.word	3521
	.word	.LC134
	.word	.LC276
	.word	.LC277
	.word	.LC278
	.word	3525
	.word	.LC279
	.word	.LC280
	.word	.LC281
	.word	.LC282
	.word	3549
	.word	.LC283
	.word	.LC144
	.word	3557
	.word	.LC284
	.word	.LC285
	.word	.LC286
	.word	.LC275
	.size	PrintNJ, .-PrintNJ
	.section	.rodata
	.align	2
.LC287:
	.ascii	"Error reading header line\012\000"
	.align	2
.LC288:
	.ascii	"'\011\015\012\000"
	.align	2
.LC289:
	.ascii	"(),: \011\015\012\000"
	.align	2
.LC290:
	.ascii	" \011\015\012\000"
	.align	2
.LC291:
	.ascii	"out-seqs[nSeq-1] == nKeep + nOld\000"
	.align	2
.LC292:
	.ascii	"No sequence data for last entry %s\012\000"
	.align	2
.LC293:
	.ascii	"Empty header line followed by EOF\012\000"
	.align	2
.LC294:
	.ascii	"%d%d\000"
	.align	2
.LC295:
	.ascii	"Error parsing header line:%s\012\000"
	.align	2
.LC296:
	.ascii	"No name in phylip line %s\000"
	.align	2
.LC297:
	.ascii	"No sequence in phylip line %s\000"
	.align	2
.LC298:
	.ascii	"No empty line between sequence blocks (is the seque"
	.ascii	"nce count wrong?)\012\000"
	.align	2
.LC299:
	.ascii	"Wrong name in phylip line %s\012Expected %s\012\000"
	.align	2
.LC300:
	.ascii	"Too many characters (expected %d) for sequence name"
	.ascii	"d %s\012So far have:\012%s\012\000"
	.align	2
.LC301:
	.ascii	"Read iSeq %d name %s seqsofar %s\012\000"
	.align	2
.LC302:
	.ascii	"Wrong number of sequences: expected %d\012\000"
	.align	2
.LC303:
	.ascii	"Wrong number of characters for %s: expected %d but "
	.ascii	"have %d instead.\012This sequence may be truncated,"
	.ascii	" or another sequence may be too long.\012\000"
	.align	2
.LC304:
	.ascii	"Warning! Found \".\" character(s). These are treate"
	.ascii	"d as gaps\012\000"
	.align	2
.LC305:
	.ascii	"Error reading input file\012\000"
	.align	2
.LC306:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ReadAlignment
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReadAlignment, %function
ReadAlignment:
	@ args = 0, pretend = 0, frame = 5120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #5120
	sub	sp, sp, #8
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r0, [r3, #-1020]
	mov	r2, r1
	sub	r3, fp, #4096
	sub	r3, r3, #12
	strb	r2, [r3, #-1021]
	ldr	r3, .L903+108
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1012]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1008]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1004]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1000]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3, #-908]
	sub	r3, r3, #904
	ldr	r2, .L903
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r2, [r2, #-1020]
	ldr	r1, .L903+80
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L815
	ldr	r3, .L903+100
	ldr	r3, [r3]
	mov	r2, #26
	mov	r1, #1
	ldr	r0, .L903+4
	bl	fwrite
	mov	r0, #1
	bl	exit
.L815:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #100
	str	r3, [r2, #-996]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldrb	r3, [r3, #-908]	@ zero_extendqisi2
	cmp	r3, #62
	bne	.L816
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldrb	r3, [r3, #-1021]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L817
	ldr	r3, .L903+8
	b	.L818
.L817:
	ldr	r3, .L903+12
.L818:
	sub	r2, fp, #4096
	sub	r2, r2, #12
	str	r3, [r2, #-932]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	ldr	r3, .L903+16
	str	r3, [r2, #-928]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-996]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	mov	r4, r2
	mov	r0, r3
	bl	mymalloc
	str	r0, [r4, #-1000]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-996]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	mov	r4, r2
	mov	r0, r3
	bl	mymalloc
	str	r0, [r4, #-1004]
.L848:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldrb	r3, [r3, #-908]	@ zero_extendqisi2
	cmp	r3, #62
	bne	.L819
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	add	r3, r3, #1
	str	r3, [r2, #-992]
	b	.L820
.L827:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-932]
	str	r3, [r2, #-988]
	b	.L821
.L824:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-992]
	ldrb	r2, [r3]	@ zero_extendqisi2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-988]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L822
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-992]
	mov	r2, #0
	strb	r2, [r3]
	b	.L823
.L822:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-988]
	add	r3, r3, #1
	str	r3, [r2, #-988]
.L821:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-988]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L824
.L823:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-992]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L899
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-992]
	add	r3, r3, #1
	str	r3, [r2, #-992]
.L820:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-992]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L827
	b	.L826
.L899:
	nop
.L826:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	add	r3, r3, #1
	sub	r2, fp, #4096
	sub	r2, r2, #12
	str	r3, [r2, #-1012]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-996]
	cmp	r2, r3
	bge	.L828
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-996]
	lsl	r3, r3, #1
	str	r3, [r2, #-920]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-996]
	lsl	r1, r3, #2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-920]
	lsl	r2, r3, #2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r0, r3
	mov	r3, #0
	ldr	r0, [r0, #-1000]
	bl	myrealloc
	str	r0, [r4, #-1000]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-996]
	lsl	r1, r3, #2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-920]
	lsl	r2, r3, #2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r0, r3
	mov	r3, #0
	ldr	r0, [r0, #-1004]
	bl	myrealloc
	str	r0, [r4, #-1004]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-920]
	str	r3, [r2, #-996]
.L828:
	sub	r4, fp, #4992
	sub	r4, r4, #12
	sub	r4, r4, #12
	add	r4, r4, #1
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r0, r3
	bl	strlen
	mov	r1, r0
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r5, r2, r3
	mov	r0, r4
	bl	mymemdup
	mov	r3, r0
	str	r3, [r5]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	b	.L829
.L819:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-984]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	str	r3, [r2, #-980]
	b	.L830
.L836:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	str	r3, [r2, #-976]
	b	.L831
.L834:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-980]
	ldrb	r2, [r3]	@ zero_extendqisi2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-976]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L900
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-976]
	add	r3, r3, #1
	str	r3, [r2, #-976]
.L831:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-976]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L834
	b	.L833
.L900:
	nop
.L833:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-980]
	ldrb	r2, [r3]	@ zero_extendqisi2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-976]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L835
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-984]
	add	r3, r3, #1
	str	r3, [r2, #-984]
.L835:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-980]
	add	r3, r3, #1
	str	r3, [r2, #-980]
.L830:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-980]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L836
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L837
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	b	.L838
.L837:
	mov	r3, #0
.L838:
	sub	r2, fp, #4096
	sub	r2, r2, #12
	str	r3, [r2, #-924]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r0, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r1, [r3, #-924]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r2, [r2, #-924]
	ldr	r3, [r3, #-984]
	add	r3, r2, r3
	add	r3, r3, #1
	mov	ip, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r4, r2, r3
	mov	r3, #0
	mov	r2, ip
	bl	myrealloc
	mov	r3, r0
	str	r3, [r4]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r2, [r2, #-924]
	ldr	r3, [r3, #-984]
	add	r2, r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1008]
	cmp	r2, r3
	ble	.L839
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r2, [r2, #-924]
	ldr	r3, [r3, #-984]
	add	r3, r2, r3
	sub	r2, fp, #4096
	sub	r2, r2, #12
	str	r3, [r2, #-1008]
.L839:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-924]
	sub	r1, fp, #4096
	sub	r1, r1, #12
	add	r3, r2, r3
	str	r3, [r1, #-972]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	str	r3, [r2, #-980]
	b	.L840
.L846:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	str	r3, [r2, #-976]
	b	.L841
.L844:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-980]
	ldrb	r2, [r3]	@ zero_extendqisi2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-976]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L901
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-976]
	add	r3, r3, #1
	str	r3, [r2, #-976]
.L841:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-976]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L844
	b	.L843
.L901:
	nop
.L843:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-980]
	ldrb	r2, [r3]	@ zero_extendqisi2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-976]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L845
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-980]
	ldrb	r2, [r3]	@ zero_extendqisi2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-972]
	strb	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-972]
	add	r3, r3, #1
	str	r3, [r2, #-972]
.L845:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-980]
	add	r3, r3, #1
	str	r3, [r2, #-980]
.L840:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-980]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L846
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-972]
	sub	r2, r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r1, [r1, #-984]
	ldr	r3, [r3, #-924]
	add	r3, r1, r3
	cmp	r2, r3
	beq	.L847
	ldr	r3, .L903+20
	ldr	r2, .L903+24
	ldr	r1, .L903+28
	ldr	r0, .L903+32
	bl	__assert_fail
.L847:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-972]
	mov	r2, #0
	strb	r2, [r3]
.L829:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r2, [r2, #-1020]
	ldr	r1, .L903+80
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L848
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L849
	ldr	r3, .L903+100
	ldr	r0, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L903+36
	bl	fprintf
	mov	r0, #1
	bl	exit
.L849:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-996]
	lsl	r1, r3, #2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	lsl	r2, r3, #2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r0, r3
	mov	r3, #0
	ldr	r0, [r0, #-1004]
	bl	myrealloc
	str	r0, [r4, #-1004]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-996]
	lsl	r1, r3, #2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	lsl	r2, r3, #2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r0, r3
	mov	r3, #0
	ldr	r0, [r0, #-1000]
	bl	myrealloc
	str	r0, [r4, #-1000]
	b	.L850
.L816:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldrb	r3, [r3, #-908]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L851
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldrb	r3, [r3, #-908]	@ zero_extendqisi2
	cmp	r3, #13
	bne	.L852
.L851:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r2, [r2, #-1020]
	ldr	r1, .L903+80
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L852
	ldr	r3, .L903+100
	ldr	r3, [r3]
	mov	r2, #34
	mov	r1, #1
	ldr	r0, .L903+40
	bl	fwrite
	mov	r0, #1
	bl	exit
.L852:
	sub	r3, fp, #5056
	sub	r3, r3, #12
	sub	r3, r3, #48
	sub	r2, fp, #5056
	sub	r2, r2, #12
	sub	r2, r2, #52
	sub	r0, fp, #4992
	sub	r0, r0, #12
	sub	r0, r0, #12
	ldr	r1, .L903+44
	bl	__isoc99_sscanf
	mov	r3, r0
	cmp	r3, #2
	bne	.L853
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	cmp	r3, #0
	ble	.L853
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1008]
	cmp	r3, #0
	bgt	.L854
.L853:
	ldr	r3, .L903+100
	ldr	r0, [r3]
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r2, r3
	ldr	r1, .L903+48
	bl	fprintf
	mov	r0, #1
	bl	exit
.L854:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	mov	r4, r2
	mov	r0, r3
	bl	mymalloc
	str	r0, [r4, #-1004]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	mov	r4, r2
	mov	r0, r3
	bl	mymalloc
	str	r0, [r4, #-1000]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	str	r3, [r2, #-996]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-968]
	b	.L855
.L856:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-968]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1008]
	add	r3, r3, #1
	mov	r1, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-968]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r4, r2, r3
	mov	r0, r1
	bl	mymalloc
	mov	r3, r0
	str	r3, [r4]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-968]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	strb	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-968]
	add	r3, r3, #1
	str	r3, [r2, #-968]
.L855:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-968]
	cmp	r2, r3
	blt	.L856
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-964]
	b	.L857
.L884:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldrb	r3, [r3, #-908]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L858
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldrb	r3, [r3, #-908]	@ zero_extendqisi2
	cmp	r3, #13
	bne	.L859
.L858:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-964]
	cmp	r2, r3
	beq	.L860
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	cmp	r3, #0
	bne	.L859
.L860:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-964]
	b	.L857
.L859:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-960]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldrb	r3, [r3, #-908]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L863
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L862
	ldr	r3, .L903+100
	ldr	r0, [r3]
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r2, r3
	ldr	r1, .L903+52
	bl	fprintf
	mov	r0, #1
	bl	exit
.L865:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r3, #1
	str	r3, [r2, #-960]
.L863:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L864
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L864
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L865
.L864:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L866
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	cmp	r3, #0
	bne	.L867
.L866:
	ldr	r3, .L903+100
	ldr	r0, [r3]
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r2, r3
	ldr	r1, .L903+56
	bl	fprintf
	mov	r0, #1
	bl	exit
.L867:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-964]
	cmp	r2, r3
	blt	.L868
	ldr	r3, .L903+100
	ldr	r3, [r3]
	mov	r2, #69
	mov	r1, #1
	ldr	r0, .L903+60
	bl	fwrite
	mov	r0, #1
	bl	exit
.L868:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L869
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r3, #1
	mov	r1, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r4, r2, r3
	mov	r0, r1
	bl	mymalloc
	mov	r3, r0
	str	r3, [r4]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-956]
	b	.L870
.L904:
	.align	2
.L903:
	.word	4996
	.word	.LC287
	.word	.LC288
	.word	.LC289
	.word	.LC290
	.word	__PRETTY_FUNCTION__.8675
	.word	3663
	.word	.LC134
	.word	.LC291
	.word	.LC292
	.word	.LC293
	.word	.LC294
	.word	.LC295
	.word	.LC296
	.word	.LC297
	.word	.LC298
	.word	.LC299
	.word	.LC300
	.word	verbose
	.word	.LC301
	.word	5000
	.word	.LC302
	.word	.LC303
	.word	nCodes
	.word	.LC304
	.word	stderr
	.word	.LC305
	.word	.LC306
.L871:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-956]
	add	r3, r2, r3
	sub	r2, fp, #4096
	sub	r2, r2, #12
	mov	r1, r2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-956]
	add	r2, r1, r2
	sub	r2, r2, #908
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-956]
	add	r3, r3, #1
	str	r3, [r2, #-956]
.L870:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r2, [r2, #-956]
	ldr	r3, [r3, #-960]
	cmp	r2, r3
	blt	.L871
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	b	.L862
.L869:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-948]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-952]
	b	.L872
.L875:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-952]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-952]
	add	r3, r1, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L873
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-948]
	b	.L874
.L873:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-952]
	add	r3, r3, #1
	str	r3, [r2, #-952]
.L872:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r2, [r2, #-952]
	ldr	r3, [r3, #-960]
	cmp	r2, r3
	blt	.L875
.L874:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-948]
	cmp	r3, #0
	beq	.L876
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L862
.L876:
	ldr	r3, .L903+100
	ldr	r0, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	r3, [r3]
	sub	r2, fp, #4992
	sub	r2, r2, #12
	sub	r2, r2, #12
	ldr	r1, .L903+64
	bl	fprintf
	mov	r0, #1
	bl	exit
.L862:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	sub	r2, fp, #4096
	sub	r2, r2, #12
	str	r3, [r2, #-944]
	b	.L877
.L881:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #32
	beq	.L878
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1008]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-944]
	cmp	r2, r3
	blt	.L879
	ldr	r3, .L903+100
	ldr	r0, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r1, [r3, #-1008]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	ip, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [sp]
	mov	r3, ip
	mov	r2, r1
	ldr	r1, .L903+68
	bl	fprintf
	mov	r0, #1
	bl	exit
.L879:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	toupper
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-944]
	sub	r1, fp, #4096
	sub	r1, r1, #12
	mov	ip, r1
	add	r1, r3, #1
	str	r1, [ip, #-944]
	add	r3, r2, r3
	and	r2, r0, #255
	strb	r2, [r3]
.L878:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r3, #1
	str	r3, [r2, #-960]
.L877:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L880
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-960]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L881
.L880:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-944]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L903+72
	ldr	r3, [r3]
	cmp	r3, #10
	ble	.L882
	ldr	r3, .L903+100
	ldr	r0, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	r1, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	str	r3, [sp]
	mov	r3, r1
	ldr	r2, [r2, #-964]
	ldr	r1, .L903+76
	bl	fprintf
.L882:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	add	r3, r3, #1
	str	r3, [r2, #-964]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-964]
	cmp	r2, r3
	bne	.L857
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1000]
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1008]
	cmp	r3, r2
	beq	.L902
.L857:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r2, [r2, #-1020]
	ldr	r1, .L903+80
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L884
	b	.L883
.L902:
	nop
.L883:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-964]
	cmp	r2, r3
	beq	.L850
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-964]
	cmp	r3, #0
	beq	.L850
	ldr	r3, .L903+100
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1012]
	ldr	r1, .L903+84
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L850:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-940]
	b	.L885
.L887:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-940]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	sub	r2, fp, #4096
	sub	r2, r2, #12
	str	r3, [r2, #-912]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1008]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-912]
	cmp	r2, r3
	beq	.L886
	ldr	r3, .L903+100
	ldr	r0, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-940]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r1, [r3, #-1008]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-912]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L903+88
	bl	fprintf
	mov	r0, #1
	bl	exit
.L886:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-940]
	add	r3, r3, #1
	str	r3, [r2, #-940]
.L885:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-940]
	cmp	r2, r3
	blt	.L887
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, #0
	strb	r2, [r3, #-1013]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-940]
	b	.L888
.L894:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-940]
	lsl	r3, r3, #2
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	add	r3, r2, r3
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r3, [r3]
	str	r3, [r2, #-936]
	b	.L889
.L893:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-936]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #46
	bne	.L890
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, #1
	strb	r2, [r3, #-1013]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-936]
	mov	r2, #45
	strb	r2, [r3]
.L890:
	ldr	r3, .L903+92
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L891
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-936]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #85
	bne	.L891
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-936]
	mov	r2, #84
	strb	r2, [r3]
.L891:
	ldr	r3, .L903+92
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L892
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-936]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #78
	bne	.L892
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-936]
	mov	r2, #88
	strb	r2, [r3]
.L892:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-936]
	add	r3, r3, #1
	str	r3, [r2, #-936]
.L889:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-936]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L893
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-940]
	add	r3, r3, #1
	str	r3, [r2, #-940]
.L888:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-1012]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-940]
	cmp	r2, r3
	blt	.L894
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldrb	r3, [r3, #-1013]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L895
	ldr	r3, .L903+100
	ldr	r3, [r3]
	mov	r2, #59
	mov	r1, #1
	ldr	r0, .L903+96
	bl	fwrite
.L895:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r0, [r3, #-1020]
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	beq	.L896
	ldr	r3, .L903+100
	ldr	r3, [r3]
	mov	r2, #25
	mov	r1, #1
	ldr	r0, .L903+104
	bl	fwrite
	mov	r0, #1
	bl	exit
.L896:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	mov	r0, #20
	bl	mymalloc
	str	r0, [r4, #-916]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r2, [r3, #-1012]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-916]
	str	r2, [r3, #4]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r2, [r3, #-1008]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-916]
	str	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-916]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1004]
	str	r2, [r3, #8]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-916]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-1000]
	str	r2, [r3, #12]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-916]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-996]
	str	r2, [r3, #16]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-916]
	ldr	r2, .L903+108
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L898
	bl	__stack_chk_fail
.L898:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	ReadAlignment, .-ReadAlignment
	.section	.rodata
	.align	2
.LC307:
	.ascii	"aln != NULL\000"
	.text
	.align	2
	.global	FreeAlignmentSeqs
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreeAlignmentSeqs, %function
FreeAlignmentSeqs:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L906
	ldr	r3, .L909
	ldr	r2, .L909+4
	ldr	r1, .L909+8
	ldr	r0, .L909+12
	bl	__assert_fail
.L906:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L907
.L908:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r1, r3
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	myfree
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L907:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L908
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L910:
	.align	2
.L909:
	.word	__PRETTY_FUNCTION__.8720
	.word	3814
	.word	.LC134
	.word	.LC307
	.size	FreeAlignmentSeqs, .-FreeAlignmentSeqs
	.align	2
	.global	FreeAlignment
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreeAlignment, %function
FreeAlignment:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L912
	mov	r3, #0
	b	.L913
.L912:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L914
.L915:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r5, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	add	r1, r3, #1
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, r5
	bl	myfree
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r1, r3
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	myfree
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L914:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L915
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]
	mov	r1, #20
	ldr	r0, [fp, #-24]
	bl	myfree
	mov	r3, #0
.L913:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	FreeAlignment, .-FreeAlignment
	.section	.rodata
	.align	2
.LC308:
	.ascii	"Sequence %s from constraints file is not in the ali"
	.ascii	"gnment\012\000"
	.align	2
.LC309:
	.ascii	"Warning: ignoring constraints for %s:\012%s\012Anot"
	.ascii	"her sequence has the same sequence but different co"
	.ascii	"nstraints\012\000"
	.text
	.align	2
	.global	AlnToConstraints
	.syntax unified
	.arm
	.fpu softvfp
	.type	AlnToConstraints, %function
AlnToConstraints:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L917
.L918:
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L917:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L918
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L919
.L927:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	FindMatch
	str	r0, [fp, #-16]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-48]
	bl	HashCount
	mov	r3, r0
	cmp	r3, #1
	beq	.L920
	ldr	r3, .L931
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	ldr	r1, .L931+4
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L920:
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-48]
	bl	HashFirst
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	blt	.L921
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L929
.L921:
	ldr	r3, .L931+8
	ldr	r2, .L931+12
	ldr	r1, .L931+16
	ldr	r0, .L931+20
	bl	__assert_fail
.L929:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	blt	.L923
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L930
.L923:
	ldr	r3, .L931+8
	ldr	r2, .L931+24
	ldr	r1, .L931+16
	ldr	r0, .L931+28
	bl	__assert_fail
.L930:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L925
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L926
	ldr	r3, .L931
	ldr	r0, [r3]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-24]
	ldr	r1, .L931+32
	bl	fprintf
	b	.L926
.L925:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	str	r2, [r3]
.L926:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L919:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L927
	ldr	r3, [fp, #-28]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L932:
	.align	2
.L931:
	.word	stderr
	.word	.LC308
	.word	__PRETTY_FUNCTION__.8746
	.word	3849
	.word	.LC134
	.word	.LC238
	.word	3851
	.word	.LC239
	.word	.LC309
	.size	AlnToConstraints, .-AlnToConstraints
	.section	.rodata
	.align	2
.LC310:
	.ascii	"strlen(seq) == nPos\000"
	.align	2
.LC311:
	.ascii	"pos %d char %c code %d\012\000"
	.align	2
.LC312:
	.ascii	"strlen(constraintSeq) == nConstraints\000"
	.align	2
.LC313:
	.ascii	"Constraint characters in unique sequence %d replace"
	.ascii	"d with gap:\000"
	.align	2
.LC314:
	.ascii	" %c%d\000"
	.text
	.align	2
	.global	SeqToProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	SeqToProfile, %function
SeqToProfile:
	@ args = 12, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L957
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L934
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L935
.L936:
	ldr	r3, .L957+4
	ldr	r3, [r3]
	and	r1, r3, #255
	ldr	r2, .L957+8
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L935:
	ldr	r3, [fp, #-20]
	cmp	r3, #255
	ble	.L936
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L937
.L938:
	ldr	r3, .L957+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	and	r1, r3, #255
	ldr	r3, .L957+8
	strb	r1, [r3, r2]
	ldr	r3, .L957+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	tolower
	mov	r2, r0
	ldr	r3, [fp, #-16]
	and	r1, r3, #255
	ldr	r3, .L957+8
	strb	r1, [r3, r2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L937:
	ldr	r3, .L957+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L938
	ldr	r3, .L957+8
	mov	r2, #127
	strb	r2, [r3, #45]
	ldr	r3, .L957
	mov	r2, #1
	str	r2, [r3]
.L934:
	ldr	r0, [fp, #-36]
	bl	strlen
	mov	r2, r0
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	beq	.L939
	ldr	r3, .L957+16
	ldr	r2, .L957+20
	ldr	r1, .L957+24
	ldr	r0, .L957+28
	bl	__assert_fail
.L939:
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-40]
	bl	NewProfile
	str	r0, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L940
.L945:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #12]
	add	r3, r2, r3
	ldr	r2, [r3]
	add	r2, r2, #1
	str	r2, [r3]
	ldr	r2, .L957+8
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-20]
	ldr	r3, .L957+32
	ldr	r3, [r3]
	cmp	r3, #10
	ble	.L941
	ldr	r3, [fp, #-16]
	cmp	r3, #1
	bgt	.L941
	ldr	r3, .L957+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-20]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-16]
	ldr	r1, .L957+40
	bl	fprintf
.L941:
	ldr	r3, .L957+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	beq	.L942
	ldr	r3, [fp, #-20]
	cmp	r3, #127
	bne	.L943
.L942:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	mov	r2, #127
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	b	.L944
.L943:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #1065353216
	str	r2, [r3]	@ float
.L944:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L940:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	blt	.L945
	ldr	r3, [fp, #4]
	cmp	r3, #0
	ble	.L946
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L947
.L948:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L947:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L948
	mov	r3, #0
	strb	r3, [fp, #-21]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L946
	ldr	r0, [fp, #-44]
	bl	strlen
	mov	r2, r0
	ldr	r3, [fp, #4]
	cmp	r2, r3
	beq	.L949
	ldr	r3, .L957+16
	ldr	r2, .L957+44
	ldr	r1, .L957+24
	ldr	r0, .L957+48
	bl	__assert_fail
.L949:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L950
.L955:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #49
	bne	.L951
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3]
	b	.L952
.L951:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #48
	bne	.L953
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3]
	b	.L952
.L953:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	beq	.L952
	ldrb	r3, [fp, #-21]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L954
	ldr	r3, .L957+36
	ldr	r0, [r3]
	ldr	r3, [fp, #8]
	add	r3, r3, #1
	mov	r2, r3
	ldr	r1, .L957+52
	bl	fprintf
	mov	r3, #1
	strb	r3, [fp, #-21]
.L954:
	ldr	r3, .L957+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldr	r1, .L957+56
	bl	fprintf
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	mov	r2, #45
	strb	r2, [r3]
.L952:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L950:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L955
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L946
	ldr	r3, .L957+36
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L946:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L958:
	.align	2
.L957:
	.word	codeSet.8761
	.word	nCodes
	.word	charToCode.8760
	.word	codesString
	.word	__PRETTY_FUNCTION__.8770
	.word	3890
	.word	.LC134
	.word	.LC310
	.word	verbose
	.word	stderr
	.word	.LC311
	.word	3914
	.word	.LC312
	.word	.LC313
	.word	.LC314
	.size	SeqToProfile, .-SeqToProfile
	.align	2
	.global	SeqDist
	.syntax unified
	.arm
	.fpu softvfp
	.type	SeqDist, %function
SeqDist:
	@ args = 4, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L960
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L961
.L963:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	beq	.L962
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	beq	.L962
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-20]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L962
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L962:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L961:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	blt	.L963
	ldr	r0, [fp, #-16]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	b	.L964
.L960:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L965
.L967:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	beq	.L966
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	beq	.L966
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, [fp, #-44]
	mov	r3, r1
	lsl	r3, r3, #2
	add	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r3, r0
	ldr	r3, [r2, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
.L966:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L965:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	blt	.L967
.L964:
	ldr	r0, [fp, #-24]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #4]
	str	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	ble	.L968
	ldr	r0, [fp, #-24]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	b	.L969
.L968:
	mov	r3, #1065353216
.L969:
	ldr	r2, [fp, #4]
	str	r3, [r2, #12]	@ float
	ldr	r3, .L970
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L970
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L971:
	.align	2
.L970:
	.word	seqOps
	.size	SeqDist, .-SeqDist
	.section	.rodata
	.align	2
.LC315:
	.ascii	"distances != NULL\000"
	.align	2
.LC316:
	.ascii	"profiles != NULL\000"
	.align	2
.LC317:
	.ascii	"nProfiles>1 && nProfiles <= 4\000"
	.align	2
.LC318:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	CorrectedPairDistances
	.syntax unified
	.arm
	.fpu softvfp
	.type	CorrectedPairDistances, %function
CorrectedPairDistances:
	@ args = 4, pretend = 0, frame = 192
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #200
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-208]
	ldr	r3, .L999
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, [fp, #-208]
	cmp	r3, #0
	bne	.L973
	ldr	r3, .L999+4
	ldr	r2, .L999+8
	ldr	r1, .L999+12
	ldr	r0, .L999+16
	bl	__assert_fail
.L973:
	ldr	r3, [fp, #-192]
	cmp	r3, #0
	bne	.L974
	ldr	r3, .L999+4
	ldr	r2, .L999+20
	ldr	r1, .L999+12
	ldr	r0, .L999+24
	bl	__assert_fail
.L974:
	ldr	r3, [fp, #-196]
	cmp	r3, #1
	ble	.L975
	ldr	r3, [fp, #-196]
	cmp	r3, #4
	ble	.L996
.L975:
	ldr	r3, .L999+4
	ldr	r2, .L999+28
	ldr	r1, .L999+12
	ldr	r0, .L999+32
	bl	__assert_fail
.L996:
	mov	r3, #0
	str	r3, [fp, #-184]
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L977
.L980:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-176]
	b	.L978
.L979:
	ldr	r3, [fp, #-180]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-192]
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-192]
	add	r3, r2, r3
	ldr	ip, [r3]
	sub	r1, fp, #144
	ldr	r2, [fp, #-184]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r3, [sp]
	ldr	r3, [fp, #-200]
	ldr	r2, [fp, #-204]
	mov	r1, ip
	bl	ProfileDist
	ldr	r2, [fp, #-184]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #112
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-208]
	add	r4, r2, r3
	mov	r0, r1
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-176]
	add	r3, r3, #1
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L978:
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-196]
	cmp	r2, r3
	blt	.L979
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L977:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-196]
	cmp	r2, r3
	blt	.L980
	ldr	r3, .L999+36
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L981
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L983
.L984:
	ldr	r2, [fp, #-184]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #112
	ldr	r0, [r3]	@ float
	ldr	r2, [fp, #-184]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #116
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	ldr	r2, [fp, #-184]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #116
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L983:
	ldr	r3, [fp, #-196]
	sub	r3, r3, #1
	ldr	r2, [fp, #-196]
	mul	r3, r2, r3
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-184]
	cmp	r3, r2
	blt	.L984
	ldr	r2, .L999+40
	ldr	r3, .L999+44
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L997
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	b	.L987
.L997:
	mov	r2, #0
	ldr	r3, .L999+48
.L987:
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L988
.L989:
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-208]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r2, [fp, #-184]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #116
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, .L999+36
	ldmia	r3, {r0-r1}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r2, [fp, #-184]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #116
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r3, .L999+36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-208]
	add	r4, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L988:
	ldr	r3, [fp, #-196]
	sub	r3, r3, #1
	ldr	r2, [fp, #-196]
	mul	r3, r2, r3
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-184]
	cmp	r3, r2
	blt	.L989
.L981:
	ldr	r3, .L999+52
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L998
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L991
.L992:
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-208]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-184]
	lsl	r1, r1, #3
	ldr	r0, [fp, #-208]
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	LogCorrect
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L991:
	ldr	r3, [fp, #-196]
	sub	r3, r3, #1
	ldr	r2, [fp, #-196]
	mul	r3, r2, r3
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-184]
	cmp	r3, r2
	blt	.L992
.L998:
	nop
	ldr	r3, .L999
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L993
	bl	__stack_chk_fail
.L993:
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L1000:
	.align	2
.L999:
	.word	.LC318
	.word	__PRETTY_FUNCTION__.8807
	.word	3971
	.word	.LC134
	.word	.LC315
	.word	3972
	.word	.LC316
	.word	3973
	.word	.LC317
	.word	pseudoWeight
	.word	1202590843
	.word	1065646817
	.word	1074266112
	.word	logdist
	.size	CorrectedPairDistances, .-CorrectedPairDistances
	.align	2
	.global	JoinConstraintPenalty
	.syntax unified
	.arm
	.fpu softvfp
	.type	JoinConstraintPenalty, %function
JoinConstraintPenalty:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	bne	.L1002
	mov	r3, #0
	b	.L1003
.L1002:
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L1004
.L1005:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	JoinConstraintPenaltyPiece
	mov	r2, r0
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L1004:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L1005
	ldr	r3, [fp, #-12]
.L1003:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	JoinConstraintPenalty, .-JoinConstraintPenalty
	.align	2
	.global	JoinConstraintPenaltyPiece
	.syntax unified
	.arm
	.fpu softvfp
	.type	JoinConstraintPenaltyPiece, %function
JoinConstraintPenaltyPiece:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #56]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	sub	r2, r2, r3
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	sub	r2, r2, r3
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	cmp	r3, #0
	ble	.L1007
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	cmp	r3, #0
	ble	.L1007
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	cmp	r3, #0
	ble	.L1007
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	ble	.L1008
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bgt	.L1009
.L1008:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	b	.L1010
.L1009:
	mvn	r3, #0
.L1010:
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	ble	.L1011
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bgt	.L1012
.L1011:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	b	.L1013
.L1012:
	mvn	r3, #0
.L1013:
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	ble	.L1014
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L1014
	mov	r3, #1
	b	.L1015
.L1014:
	mov	r3, #0
.L1015:
	cmp	r3, #0
	bgt	.L1016
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	b	.L1017
.L1016:
	mvn	r3, #0
.L1017:
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	cmn	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-20]
	cmn	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	cmn	r2, #1
	moveq	r2, #1
	movne	r2, #0
	and	r2, r2, #255
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	cmp	r2, #1
	moveq	r2, #1
	movne	r2, #0
	and	r2, r2, #255
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	bne	.L1007
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	bne	.L1007
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-40]
	add	r0, r2, r3
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-36]
	add	r1, r2, r3
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-32]
	bl	SplitConstraintPenalty
	mov	r3, r0
	b	.L1018
.L1007:
	mov	r3, #0
.L1018:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	JoinConstraintPenaltyPiece, .-JoinConstraintPenaltyPiece
	.section	.rodata
	.align	2
.LC319:
	.ascii	"Constraint Penalties at %d: ABvsCD %.3f ACvsBD %.3f"
	.ascii	" ADvsBC %.3f %d/%d %d/%d %d/%d %d/%d\012\000"
	.align	2
.LC320:
	.ascii	"Total Constraint Penalties: ABvsCD %.3f ACvsBD %.3f"
	.ascii	" ADvsBC %.3f\012\000"
	.align	2
.LC321:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	QuartetConstraintPenalties
	.syntax unified
	.arm
	.fpu softvfp
	.type	QuartetConstraintPenalties, %function
QuartetConstraintPenalties:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #140
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-88]
	ldr	r3, .L1033
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L1020
.L1021:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-88]
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L1020:
	ldr	r3, [fp, #-76]
	cmp	r3, #2
	ble	.L1021
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	beq	.L1032
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L1024
.L1030:
	sub	r3, fp, #68
	mov	r2, r3
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-80]
	bl	QuartetConstraintPenaltiesPiece
	mov	r3, r0
	cmp	r3, #0
	beq	.L1025
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L1026
.L1027:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-88]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #32
	ldmia	r3, {r2-r3}
	ldr	ip, [fp, #-76]
	lsl	ip, ip, #3
	ldr	lr, [fp, #-88]
	add	r4, lr, ip
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L1026:
	ldr	r3, [fp, #-76]
	cmp	r3, #2
	ble	.L1027
	ldr	r3, .L1033+4
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L1025
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-100]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-96]
	ldr	r2, .L1033+8
	ldr	r3, .L1033+12
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1028
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-108]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-104]
	ldr	r2, .L1033+8
	ldr	r3, .L1033+12
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1025
.L1028:
	ldr	r3, .L1033+16
	ldr	r3, [r3]
	str	r3, [fp, #-92]
	sub	r5, fp, #68
	ldmia	r5, {r4-r5}
	sub	r7, fp, #60
	ldmia	r7, {r6-r7}
	sub	r9, fp, #52
	ldmia	r9, {r8-r9}
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	str	r2, [fp, #-112]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	str	r1, [fp, #-116]
	ldr	r3, [fp, #-80]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r10, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	lr, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #8
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	ip, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #8
	ldr	r3, [r3]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #12
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #12
	ldr	r3, [r3]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [sp, #52]
	str	r1, [sp, #48]
	str	r0, [sp, #44]
	str	ip, [sp, #40]
	str	lr, [sp, #36]
	str	r10, [sp, #32]
	ldr	r1, [fp, #-116]
	str	r1, [sp, #28]
	ldr	r2, [fp, #-112]
	str	r2, [sp, #24]
	str	r8, [sp, #16]
	str	r9, [sp, #20]
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	ldr	r2, [fp, #-72]
	ldr	r1, .L1033+20
	ldr	r0, [fp, #-92]
	bl	fprintf
.L1025:
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L1024:
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	blt	.L1030
	ldr	r3, .L1033+4
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L1019
	ldr	r3, .L1033+16
	ldr	ip, [r3]
	ldr	r3, [fp, #-88]
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-88]
	add	r1, r1, #16
	ldmia	r1, {r0-r1}
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r3, r5
	ldr	r1, .L1033+24
	mov	r0, ip
	bl	fprintf
	b	.L1019
.L1032:
	nop
.L1019:
	ldr	r3, .L1033
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1031
	bl	__stack_chk_fail
.L1031:
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1034:
	.align	2
.L1033:
	.word	.LC321
	.word	verbose
	.word	-755914244
	.word	1062232653
	.word	stderr
	.word	.LC319
	.word	.LC320
	.size	QuartetConstraintPenalties, .-QuartetConstraintPenalties
	.align	2
	.global	PairConstraintDistance
	.syntax unified
	.arm
	.fpu softvfp
	.type	PairConstraintDistance, %function
PairConstraintDistance:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r0, [fp, #-32]
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	PairConstraintDistance, .-PairConstraintDistance
	.section	.rodata
	.align	2
.LC322:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	QuartetConstraintPenaltiesPiece
	.syntax unified
	.arm
	.fpu softvfp
	.type	QuartetConstraintPenaltiesPiece, %function
QuartetConstraintPenaltiesPiece:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #72
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-88]
	ldr	r3, .L1049
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-68]
	mov	r3, #0
	str	r3, [fp, #-64]
	mov	r3, #0
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L1038
.L1044:
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-80]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-36]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-80]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-20]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-36]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-20]
	add	r3, r2, r3
	cmp	r3, #0
	bne	.L1039
	mov	r3, #0
	b	.L1047
.L1039:
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-36]
	cmp	r3, #0
	ble	.L1041
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-20]
	cmp	r3, #0
	ble	.L1041
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
	b	.L1042
.L1041:
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-36]
	cmp	r3, #0
	ble	.L1043
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	b	.L1042
.L1043:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L1042:
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L1038:
	ldr	r3, [fp, #-72]
	cmp	r3, #3
	ble	.L1044
	ldr	r3, [fp, #-64]
	cmp	r3, #2
	bgt	.L1045
	ldr	r3, [fp, #-60]
	cmp	r3, #2
	ble	.L1046
.L1045:
	mov	r3, #0
	b	.L1047
.L1046:
	ldr	r0, [fp, #-56]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-36]
	bl	PairConstraintDistance
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-48]
	ldr	r1, [fp, #-32]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-28]
	bl	PairConstraintDistance
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, .L1049+4
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-88]
	stm	r1, {r2-r3}
	ldr	r0, [fp, #-56]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-32]
	bl	PairConstraintDistance
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-52]
	ldr	r1, [fp, #-36]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-28]
	bl	PairConstraintDistance
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, .L1049+4
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-88]
	add	r4, r1, #8
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r0, [fp, #-56]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-28]
	bl	PairConstraintDistance
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-48]
	ldr	r1, [fp, #-32]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-36]
	bl	PairConstraintDistance
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, .L1049+4
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-88]
	add	r4, r1, #16
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	mov	r3, #1
.L1047:
	ldr	r2, .L1049
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1048
	bl	__stack_chk_fail
.L1048:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L1050:
	.align	2
.L1049:
	.word	.LC322
	.word	constraintWeight
	.size	QuartetConstraintPenaltiesPiece, .-QuartetConstraintPenaltiesPiece
	.align	2
	.global	SplitConstraintPenalty
	.syntax unified
	.arm
	.fpu softvfp
	.type	SplitConstraintPenalty, %function
SplitConstraintPenalty:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r1, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r1, r3
	cmp	r2, r3
	bge	.L1052
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	movlt	r3, r2
	movge	r3, r3
	b	.L1054
.L1052:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	movlt	r3, r2
	movge	r3, r3
.L1054:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	SplitConstraintPenalty, .-SplitConstraintPenalty
	.section	.rodata
	.align	2
.LC323:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	SplitViolatesConstraint
	.syntax unified
	.arm
	.fpu softvfp
	.type	SplitViolatesConstraint, %function
SplitViolatesConstraint:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L1072
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L1056
.L1062:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-40]
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r1, [r3, #24]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	add	r3, r2, r3
	cmp	r3, #0
	bne	.L1057
	mov	r3, #0
	b	.L1070
.L1057:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L1059
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1059
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3, #-20]
	b	.L1060
.L1059:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1061
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L1061
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-20]
	b	.L1060
.L1061:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3, #-20]
.L1060:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L1056:
	ldr	r3, [fp, #-36]
	cmp	r3, #3
	ble	.L1062
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L1063
.L1066:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-20]
	cmp	r3, #0
	bne	.L1064
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	b	.L1065
.L1064:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-20]
	cmp	r3, #1
	bne	.L1065
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1065:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L1063:
	ldr	r3, [fp, #-36]
	cmp	r3, #3
	ble	.L1066
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	bgt	.L1067
	ldr	r3, [fp, #-28]
	cmp	r3, #2
	ble	.L1068
.L1067:
	mov	r3, #0
	b	.L1070
.L1068:
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	bne	.L1069
	ldr	r3, [fp, #-28]
	cmp	r3, #2
	bne	.L1069
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bne	.L1069
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bne	.L1069
	mov	r3, #0
	b	.L1070
.L1069:
	mov	r3, #1
.L1070:
	ldr	r2, .L1072
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1071
	bl	__stack_chk_fail
.L1071:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1073:
	.align	2
.L1072:
	.word	.LC323
	.size	SplitViolatesConstraint, .-SplitViolatesConstraint
	.align	2
	.global	LogCorrect
	.syntax unified
	.arm
	.fpu softvfp
	.type	LogCorrect, %function
LogCorrect:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	mov	r2, #0
	ldr	r3, .L1093
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, .L1093+4
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L1075
	ldr	r3, .L1093+8
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L1075
	ldr	r2, .L1093+12
	ldr	r3, .L1093+16
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1090
	mov	r2, #0
	ldr	r3, .L1093+20
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1093
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L1093+24
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	mov	r2, #0
	ldr	r3, .L1093+28
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	b	.L1078
.L1090:
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
.L1078:
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	b	.L1079
.L1075:
	ldr	r2, .L1093+12
	ldr	r3, .L1093+32
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1091
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L1093+24
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	ldr	r2, .L1093+36
	ldr	r3, .L1093+40
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	b	.L1082
.L1091:
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
.L1082:
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
.L1079:
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1092
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	b	.L1086
.L1092:
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
.L1086:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1094:
	.align	2
.L1093:
	.word	1074266112
	.word	nCodes
	.word	useMatrix
	.word	2061584302
	.word	1072147988
	.word	1074790400
	.word	1072693248
	.word	-1075314688
	.word	1072672276
	.word	-858993459
	.word	-1074475828
	.size	LogCorrect, .-LogCorrect
	.align	2
	.global	ProfileDistPiece
	.syntax unified
	.arm
	.fpu softvfp
	.type	ProfileDistPiece, %function
ProfileDistPiece:
	@ args = 8, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L1096
	ldr	r3, [fp, #-24]
	cmp	r3, #127
	beq	.L1097
	ldr	r3, [fp, #-28]
	cmp	r3, #127
	beq	.L1097
	ldr	r1, [fp, #4]
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	b	.L1098
.L1097:
	ldr	r3, [fp, #8]
	cmp	r3, #0
	beq	.L1099
	ldr	r3, [fp, #-24]
	cmp	r3, #127
	beq	.L1099
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #8]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	b	.L1098
.L1099:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L1100
	ldr	r3, [fp, #-24]
	cmp	r3, #127
	bne	.L1101
	mov	r2, #0
	ldr	r3, .L1115
	b	.L1098
.L1101:
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #3360
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L1100:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L1102
	ldr	r3, [fp, #-28]
	cmp	r3, #127
	bne	.L1103
	mov	r2, #0
	ldr	r3, .L1115
	b	.L1098
.L1103:
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #3360
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	str	r3, [fp, #-36]
.L1102:
	ldr	r3, [fp, #4]
	add	r2, r3, #3200
	ldr	r3, .L1115+4
	ldr	r3, [r3]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	vector_multiply3_sum
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	b	.L1098
.L1096:
	ldr	r3, [fp, #-24]
	cmp	r3, #127
	beq	.L1104
	ldr	r3, [fp, #-28]
	cmp	r3, #127
	beq	.L1105
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bne	.L1106
	mov	r2, #0
	mov	r3, #0
	b	.L1098
.L1106:
	mov	r2, #0
	ldr	r3, .L1115+8
	b	.L1098
.L1105:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L1108
	mov	r2, #0
	ldr	r3, .L1115
	b	.L1098
.L1108:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L1115+8
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	b	.L1098
.L1104:
	ldr	r3, [fp, #-28]
	cmp	r3, #127
	beq	.L1109
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L1110
	mov	r2, #0
	ldr	r3, .L1115
	b	.L1098
.L1110:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L1115+8
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	b	.L1098
.L1109:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L1111
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L1112
.L1111:
	mov	r2, #0
	ldr	r3, .L1115
	b	.L1098
.L1112:
	mov	r2, #0
	ldr	r3, .L1115+8
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1113
.L1114:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L1113:
	ldr	r3, .L1115+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L1114
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
.L1098:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1116:
	.align	2
.L1115:
	.word	1076101120
	.word	nCodes
	.word	1072693248
	.size	ProfileDistPiece, .-ProfileDistPiece
	.global	__aeabi_fcmpgt
	.section	.rodata
	.align	2
.LC324:
	.ascii	"iFreq1 == profile1->nVectors\000"
	.align	2
.LC325:
	.ascii	"iFreq2 == profile2->nVectors\000"
	.text
	.align	2
	.global	ProfileDist
	.syntax unified
	.arm
	.fpu softvfp
	.type	ProfileDist, %function
ProfileDist:
	@ args = 4, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	str	r3, [fp, #-76]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L1118
.L1130:
	ldr	r3, [fp, #-64]
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1119
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1119
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-56]
	add	r1, r3, #1
	str	r1, [fp, #-56]
	ldr	r1, .L1147
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1121
.L1119:
	mov	r3, #0
.L1121:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-68]
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1122
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1122
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-52]
	add	r1, r3, #1
	str	r1, [fp, #-52]
	ldr	r1, .L1147
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1124
.L1122:
	mov	r3, #0
.L1124:
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-64]
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1125
	ldr	r3, [fp, #-68]
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1125
	ldr	r3, [fp, #-64]
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-68]
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	ip, r3
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1128
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #16]
	ldr	r3, .L1147
	ldr	r3, [r3]
	ldr	r1, [fp, #-48]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1129
.L1128:
	mov	r3, #0
.L1129:
	str	r3, [sp, #4]
	ldr	r3, [fp, #-76]
	str	r3, [sp]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-44]
	mov	r1, ip
	bl	ProfileDistPiece
	str	r0, [fp, #-12]
	str	r1, [fp, #-8]
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
.L1125:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L1118:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	blt	.L1130
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	beq	.L1131
	ldr	r3, .L1147+4
	ldr	r2, .L1147+8
	ldr	r1, .L1147+12
	ldr	r0, .L1147+16
	bl	__assert_fail
.L1131:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	beq	.L1132
	ldr	r3, .L1147+4
	ldr	r2, .L1147+20
	ldr	r1, .L1147+12
	ldr	r0, .L1147+24
	bl	__assert_fail
.L1132:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1145
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2f
	mov	r3, r0
	b	.L1135
.L1145:
	ldr	r3, .L1147+28
.L1135:
	ldr	r2, [fp, #4]
	str	r3, [r2, #8]	@ float
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1146
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	b	.L1138
.L1146:
	mov	r3, #1065353216
.L1138:
	ldr	r2, [fp, #4]
	str	r3, [r2, #12]	@ float
	ldr	r3, .L1147+32
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L1147+32
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1148:
	.align	2
.L1147:
	.word	nCodes
	.word	__PRETTY_FUNCTION__.8956
	.word	4238
	.word	.LC134
	.word	.LC324
	.word	4239
	.word	.LC325
	.word	1008981770
	.word	profileOps
	.size	ProfileDist, .-ProfileDist
	.section	.rodata
	.align	2
.LC326:
	.ascii	"fOut != NULL\000"
	.align	2
.LC327:
	.ascii	"codeIn != NOCODE\000"
	.text
	.align	2
	.global	AddToFreq
	.syntax unified
	.arm
	.fpu softvfp
	.type	AddToFreq, %function
AddToFreq:
	@ args = 12, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L1150
	ldr	r3, .L1157
	ldr	r2, .L1157+4
	ldr	r1, .L1157+8
	ldr	r0, .L1157+12
	bl	__assert_fail
.L1150:
	ldr	r3, [fp, #8]
	cmp	r3, #0
	beq	.L1151
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, .L1157+16
	ldr	r3, [r3]
	ldr	r1, [fp, #8]
	ldr	r0, [fp, #-16]
	bl	vector_add_mult
	b	.L1156
.L1151:
	ldr	r3, [fp, #12]
	cmp	r3, #0
	beq	.L1153
	ldr	r3, [fp, #4]
	cmp	r3, #127
	bne	.L1154
	ldr	r3, .L1157
	ldr	r2, .L1157+20
	ldr	r1, .L1157+8
	ldr	r0, .L1157+24
	bl	__assert_fail
.L1154:
	ldr	r2, [fp, #4]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #3360
	ldr	r2, [fp, #12]
	add	r4, r2, r3
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, .L1157+16
	ldr	r3, [r3]
	mov	r1, r4
	ldr	r0, [fp, #-16]
	bl	vector_add_mult
	b	.L1156
.L1153:
	ldr	r3, [fp, #4]
	cmp	r3, #127
	bne	.L1155
	ldr	r3, .L1157
	ldr	r2, .L1157+28
	ldr	r1, .L1157+8
	ldr	r0, .L1157+24
	bl	__assert_fail
.L1155:
	ldr	r3, [fp, #4]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #4]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
.L1156:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1158:
	.align	2
.L1157:
	.word	__PRETTY_FUNCTION__.8964
	.word	4253
	.word	.LC134
	.word	.LC326
	.word	nCodes
	.word	4257
	.word	.LC327
	.word	4260
	.size	AddToFreq, .-AddToFreq
	.section	.rodata
	.align	2
.LC328:
	.ascii	"c->nChild == 2\000"
	.align	2
.LC329:
	.ascii	"NJ->profiles[c->child[0]] != NULL\000"
	.align	2
.LC330:
	.ascii	"NJ->profiles[c->child[1]] != NULL\000"
	.text
	.align	2
	.global	SetProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetProfile, %function
SetProfile:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #40
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L1160
	ldr	r3, .L1164
	ldr	r2, .L1164+4
	ldr	r1, .L1164+8
	ldr	r0, .L1164+12
	bl	__assert_fail
.L1160:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1161
	ldr	r3, .L1164
	ldr	r2, .L1164+16
	ldr	r1, .L1164+8
	ldr	r0, .L1164+20
	bl	__assert_fail
.L1161:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1162
	ldr	r3, .L1164
	ldr	r2, .L1164+24
	ldr	r1, .L1164+8
	ldr	r0, .L1164+28
	bl	__assert_fail
.L1162:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1163
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	mov	r2, r3
	bl	FreeProfile
.L1163:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	ip, [r3]
	ldr	r3, [fp, #-24]
	ldr	lr, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r5, [r3, #20]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r4, r2, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	str	r1, [sp]
	mov	r3, r5
	mov	r2, lr
	mov	r1, ip
	bl	AverageProfile
	mov	r3, r0
	str	r3, [r4]
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1165:
	.align	2
.L1164:
	.word	__PRETTY_FUNCTION__.8971
	.word	4267
	.word	.LC134
	.word	.LC328
	.word	4268
	.word	.LC329
	.word	4269
	.word	.LC330
	.size	SetProfile, .-SetProfile
	.section	.rodata
	.align	2
.LC331:
	.ascii	"Average profiles: pos %d in-w1 %f in-w2 %f bionjWei"
	.ascii	"ght %f to weight %f code %d\012\000"
	.align	2
.LC332:
	.ascii	"\011%c:%f\000"
	.align	2
.LC333:
	.ascii	"iFreqOut == out->nVectors\000"
	.text
	.align	2
	.global	AverageProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	AverageProfile, %function
AverageProfile:
	@ args = 16, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #100
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	str	r2, [fp, #-80]
	str	r3, [fp, #-84]
	mov	r2, #0
	mov	r3, #0
	add	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1167
	mov	r2, #0
	ldr	r3, .L1218
	str	r2, [fp, #12]
	str	r3, [fp, #16]
.L1167:
	ldr	r1, [fp, #-84]
	ldr	r0, [fp, #-80]
	bl	NewProfile
	str	r0, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1169
.L1178:
	ldr	r3, [fp, #-72]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	add	r3, fp, #12
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	add	r3, fp, #12
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L1218+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-76]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-44]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	mov	r2, #127
	strb	r2, [r3]
	ldr	r3, [fp, #-44]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1170
	ldr	r3, [fp, #-72]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1172
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	beq	.L1172
	ldr	r3, [fp, #-76]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L1174
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-76]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L1172
.L1174:
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	b	.L1175
.L1172:
	ldr	r3, [fp, #-72]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L1175
	ldr	r3, [fp, #-76]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1175
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	beq	.L1175
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
.L1175:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1170
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #12]
	add	r2, r3, #1
	ldr	r3, [fp, #-44]
	str	r2, [r3, #12]
.L1170:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1169:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	blt	.L1178
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r3, .L1218+8
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-44]
	str	r2, [r3, #8]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1179
.L1180:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1179:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #12]
	ldr	r2, .L1218+8
	ldr	r2, [r2]
	mul	r3, r2, r3
	ldr	r2, [fp, #-64]
	cmp	r2, r3
	blt	.L1180
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #12]
	ldr	r3, .L1218+12
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L1218+12
	str	r3, [r2]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-80]
	sub	r2, r2, r3
	ldr	r3, .L1218+16
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L1218+16
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1181
.L1201:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1182
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1182
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-60]
	add	r1, r3, #1
	str	r1, [fp, #-60]
	ldr	r1, .L1218+8
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1184
.L1182:
	mov	r3, #0
.L1184:
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-72]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1185
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1185
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-56]
	add	r1, r3, #1
	str	r1, [fp, #-56]
	ldr	r1, .L1218+8
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1187
.L1185:
	mov	r3, #0
.L1187:
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-76]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1188
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1188
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-52]
	add	r1, r3, #1
	str	r1, [fp, #-52]
	ldr	r1, .L1218+8
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1190
.L1188:
	mov	r3, #0
.L1190:
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L1191
	ldr	r3, [fp, #-72]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1192
	ldr	r3, [fp, #-72]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	add	r3, fp, #12
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #4]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-36]
	str	r3, [sp, #4]
	str	r2, [sp]
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-40]
	bl	AddToFreq
.L1192:
	ldr	r3, [fp, #-76]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1194
	ldr	r3, [fp, #-76]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	add	r3, fp, #12
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L1218+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #4]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-32]
	str	r3, [sp, #4]
	str	r2, [sp]
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-40]
	bl	AddToFreq
.L1194:
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-40]
	bl	NormalizeFreq
.L1191:
	ldr	r3, .L1218+20
	ldr	r3, [r3]
	cmp	r3, #10
	ble	.L1196
	ldr	r3, [fp, #-64]
	cmp	r3, #4
	bgt	.L1196
	ldr	r3, .L1218+24
	ldr	r8, [r3]
	ldr	r3, [fp, #-72]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-76]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r3, [fp, #-44]
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-44]
	ldr	r0, [r1, #4]
	ldr	r1, [fp, #-64]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	str	r1, [sp, #32]
	str	r2, [sp, #24]
	str	r3, [sp, #28]
	add	r3, fp, #12
	ldmia	r3, {r2-r3}
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r4-r5}
	ldr	r2, [fp, #-64]
	ldr	r1, .L1218+28
	mov	r0, r8
	bl	fprintf
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L1196
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L1197
.L1200:
	ldr	r3, .L1218+24
	ldr	r4, [r3]
	ldr	r3, .L1218+32
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L1198
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	b	.L1199
.L1198:
	mov	r2, #0
	ldr	r3, .L1218+36
.L1199:
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L1218+40
	mov	r0, r4
	bl	fprintf
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L1197:
	ldr	r3, .L1218+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L1200
	ldr	r3, .L1218+24
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L1196:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1181:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	blt	.L1201
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	beq	.L1202
	ldr	r3, .L1218+44
	ldr	r2, .L1218+48
	ldr	r1, .L1218+52
	ldr	r0, .L1218+56
	bl	__assert_fail
.L1202:
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	beq	.L1203
	ldr	r3, .L1218+44
	ldr	r2, .L1218+60
	ldr	r1, .L1218+52
	ldr	r0, .L1218+64
	bl	__assert_fail
.L1203:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	beq	.L1204
	ldr	r3, .L1218+44
	ldr	r2, .L1218+68
	ldr	r1, .L1218+52
	ldr	r0, .L1218+72
	bl	__assert_fail
.L1204:
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1205
.L1206:
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	ldr	r0, [r3, #20]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	ldr	r0, [r3, #24]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1205:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	blt	.L1206
	ldr	r3, .L1218+76
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L1218+76
	str	r3, [r2]
	ldr	r3, [fp, #-44]
	mov	r0, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L1219:
	.align	2
.L1218:
	.word	1071644672
	.word	1072693248
	.word	nCodes
	.word	nProfileFreqAlloc
	.word	nProfileFreqAvoid
	.word	verbose
	.word	stderr
	.word	.LC331
	.word	codesString
	.word	-1074790400
	.word	.LC332
	.word	__PRETTY_FUNCTION__.9001
	.word	4344
	.word	.LC134
	.word	.LC324
	.word	4345
	.word	.LC325
	.word	4346
	.word	.LC333
	.word	profileAvgOps
	.size	AverageProfile, .-AverageProfile
	.align	2
	.global	NormalizeFreq
	.syntax unified
	.arm
	.fpu softvfp
	.type	NormalizeFreq, %function
NormalizeFreq:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1221
	ldr	r3, [fp, #-36]
	add	r3, r3, #3280
	ldr	r2, .L1236
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	vector_multiply_sum
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	b	.L1222
.L1221:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1223
.L1224:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1223:
	ldr	r3, .L1236
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L1224
.L1222:
	ldr	r2, .L1236+4
	ldr	r3, .L1236+8
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1234
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L1236+12
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-24]	@ float
	ldr	r3, .L1236
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]	@ float
	ldr	r0, [fp, #-32]
	bl	vector_multiply_by
	b	.L1235
.L1234:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L1228
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1229
.L1230:
	ldr	r3, .L1236
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L1236+12
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1229:
	ldr	r3, .L1236
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L1230
	b	.L1235
.L1228:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1231
.L1232:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-28]
	add	r1, r1, #840
	ldr	r2, [r2, r1, lsl #2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1231:
	ldr	r3, .L1236
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L1232
.L1235:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1237:
	.align	2
.L1236:
	.word	nCodes
	.word	-640172613
	.word	1037794527
	.word	1072693248
	.size	NormalizeFreq, .-NormalizeFreq
	.section	.rodata
	.align	2
.LC334:
	.ascii	"iFreqIn == profiles[in]->nVectors\000"
	.align	2
.LC335:
	.ascii	"Average %d profiles\012\000"
	.text
	.align	2
	.global	OutProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	OutProfile, %function
OutProfile:
	@ args = 4, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #80
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	str	r3, [fp, #-76]
	ldr	r1, [fp, #-76]
	ldr	r0, [fp, #-72]
	bl	NewProfile
	str	r0, [fp, #-36]
	ldr	r0, [fp, #-68]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L1280
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L1239
.L1244:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L1240
.L1241:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L1240:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	blt	.L1241
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L1242
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, .L1280+4
	str	r2, [r3]	@ float
.L1242:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	add	r2, r3, #1
	ldr	r3, [fp, #-36]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	mov	r2, #127
	strb	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L1239:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	blt	.L1244
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r3, .L1280+8
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-36]
	str	r2, [r3, #8]
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L1245
.L1246:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L1245:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	ldr	r2, .L1280+8
	ldr	r2, [r2]
	mul	r3, r2, r3
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L1246
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L1247
.L1260:
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L1248
.L1257:
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1249
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1249
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-44]
	add	r1, r3, #1
	str	r1, [fp, #-44]
	ldr	r1, .L1280+8
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1251
.L1249:
	mov	r3, #0
.L1251:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1252
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1252
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-48]
	add	r1, r3, #1
	str	r1, [fp, #-48]
	ldr	r1, .L1280+8
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1254
.L1252:
	mov	r3, #0
.L1254:
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1255
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-52]
	lsl	r1, r1, #2
	ldr	r0, [fp, #-64]
	add	r1, r0, r1
	ldr	r1, [r1]
	ldr	r0, [r1, #4]
	ldr	r1, [fp, #-56]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	mov	r0, r1
	ldr	r1, [fp, #4]
	str	r1, [sp, #8]
	ldr	r1, [fp, #-28]
	str	r1, [sp, #4]
	str	r0, [sp]
	ldr	r0, [fp, #-24]
	bl	AddToFreq
.L1255:
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L1248:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	blt	.L1257
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	beq	.L1258
	ldr	r3, .L1280+12
	ldr	r2, .L1280+16
	ldr	r1, .L1280+20
	ldr	r0, .L1280+24
	bl	__assert_fail
.L1258:
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	beq	.L1259
	ldr	r3, .L1280+12
	ldr	r2, .L1280+28
	ldr	r1, .L1280+20
	ldr	r0, .L1280+32
	bl	__assert_fail
.L1259:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L1247:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	blt	.L1260
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L1261
.L1266:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1262
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1262
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-40]
	add	r1, r3, #1
	str	r1, [fp, #-40]
	ldr	r1, .L1280+8
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1264
.L1262:
	mov	r3, #0
.L1264:
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L1265
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-32]
	bl	NormalizeFreq
.L1265:
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L1261:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	blt	.L1266
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	beq	.L1267
	ldr	r3, .L1280+12
	ldr	r2, .L1280+36
	ldr	r1, .L1280+20
	ldr	r0, .L1280+24
	bl	__assert_fail
.L1267:
	ldr	r3, .L1280+40
	ldr	r3, [r3]
	cmp	r3, #10
	ble	.L1268
	ldr	r3, .L1280+44
	ldr	r3, [r3]
	ldr	r2, [fp, #-68]
	ldr	r1, .L1280+48
	mov	r0, r3
	bl	fprintf
.L1268:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L1269
	ldr	r2, [fp, #4]
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-36]
	bl	SetCodeDist
.L1269:
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L1270
.L1273:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L1271
.L1272:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r0, [r3, #20]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r0, [r3, #24]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L1271:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	blt	.L1272
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L1270:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	blt	.L1273
	ldr	r3, [fp, #-36]
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1281:
	.align	2
.L1280:
	.word	1072693248
	.word	507307272
	.word	nCodes
	.word	__PRETTY_FUNCTION__.9048
	.word	4425
	.word	.LC134
	.word	.LC333
	.word	4426
	.word	.LC334
	.word	4436
	.word	verbose
	.word	stderr
	.word	.LC335
	.size	OutProfile, .-OutProfile
	.section	.rodata
	.align	2
.LC336:
	.ascii	"nActiveOld > 0\000"
	.align	2
.LC337:
	.ascii	"out->codes[i] == NOCODE && fOut != NULL\000"
	.align	2
.LC338:
	.ascii	"Updating out-profile position %d weight %f (mult %f"
	.ascii	")\012\000"
	.align	2
.LC339:
	.ascii	"Updated out-profile position %d weight %f (mult %f)"
	.ascii	"\000"
	.align	2
.LC340:
	.ascii	" %c:%f\000"
	.align	2
.LC341:
	.ascii	"iFreq1 == old1->nVectors\000"
	.align	2
.LC342:
	.ascii	"iFreq2 == old2->nVectors\000"
	.align	2
.LC343:
	.ascii	"iFreqNew == new->nVectors\000"
	.text
	.align	2
	.global	UpdateOutProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	UpdateOutProfile, %function
UpdateOutProfile:
	@ args = 16, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #88
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-88]
	str	r3, [fp, #-92]
	mov	r3, #0
	str	r3, [fp, #-68]
	mov	r3, #0
	str	r3, [fp, #-64]
	mov	r3, #0
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-56]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bgt	.L1283
	ldr	r3, .L1335
	ldr	r2, .L1335+4
	ldr	r1, .L1335+8
	ldr	r0, .L1335+12
	bl	__assert_fail
.L1283:
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L1284
.L1317:
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1285
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-76]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1285
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-68]
	add	r1, r3, #1
	str	r1, [fp, #-68]
	ldr	r1, .L1335+16
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1287
.L1285:
	mov	r3, #0
.L1287:
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-84]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1288
	ldr	r3, [fp, #-84]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-76]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1288
	ldr	r3, [fp, #-84]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-64]
	add	r1, r3, #1
	str	r1, [fp, #-64]
	ldr	r1, .L1335+16
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1290
.L1288:
	mov	r3, #0
.L1290:
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-88]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1291
	ldr	r3, [fp, #-88]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-76]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1291
	ldr	r3, [fp, #-88]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-60]
	add	r1, r3, #1
	str	r1, [fp, #-60]
	ldr	r1, .L1335+16
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1293
.L1291:
	mov	r3, #0
.L1293:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-92]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1294
	ldr	r3, [fp, #-92]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-76]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1294
	ldr	r3, [fp, #-92]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-56]
	add	r1, r3, #1
	str	r1, [fp, #-56]
	ldr	r1, .L1335+16
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1296
.L1294:
	mov	r3, #0
.L1296:
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-76]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1297
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L1334
.L1297:
	ldr	r3, .L1335
	ldr	r2, .L1335+20
	ldr	r1, .L1335+8
	ldr	r0, .L1335+24
	bl	__assert_fail
.L1334:
	ldr	r3, .L1335+28
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L1299
	ldr	r3, [fp, #-76]
	cmp	r3, #2
	bgt	.L1299
	ldr	r3, .L1335+32
	ldr	r6, [r3]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r7, [r3]	@ float
	ldr	r0, [fp, #4]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r7
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	ldr	r2, [fp, #-76]
	ldr	r1, .L1335+36
	mov	r0, r6
	bl	fprintf
.L1299:
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r4, [r3]	@ float
	ldr	r0, [fp, #4]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-92]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-84]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-88]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L1300
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, .L1335+40
	str	r2, [r3]	@ float
.L1300:
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L1302
.L1303:
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L1302:
	ldr	r3, .L1335+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-72]
	cmp	r2, r3
	blt	.L1303
	ldr	r3, [fp, #-84]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1304
	ldr	r3, [fp, #-84]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	eor	r3, r3, #-2147483648
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-84]
	ldr	r0, [r1, #4]
	ldr	r1, [fp, #-76]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	mov	r0, r1
	ldr	r1, [fp, #16]
	str	r1, [sp, #8]
	ldr	r1, [fp, #-48]
	str	r1, [sp, #4]
	str	r0, [sp]
	ldr	r0, [fp, #-52]
	bl	AddToFreq
.L1304:
	ldr	r3, [fp, #-88]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1306
	ldr	r3, [fp, #-88]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	eor	r3, r3, #-2147483648
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-88]
	ldr	r0, [r1, #4]
	ldr	r1, [fp, #-76]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	mov	r0, r1
	ldr	r1, [fp, #16]
	str	r1, [sp, #8]
	ldr	r1, [fp, #-44]
	str	r1, [sp, #4]
	str	r0, [sp]
	ldr	r0, [fp, #-52]
	bl	AddToFreq
.L1306:
	ldr	r3, [fp, #-92]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1308
	ldr	r3, [fp, #-92]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-92]
	ldr	r0, [r1, #4]
	ldr	r1, [fp, #-76]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	mov	r0, r1
	ldr	r1, [fp, #16]
	str	r1, [sp, #8]
	ldr	r1, [fp, #-40]
	str	r1, [sp, #4]
	str	r0, [sp]
	ldr	r0, [fp, #-52]
	bl	AddToFreq
.L1308:
	ldr	r1, [fp, #16]
	ldr	r0, [fp, #-52]
	bl	NormalizeFreq
	ldr	r3, .L1335+28
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L1310
	ldr	r3, [fp, #-76]
	cmp	r3, #2
	bgt	.L1310
	ldr	r3, .L1335+32
	ldr	r6, [r3]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r7, [r3]	@ float
	ldr	r0, [fp, #4]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r7
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	ldr	r2, [fp, #-76]
	ldr	r1, .L1335+44
	mov	r0, r6
	bl	fprintf
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1311
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L1313
.L1316:
	ldr	r3, .L1335+32
	ldr	r4, [r3]
	ldr	r3, [fp, #16]
	cmp	r3, #0
	bne	.L1314
	ldr	r3, .L1335+48
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	b	.L1315
.L1314:
	mov	r5, #63
.L1315:
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L1335+52
	mov	r0, r4
	bl	fprintf
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L1313:
	ldr	r3, .L1335+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-72]
	cmp	r2, r3
	blt	.L1316
.L1311:
	ldr	r3, .L1335+32
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L1310:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L1284:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	blt	.L1317
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	beq	.L1318
	ldr	r3, .L1335
	ldr	r2, .L1335+56
	ldr	r1, .L1335+8
	ldr	r0, .L1335+60
	bl	__assert_fail
.L1318:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-64]
	cmp	r2, r3
	beq	.L1319
	ldr	r3, .L1335
	ldr	r2, .L1335+64
	ldr	r1, .L1335+8
	ldr	r0, .L1335+68
	bl	__assert_fail
.L1319:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	beq	.L1320
	ldr	r3, .L1335
	ldr	r2, .L1335+72
	ldr	r1, .L1335+8
	ldr	r0, .L1335+76
	bl	__assert_fail
.L1320:
	ldr	r3, [fp, #-92]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	beq	.L1321
	ldr	r3, .L1335
	ldr	r2, .L1335+80
	ldr	r1, .L1335+8
	ldr	r0, .L1335+84
	bl	__assert_fail
.L1321:
	ldr	r3, [fp, #16]
	cmp	r3, #0
	beq	.L1322
	ldr	r2, [fp, #16]
	ldr	r1, [fp, #8]
	ldr	r0, [fp, #-80]
	bl	SetCodeDist
.L1322:
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L1323
.L1324:
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-92]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-84]
	ldr	r0, [r3, #20]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r0, r3
	ldr	r3, [r3]
	sub	r2, r2, r3
	ldr	r3, [fp, #-88]
	ldr	r0, [r3, #20]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r0, r3
	ldr	r3, [r3]
	sub	r2, r2, r3
	ldr	r3, [fp, #-80]
	ldr	r0, [r3, #20]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-92]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-84]
	ldr	r0, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r0, r3
	ldr	r3, [r3]
	sub	r2, r2, r3
	ldr	r3, [fp, #-88]
	ldr	r0, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r0, r3
	ldr	r3, [r3]
	sub	r2, r2, r3
	ldr	r3, [fp, #-80]
	ldr	r0, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L1323:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #12]
	cmp	r2, r3
	blt	.L1324
	nop
	nop
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L1336:
	.align	2
.L1335:
	.word	__PRETTY_FUNCTION__.9079
	.word	4462
	.word	.LC134
	.word	.LC336
	.word	nCodes
	.word	4470
	.word	.LC337
	.word	verbose
	.word	stderr
	.word	.LC338
	.word	507307272
	.word	.LC339
	.word	codesString
	.word	.LC340
	.word	4501
	.word	.LC333
	.word	4502
	.word	.LC341
	.word	4503
	.word	.LC342
	.word	4504
	.word	.LC343
	.size	UpdateOutProfile, .-UpdateOutProfile
	.section	.rodata
	.align	2
.LC344:
	.ascii	"iFreq==profile->nVectors\000"
	.text
	.align	2
	.global	SetCodeDist
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetCodeDist, %function
SetCodeDist:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1338
	ldr	r3, [fp, #-36]
	ldr	r2, .L1349
	ldr	r2, [r2]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-32]
	str	r2, [r3, #16]
.L1338:
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1339
.L1345:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1340
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1340
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	add	r1, r3, #1
	str	r1, [fp, #-24]
	ldr	r1, .L1349
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1342
.L1340:
	mov	r3, #0
.L1342:
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L1343
.L1344:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-40]
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-16]
	bl	ProfileDistPiece
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-32]
	ldr	r0, [r1, #16]
	ldr	r1, .L1349
	ldr	r1, [r1]
	ldr	ip, [fp, #-28]
	mul	ip, r1, ip
	ldr	r1, [fp, #-20]
	add	r1, ip, r1
	lsl	r1, r1, #2
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L1343:
	ldr	r3, .L1349
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L1344
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1339:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	blt	.L1345
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	beq	.L1348
	ldr	r3, .L1349+4
	ldr	r2, .L1349+8
	ldr	r1, .L1349+12
	ldr	r0, .L1349+16
	bl	__assert_fail
.L1348:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1350:
	.align	2
.L1349:
	.word	nCodes
	.word	__PRETTY_FUNCTION__.9113
	.word	4530
	.word	.LC134
	.word	.LC344
	.size	SetCodeDist, .-SetCodeDist
	.section	.rodata
	.align	2
.LC345:
	.ascii	"NJ->parent[node] < 0\000"
	.align	2
.LC346:
	.ascii	"SetBestHit %d %d %f %f\012\000"
	.align	2
.LC347:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	SetBestHit
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetBestHit, %function
SetBestHit:
	@ args = 4, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #76
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-80]
	ldr	r3, .L1364
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L1352
	ldr	r3, .L1364+4
	ldr	r2, .L1364+8
	ldr	r1, .L1364+12
	ldr	r0, .L1364+16
	bl	__assert_fail
.L1352:
	ldr	r3, [fp, #-76]
	ldr	r2, [fp, #-64]
	str	r2, [r3]
	ldr	r3, [fp, #-76]
	mvn	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-76]
	ldr	r2, .L1364+20
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-76]
	ldr	r2, .L1364+20
	str	r2, [r3, #16]	@ float
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L1353
.L1359:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	beq	.L1354
	ldr	r2, [fp, #-60]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	b	.L1355
.L1354:
	sub	r3, fp, #52
.L1355:
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-64]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-60]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L1356
	ldr	r3, [fp, #-56]
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	mov	r2, #0
	str	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-56]
	ldr	r2, .L1364+20
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-56]
	str	r2, [r3, #16]	@ float
	b	.L1357
.L1356:
	ldr	r2, [fp, #-56]
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-68]
	bl	SetDistCriterion
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #16]	@ float
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1357
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	beq	.L1357
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-56]
	mov	ip, r2
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
.L1357:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L1353:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	blt	.L1359
	ldr	r3, .L1364+24
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L1363
	ldr	r3, .L1364+28
	ldr	r6, [r3]
	ldr	r3, [fp, #-76]
	ldr	r7, [r3]
	ldr	r3, [fp, #-76]
	ldr	r8, [r3, #4]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #12]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r3, r8
	mov	r2, r7
	ldr	r1, .L1364+32
	mov	r0, r6
	bl	fprintf
.L1363:
	nop
	ldr	r3, .L1364
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1361
	bl	__stack_chk_fail
.L1361:
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L1365:
	.align	2
.L1364:
	.word	.LC347
	.word	__PRETTY_FUNCTION__.9121
	.word	4536
	.word	.LC134
	.word	.LC345
	.word	1621981420
	.word	verbose
	.word	stderr
	.word	.LC346
	.size	SetBestHit, .-SetBestHit
	.section	.rodata
	.align	2
.LC348:
	.ascii	"Error reading header line for %s:\012%s\012\000"
	.align	2
.LC349:
	.ascii	"Header line\012%s\012in file %s does not have expec"
	.ascii	"ted code %c # %d in %s\012\000"
	.align	2
.LC350:
	.ascii	"Header line in %s should be tab-delimited\012\000"
	.align	2
.LC351:
	.ascii	"Header line in %s ends prematurely\012\000"
	.align	2
.LC352:
	.ascii	"Header line in %s has too many entries\012\000"
	.align	2
.LC353:
	.ascii	"Cannot read line %d from file %s\012\000"
	.align	2
.LC354:
	.ascii	"\011\015\012\000"
	.align	2
.LC355:
	.ascii	"\011\000"
	.align	2
.LC356:
	.ascii	"%f\000"
	.align	2
.LC357:
	.ascii	"Cannot parse field %s in file %s\012\000"
	.align	2
.LC358:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ReadMatrix
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReadMatrix, %function
ReadMatrix:
	@ args = 0, pretend = 0, frame = 5048
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #5056
	sub	sp, sp, #12
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r0, [r3, #-940]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r1, [r3, #-944]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	strb	r2, [r3, #-945]
	ldr	r3, .L1383
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3, #-908]
	sub	r3, r3, #904
	ldr	r2, .L1383+4
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r1, .L1383+8
	ldr	r0, [r3, #-940]
	bl	fopen
	str	r0, [r4, #-912]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-912]
	cmp	r3, #0
	bne	.L1367
	ldr	r3, .L1383+12
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-940]
	ldr	r1, .L1383+16
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1367:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r2, [r2, #-912]
	ldr	r1, .L1383+20
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L1368
	ldr	r3, .L1383+12
	ldr	r0, [r3]
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-940]
	ldr	r1, .L1383+24
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1368:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldrb	r3, [r3, #-945]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1369
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-928]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-932]
	b	.L1370
.L1374:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L1383+28
	ldr	r1, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-932]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L1371
	ldr	r3, .L1383+12
	ldr	r0, [r3]
	ldr	r3, .L1383+28
	ldr	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-932]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	ip, r3
	ldr	r3, .L1383+28
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	mov	r1, r2
	sub	r2, fp, #4992
	sub	r2, r2, #12
	sub	r2, r2, #12
	str	r3, [sp, #8]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-932]
	str	r3, [sp, #4]
	str	ip, [sp]
	ldr	r3, [r1, #-940]
	ldr	r1, .L1383+32
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1371:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r3, #1
	str	r3, [r2, #-928]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L1372
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #13
	beq	.L1372
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1372
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #9
	beq	.L1372
	ldr	r3, .L1383+12
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-940]
	ldr	r1, .L1383+36
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1372:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L1373
	ldr	r3, .L1383+40
	ldr	r3, [r3]
	sub	r3, r3, #1
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-932]
	cmp	r2, r3
	bge	.L1373
	ldr	r3, .L1383+12
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-940]
	ldr	r1, .L1383+44
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1373:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-932]
	add	r3, r3, #1
	str	r3, [r2, #-932]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r3, #1
	str	r3, [r2, #-928]
.L1370:
	ldr	r3, .L1383+40
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-932]
	cmp	r2, r3
	blt	.L1374
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1369
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L1369
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-928]
	add	r3, r2, r3
	sub	r3, r3, #908
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #13
	beq	.L1369
	ldr	r3, .L1383+12
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-940]
	ldr	r1, .L1383+48
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1369:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-924]
	b	.L1375
.L1381:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, #0
	strb	r2, [r3, #-908]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r2, [r2, #-912]
	ldr	r1, .L1383+20
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L1376
	ldr	r3, .L1383+12
	ldr	r0, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-924]
	add	r2, r3, #2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-940]
	ldr	r1, .L1383+52
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1376:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r1, .L1383+56
	mov	r0, r3
	bl	strtok
	str	r0, [r4, #-920]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	ldr	r1, .L1383+60
	mov	r0, #0
	bl	strtok
	str	r0, [r4, #-920]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-916]
	b	.L1377
.L1380:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r2, [r3, #-924]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-944]
	add	r2, r3, r2
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-916]
	lsl	r3, r3, #2
	add	r3, r2, r3
	sub	r2, fp, #4096
	sub	r2, r2, #12
	mov	r0, r2
	mov	r2, r3
	ldr	r1, .L1383+64
	ldr	r0, [r0, #-920]
	bl	__isoc99_sscanf
	mov	r3, r0
	cmp	r3, #1
	beq	.L1378
	ldr	r3, .L1383+12
	ldr	r0, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r3, [r3, #-940]
	ldr	r2, [r2, #-920]
	ldr	r1, .L1383+68
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1378:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-916]
	add	r3, r3, #1
	str	r3, [r2, #-916]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	ldr	r1, .L1383+60
	mov	r0, #0
	bl	strtok
	str	r0, [r4, #-920]
.L1377:
	ldr	r3, .L1383+40
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-916]
	cmp	r2, r3
	bge	.L1379
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-920]
	cmp	r3, #0
	bne	.L1380
.L1379:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-924]
	add	r3, r3, #1
	str	r3, [r2, #-924]
.L1375:
	ldr	r3, .L1383+40
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-924]
	cmp	r2, r3
	blt	.L1381
	nop
	ldr	r3, .L1383
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1382
	bl	__stack_chk_fail
.L1382:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1384:
	.align	2
.L1383:
	.word	.LC358
	.word	4996
	.word	.LC136
	.word	stderr
	.word	.LC137
	.word	5000
	.word	.LC348
	.word	codesString
	.word	.LC349
	.word	.LC350
	.word	nCodes
	.word	.LC351
	.word	.LC352
	.word	.LC353
	.word	.LC354
	.word	.LC355
	.word	.LC356
	.word	.LC357
	.size	ReadMatrix, .-ReadMatrix
	.section	.rodata
	.align	2
.LC359:
	.ascii	"Cannot read %d entry of %s\012\000"
	.align	2
.LC360:
	.ascii	"Error reading %s\012\000"
	.text
	.align	2
	.global	ReadVector
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReadVector, %function
ReadVector:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r1, .L1392
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L1386
	ldr	r3, .L1392+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	ldr	r1, .L1392+8
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1386:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L1387
.L1389:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r1, .L1392+12
	ldr	r0, [fp, #-8]
	bl	__isoc99_fscanf
	mov	r3, r0
	cmp	r3, #1
	beq	.L1388
	ldr	r3, .L1392+4
	ldr	r0, [r3]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	ldr	r1, .L1392+16
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1388:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L1387:
	ldr	r3, .L1392+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L1389
	ldr	r0, [fp, #-8]
	bl	fclose
	mov	r3, r0
	cmp	r3, #0
	beq	.L1391
	ldr	r3, .L1392+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	ldr	r1, .L1392+24
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1391:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1393:
	.align	2
.L1392:
	.word	.LC136
	.word	stderr
	.word	.LC137
	.word	.LC356
	.word	.LC359
	.word	nCodes
	.word	.LC360
	.size	ReadVector, .-ReadVector
	.section	.rodata
	.align	2
.LC361:
	.ascii	"Filename %s too long\012\000"
	.align	2
.LC362:
	.ascii	".distances\000"
	.align	2
.LC363:
	.ascii	".inverses\000"
	.align	2
.LC364:
	.ascii	".eigenvalues\000"
	.align	2
.LC365:
	.ascii	"Read distance matrix from %s\012\000"
	.align	2
.LC366:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ReadDistanceMatrix
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReadDistanceMatrix, %function
ReadDistanceMatrix:
	@ args = 0, pretend = 0, frame = 5016
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #4992
	sub	sp, sp, #28
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r0, [r3, #-916]
	ldr	r3, .L1399
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	ldr	r0, .L1399+4
	bl	mymalloc
	str	r0, [r4, #-912]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r0, [r3, #-916]
	bl	strlen
	mov	r3, r0
	ldr	r2, .L1399+8
	cmp	r3, r2
	bls	.L1395
	ldr	r3, .L1399+12
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-916]
	ldr	r1, .L1399+16
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1395:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r1, [r2, #-916]
	mov	r0, r3
	bl	strcpy
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	add	r3, r3, r2
	ldr	r2, .L1399+20
	mov	r0, r3
	mov	r1, r2
	mov	r3, #11
	mov	r2, r3
	bl	memcpy
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r1, [r3, #-912]
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r2, #1
	mov	r0, r3
	bl	ReadMatrix
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r1, [r2, #-916]
	mov	r0, r3
	bl	strcpy
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	add	r3, r3, r2
	ldr	r2, .L1399+24
	mov	r0, r3
	mov	r1, r2
	mov	r3, #10
	mov	r2, r3
	bl	memcpy
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-912]
	add	r1, r3, #1600
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r2, #0
	mov	r0, r3
	bl	ReadMatrix
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	ldr	r1, [r2, #-916]
	mov	r0, r3
	bl	strcpy
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	add	r3, r3, r2
	ldr	r2, .L1399+28
	mov	r0, r3
	mov	r1, r2
	mov	r3, #13
	mov	r2, r3
	bl	memcpy
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-912]
	add	r2, r3, #3200
	sub	r3, fp, #4992
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r1, r2
	mov	r0, r3
	bl	ReadVector
	ldr	r3, .L1399+32
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L1396
	ldr	r3, .L1399+12
	ldr	r3, [r3]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-916]
	ldr	r1, .L1399+36
	mov	r0, r3
	bl	fprintf
.L1396:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r0, [r3, #-912]
	bl	SetupDistanceMatrix
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-912]
	ldr	r2, .L1399
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1398
	bl	__stack_chk_fail
.L1398:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1400:
	.align	2
.L1399:
	.word	.LC366
	.word	5040
	.word	4980
	.word	stderr
	.word	.LC361
	.word	.LC362
	.word	.LC363
	.word	.LC364
	.word	verbose
	.word	.LC365
	.size	ReadDistanceMatrix, .-ReadDistanceMatrix
	.section	.rodata
	.align	2
.LC367:
	.ascii	"Distance matrix not symmetric for %d,%d: %f vs %f\012"
	.ascii	"\000"
	.align	2
.LC368:
	.ascii	"Distance matrix entry %d,%d should be %f but eigen-"
	.ascii	"representation gives %f\012\000"
	.align	2
.LC369:
	.ascii	"Made codeFreq\012\000"
	.text
	.align	2
	.global	SetupDistanceMatrix
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetupDistanceMatrix, %function
SetupDistanceMatrix:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #68
	str	r0, [fp, #-72]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1402
.L1411:
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L1403
.L1410:
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-60]
	add	r3, r3, r2
	ldr	r0, [r1, r3, lsl #2]	@ float
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-60]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	bic	r3, r3, #-2147483648
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, .L1430
	ldr	r3, .L1430+4
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1427
	ldr	r3, .L1430+8
	ldr	r6, [r3]
	ldr	r3, [fp, #-64]
	add	r7, r3, #1
	ldr	r3, [fp, #-60]
	add	r8, r3, #1
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-60]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-60]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r3, r8
	mov	r2, r7
	ldr	r1, .L1430+12
	mov	r0, r6
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1427:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L1406
.L1407:
	ldr	r3, [fp, #-72]
	ldr	r2, [fp, #-56]
	add	r2, r2, #800
	ldr	r0, [r3, r2, lsl #2]	@ float
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-56]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r3, r2
	add	r3, r3, #400
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-56]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-60]
	add	r3, r3, r2
	add	r3, r3, #400
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L1406:
	ldr	r3, .L1430+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L1407
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-60]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	bic	r5, r3, #-2147483648
	ldr	r2, .L1430
	ldr	r3, .L1430+4
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1428
	ldr	r3, .L1430+8
	ldr	r4, [r3]
	ldr	r3, [fp, #-64]
	add	r5, r3, #1
	ldr	r3, [fp, #-60]
	add	r6, r3, #1
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-60]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r3, r6
	mov	r2, r5
	ldr	r1, .L1430+20
	mov	r0, r4
	bl	fprintf
	mov	r0, #1
	bl	exit
.L1428:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L1403:
	ldr	r3, .L1430+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	blt	.L1410
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1402:
	ldr	r3, .L1430+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-64]
	cmp	r2, r3
	blt	.L1411
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L1412
.L1415:
	ldr	r3, [fp, #-72]
	ldr	r2, [fp, #-56]
	add	r2, r2, #820
	mov	r1, #0
	str	r1, [r3, r2, lsl #2]	@ float
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L1413
.L1414:
	ldr	r3, [fp, #-72]
	ldr	r2, [fp, #-56]
	add	r2, r2, #820
	ldr	r0, [r3, r2, lsl #2]	@ float
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-56]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r3, r2
	add	r3, r3, #400
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, r3
	ldr	r3, [fp, #-72]
	ldr	r2, [fp, #-56]
	add	r2, r2, #820
	str	r1, [r3, r2, lsl #2]	@ float
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L1413:
	ldr	r3, .L1430+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	blt	.L1414
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L1412:
	ldr	r3, .L1430+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L1415
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L1416
.L1419:
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L1417
.L1418:
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-56]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r3, r2
	add	r3, r3, #400
	ldr	r0, [r1, r3, lsl #2]	@ float
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-48]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-56]
	add	r3, r3, r2
	add	r3, r3, #840
	str	r0, [r1, r3, lsl #2]	@ float
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L1417:
	ldr	r3, .L1430+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L1418
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L1416:
	ldr	r3, .L1430+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L1419
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L1420
.L1423:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L1421
.L1422:
	ldr	r1, [fp, #-72]
	ldr	r2, [fp, #-56]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r3, r2
	add	r3, r3, #840
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L1421:
	ldr	r3, .L1430+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L1422
	ldr	r3, .L1430+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r1, r0
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1232
	add	r3, r3, #8
	str	r1, [r2, r3, lsl #2]	@ float
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L1420:
	ldr	r3, .L1430+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L1423
	ldr	r3, .L1430+24
	ldr	r3, [r3]
	cmp	r3, #10
	ble	.L1429
	ldr	r3, .L1430+8
	ldr	r3, [r3]
	mov	r2, #14
	mov	r1, #1
	ldr	r0, .L1430+28
	bl	fwrite
.L1429:
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L1431:
	.align	2
.L1430:
	.word	-1598689907
	.word	1051772663
	.word	stderr
	.word	.LC367
	.word	nCodes
	.word	.LC368
	.word	verbose
	.word	.LC369
	.size	SetupDistanceMatrix, .-SetupDistanceMatrix
	.section	.rodata
	.align	2
.LC370:
	.ascii	"Worsen constraint: from %.3f to %.3f distance %.3f "
	.ascii	"to %.3f: \000"
	.align	2
.LC371:
	.ascii	" %d (%d/%d %d/%d %d/%d %d/%d)\000"
	.align	2
.LC372:
	.ascii	"AC|BD\000"
	.align	2
.LC373:
	.ascii	"AD|BC\000"
	.align	2
.LC374:
	.ascii	"AB|CD\000"
	.align	2
.LC375:
	.ascii	"NNI scores ABvsCD %.5f ACvsBD %.5f ADvsBC %.5f choi"
	.ascii	"ce %s\012\000"
	.align	2
.LC376:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ChooseNNI
	.syntax unified
	.arm
	.fpu softvfp
	.type	ChooseNNI, %function
ChooseNNI:
	@ args = 4, pretend = 0, frame = 152
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #184
	str	r0, [fp, #-152]
	str	r1, [fp, #-156]
	str	r2, [fp, #-160]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-168]
	ldr	r3, .L1460
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	sub	r3, fp, #76
	str	r3, [sp]
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-156]
	mov	r1, #4
	ldr	r0, [fp, #-152]
	bl	CorrectedPairDistances
	sub	r3, fp, #124
	mov	r2, r3
	ldr	r1, [fp, #-164]
	ldr	r0, [fp, #-152]
	bl	QuartetConstraintPenalties
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-168]
	stm	r1, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-168]
	add	r4, r1, #8
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-168]
	add	r4, r1, #16
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	mov	r3, #0
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-168]
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1433
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-168]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L1433
	mov	r3, #1
	str	r3, [fp, #-148]
	b	.L1436
.L1433:
	ldr	r3, [fp, #-168]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-168]
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1436
	ldr	r3, [fp, #-168]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L1436
	mov	r3, #2
	str	r3, [fp, #-148]
.L1436:
	ldr	r3, .L1460+4
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L1439
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #104
	ldmia	r3, {r4-r5}
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	ldr	r2, .L1460+8
	ldr	r3, .L1460+12
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1439
	ldr	r3, .L1460+16
	ldr	ip, [r3]
	sub	r7, fp, #124
	ldmia	r7, {r6-r7}
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #104
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-168]
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-148]
	cmp	r3, #1
	bne	.L1441
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	b	.L1442
.L1441:
	ldr	r3, [fp, #-168]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
.L1442:
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, r6
	mov	r3, r7
	ldr	r1, .L1460+20
	mov	r0, ip
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L1443
.L1446:
	sub	r3, fp, #100
	mov	r2, r3
	ldr	r1, [fp, #-144]
	ldr	r0, [fp, #-152]
	bl	QuartetConstraintPenaltiesPiece
	mov	r3, r0
	cmp	r3, #0
	beq	.L1444
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #80
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	ldr	r2, .L1460+8
	ldr	r3, .L1460+12
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1444
	ldr	r3, .L1460+16
	ldr	r6, [r3]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r7, [r3]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-152]
	add	r2, r2, #4
	ldr	r2, [r2]
	ldr	r1, [r2, #20]
	ldr	r2, [fp, #-144]
	lsl	r2, r2, #2
	add	r2, r1, r2
	ldr	r2, [r2]
	ldr	r1, [fp, #-152]
	add	r1, r1, #4
	ldr	r1, [r1]
	ldr	r0, [r1, #24]
	ldr	r1, [fp, #-144]
	lsl	r1, r1, #2
	add	r1, r0, r1
	ldr	r1, [r1]
	ldr	r0, [fp, #-152]
	add	r0, r0, #8
	ldr	r0, [r0]
	ldr	ip, [r0, #20]
	ldr	r0, [fp, #-144]
	lsl	r0, r0, #2
	add	r0, ip, r0
	ldr	r0, [r0]
	ldr	ip, [fp, #-152]
	add	ip, ip, #8
	ldr	ip, [ip]
	ldr	lr, [ip, #24]
	ldr	ip, [fp, #-144]
	lsl	ip, ip, #2
	add	ip, lr, ip
	ldr	ip, [ip]
	ldr	lr, [fp, #-152]
	add	lr, lr, #12
	ldr	lr, [lr]
	ldr	r4, [lr, #20]
	ldr	lr, [fp, #-144]
	lsl	lr, lr, #2
	add	lr, r4, lr
	ldr	lr, [lr]
	ldr	r4, [fp, #-152]
	add	r4, r4, #12
	ldr	r4, [r4]
	ldr	r5, [r4, #24]
	ldr	r4, [fp, #-144]
	lsl	r4, r4, #2
	add	r4, r5, r4
	ldr	r4, [r4]
	str	r4, [sp, #24]
	str	lr, [sp, #20]
	str	ip, [sp, #16]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r7
	ldr	r2, [fp, #-144]
	ldr	r1, .L1460+24
	mov	r0, r6
	bl	fprintf
.L1444:
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L1443:
	ldr	r2, [fp, #-144]
	ldr	r3, [fp, #-164]
	cmp	r2, r3
	blt	.L1446
	ldr	r3, .L1460+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L1439:
	ldr	r3, .L1460+4
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L1447
	ldr	r3, .L1460+16
	ldr	lr, [r3]
	ldr	r3, [fp, #-168]
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-168]
	add	r1, r1, #16
	ldmia	r1, {r0-r1}
	ldr	ip, [fp, #-148]
	cmp	ip, #0
	beq	.L1448
	ldr	ip, [fp, #-148]
	cmp	ip, #1
	bne	.L1449
	ldr	ip, .L1460+28
	b	.L1451
.L1449:
	ldr	ip, .L1460+32
	b	.L1451
.L1448:
	ldr	ip, .L1460+36
.L1451:
	str	ip, [sp, #16]
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r3, r5
	ldr	r1, .L1460+40
	mov	r0, lr
	bl	fprintf
.L1447:
	ldr	r3, [fp, #-148]
	ldr	r2, .L1460
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1453
	bl	__stack_chk_fail
.L1453:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L1461:
	.align	2
.L1460:
	.word	.LC376
	.word	verbose
	.word	-1598689907
	.word	1051772663
	.word	stderr
	.word	.LC370
	.word	.LC371
	.word	.LC372
	.word	.LC373
	.word	.LC374
	.word	.LC375
	.size	ChooseNNI, .-ChooseNNI
	.section	.rodata
	.align	2
.LC377:
	.ascii	"nCodes == 4\000"
	.align	2
.LC378:
	.ascii	"Replaced weight %f with %f from w1 %f w2 %f PSame %"
	.ascii	"f %f f12code %f f12other %f\012\000"
	.global	__aeabi_fcmpeq
	.align	2
.LC379:
	.ascii	"fPostTot > 1e-10\000"
	.global	__aeabi_fcmpge
	.align	2
.LC380:
	.ascii	"0\000"
	.align	2
.LC381:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	PosteriorProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	PosteriorProfile, %function
PosteriorProfile:
	@ args = 24, pretend = 0, frame = 2704
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #2752
	sub	sp, sp, #12
	str	r0, [fp, #-2712]
	str	r1, [fp, #-2716]
	str	r2, [fp, #-2724]
	str	r3, [fp, #-2720]
	ldr	r3, [fp, #12]
	str	r3, [fp, #-2728]
	ldr	r3, [fp, #16]
	str	r3, [fp, #-2732]
	ldr	r3, .L1637
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r2, .L1637+4
	ldr	r3, .L1637+8
	ldr	r0, [fp, #-2724]
	ldr	r1, [fp, #-2720]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1463
	ldr	r2, .L1637+4
	ldr	r3, .L1637+8
	str	r2, [fp, #-2724]
	str	r3, [fp, #-2720]
.L1463:
	ldr	r2, .L1637+4
	ldr	r3, .L1637+8
	ldmib	fp, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1465
	ldr	r2, .L1637+4
	ldr	r3, .L1637+8
	stmib	fp, {r2-r3}
.L1465:
	ldr	r1, [fp, #24]
	ldr	r0, [fp, #20]
	bl	NewProfile
	str	r0, [fp, #-2644]
	mov	r3, #0
	str	r3, [fp, #-2704]
	b	.L1467
.L1468:
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	mov	r2, #127
	strb	r2, [r3]
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #1065353216
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-2704]
	add	r3, r3, #1
	str	r3, [fp, #-2704]
.L1467:
	ldr	r2, [fp, #-2704]
	ldr	r3, [fp, #20]
	cmp	r2, r3
	blt	.L1468
	ldr	r3, [fp, #-2644]
	ldr	r2, [fp, #20]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-2644]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r3, .L1637+92
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-2644]
	str	r2, [r3, #8]
	mov	r3, #0
	str	r3, [fp, #-2704]
	b	.L1469
.L1470:
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-2704]
	add	r3, r3, #1
	str	r3, [fp, #-2704]
.L1469:
	ldr	r3, [fp, #-2644]
	ldr	r3, [r3, #12]
	ldr	r2, .L1637+92
	ldr	r2, [r2]
	mul	r3, r2, r3
	ldr	r2, [fp, #-2704]
	cmp	r2, r3
	blt	.L1470
	mov	r3, #0
	str	r3, [fp, #-2692]
	mov	r3, #0
	str	r3, [fp, #-2688]
	mov	r3, #0
	str	r3, [fp, #-2684]
	mov	r3, #0
	str	r3, [fp, #-2680]
	mov	r3, #0
	str	r3, [fp, #-2676]
	ldr	r3, [fp, #-2728]
	cmp	r3, #0
	beq	.L1471
	ldr	r3, [fp, #-2732]
	ldr	r2, [fp, #-2728]
	ldr	r0, [fp, #-2724]
	ldr	r1, [fp, #-2720]
	bl	ExpEigenRates
	str	r0, [fp, #-2680]
	ldr	r3, [fp, #-2732]
	ldr	r2, [fp, #-2728]
	ldmib	fp, {r0-r1}
	bl	ExpEigenRates
	str	r0, [fp, #-2676]
.L1471:
	ldr	r3, [fp, #-2728]
	cmp	r3, #0
	bne	.L1472
	ldr	r3, .L1637+92
	ldr	r3, [r3]
	cmp	r3, #4
	beq	.L1473
	ldr	r3, .L1637+72
	ldr	r2, .L1637+12
	ldr	r1, .L1637+84
	ldr	r0, .L1637+16
	bl	__assert_fail
.L1473:
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1474
.L1479:
	mov	r3, #0
	str	r3, [fp, #-2696]
	b	.L1475
.L1478:
	ldr	r2, [fp, #-2700]
	ldr	r3, [fp, #-2696]
	cmp	r2, r3
	bne	.L1476
	mov	r2, #1065353216
	b	.L1477
.L1476:
	mov	r2, #0
.L1477:
	ldr	r3, [fp, #-2700]
	lsl	r1, r3, #2
	ldr	r3, [fp, #-2696]
	add	r3, r1, r3
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2052]	@ float
	ldr	r3, [fp, #-2696]
	add	r3, r3, #1
	str	r3, [fp, #-2696]
.L1475:
	ldr	r3, [fp, #-2696]
	cmp	r3, #3
	ble	.L1478
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1474:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1479
	mov	r3, #0
	str	r3, [fp, #-2696]
	b	.L1480
.L1481:
	ldr	r3, [fp, #-2696]
	add	r3, r3, #508
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	mov	r2, #1048576000
	str	r2, [r3, #-2052]	@ float
	ldr	r3, [fp, #-2696]
	add	r3, r3, #1
	str	r3, [fp, #-2696]
.L1480:
	ldr	r3, [fp, #-2696]
	cmp	r3, #3
	ble	.L1481
	ldr	r2, [fp, #-2732]
	ldr	r0, [fp, #-2724]
	ldr	r1, [fp, #-2720]
	bl	PSameVector
	str	r0, [fp, #-2596]
	ldr	r1, [fp, #-2732]
	ldr	r0, [fp, #-2596]
	bl	PDiffVector
	str	r0, [fp, #-2592]
	ldr	r2, [fp, #-2732]
	ldmib	fp, {r0-r1}
	bl	PSameVector
	str	r0, [fp, #-2588]
	ldr	r1, [fp, #-2732]
	ldr	r0, [fp, #-2588]
	bl	PDiffVector
	str	r0, [fp, #-2584]
	mov	r3, #0
	str	r3, [fp, #-2704]
	b	.L1482
.L1512:
	ldr	r3, [fp, #-2732]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-2580]
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2452]
	str	r3, [fp, #-2448]
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2444]
	str	r3, [fp, #-2440]
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2576]
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2572]
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1483
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1483
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2688]
	add	r1, r3, #1
	str	r1, [fp, #-2688]
	ldr	r1, .L1637+92
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1485
.L1483:
	mov	r3, #0
.L1485:
	str	r3, [fp, #-2672]
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1486
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1486
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2684]
	add	r1, r3, #1
	str	r1, [fp, #-2684]
	ldr	r1, .L1637+92
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1488
.L1486:
	mov	r3, #0
.L1488:
	str	r3, [fp, #-2668]
	ldr	r3, [fp, #-2672]
	cmp	r3, #0
	bne	.L1489
	ldr	r3, [fp, #-2668]
	cmp	r3, #0
	bne	.L1489
	ldr	r3, [fp, #-2576]
	cmp	r3, #127
	bne	.L1490
	ldr	r3, [fp, #-2572]
	cmp	r3, #127
	bne	.L1490
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	mov	r2, #127
	strb	r2, [r3]
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	b	.L1491
.L1490:
	ldr	r3, [fp, #-2576]
	cmp	r3, #127
	bne	.L1492
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldr	r2, [fp, #-2572]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2588]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2584]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-2444]
	ldr	r3, [fp, #-2440]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	b	.L1491
.L1492:
	ldr	r3, [fp, #-2572]
	cmp	r3, #127
	bne	.L1493
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldr	r2, [fp, #-2576]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2596]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2592]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-2452]
	ldr	r3, [fp, #-2448]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	b	.L1491
.L1493:
	ldr	r2, [fp, #-2576]
	ldr	r3, [fp, #-2572]
	cmp	r2, r3
	bne	.L1489
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldr	r2, [fp, #-2576]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2596]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-2452]
	ldr	r3, [fp, #-2448]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2452]
	ldr	r3, [fp, #-2448]
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1637+20
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2588]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-2444]
	ldr	r3, [fp, #-2440]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r2, [fp, #-2444]
	ldr	r3, [fp, #-2440]
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1637+20
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2436]
	str	r3, [fp, #-2432]
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2592]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-2452]
	ldr	r3, [fp, #-2448]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2452]
	ldr	r3, [fp, #-2448]
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1637+20
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2584]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-2444]
	ldr	r3, [fp, #-2440]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r2, [fp, #-2444]
	ldr	r3, [fp, #-2440]
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1637+20
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2428]
	str	r3, [fp, #-2424]
	mov	r2, #0
	ldr	r3, .L1637+24
	ldr	r0, [fp, #-2428]
	ldr	r1, [fp, #-2424]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-2436]
	ldr	r3, [fp, #-2432]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2436]
	ldr	r1, [fp, #-2432]
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2420]
	str	r3, [fp, #-2416]
	mov	r2, #0
	ldr	r3, .L1637+20
	ldr	r0, [fp, #-2420]
	ldr	r1, [fp, #-2416]
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1637+28
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1637+24
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, .L1637+32
	ldr	r3, .L1637+36
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1612
	b	.L1491
.L1612:
	ldr	r3, .L1637+40
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L1496
	ldr	r3, .L1637+44
	ldr	r8, [r3]
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2596]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-2580]
	lsl	r1, r1, #3
	ldr	r0, [fp, #-2588]
	add	r1, r0, r1
	ldmia	r1, {r0-r1}
	ldr	r4, [fp, #-2428]
	ldr	r5, [fp, #-2424]
	str	r4, [sp, #48]
	str	r5, [sp, #52]
	ldr	r4, [fp, #-2436]
	ldr	r5, [fp, #-2432]
	str	r4, [sp, #40]
	str	r5, [sp, #44]
	str	r0, [sp, #32]
	str	r1, [sp, #36]
	str	r2, [sp, #24]
	str	r3, [sp, #28]
	ldr	r2, [fp, #-2444]
	ldr	r3, [fp, #-2440]
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	ldr	r2, [fp, #-2452]
	ldr	r3, [fp, #-2448]
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	ldr	r2, .L1637+32
	ldr	r3, .L1637+36
	stm	sp, {r2-r3}
	mov	r2, r6
	mov	r3, r7
	ldr	r1, .L1637+48
	mov	r0, r8
	bl	fprintf
.L1496:
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, .L1637+52
	str	r2, [r3]	@ float
	b	.L1491
.L1489:
	ldr	r3, [fp, #-2672]
	cmp	r3, #0
	bne	.L1497
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1498
.L1499:
	ldr	r2, [fp, #-2452]
	ldr	r3, [fp, #-2448]
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1637+20
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2212]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1498:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1499
	ldr	r3, [fp, #-2576]
	cmp	r3, #127
	beq	.L1500
	ldr	r3, [fp, #-2576]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r3, [r3, #-2212]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2452]
	ldr	r3, [fp, #-2448]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2576]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2212]	@ float
.L1500:
	sub	r3, fp, #2224
	sub	r3, r3, #12
	sub	r3, r3, #4
	str	r3, [fp, #-2672]
.L1497:
	ldr	r3, [fp, #-2668]
	cmp	r3, #0
	bne	.L1501
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1502
.L1503:
	ldr	r2, [fp, #-2444]
	ldr	r3, [fp, #-2440]
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1637+20
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2132]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1502:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1503
	ldr	r3, [fp, #-2572]
	cmp	r3, #127
	beq	.L1504
	ldr	r3, [fp, #-2572]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r3, [r3, #-2132]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2444]
	ldr	r3, [fp, #-2440]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2572]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2132]	@ float
.L1504:
	sub	r3, fp, #2144
	sub	r3, r3, #12
	sub	r3, r3, #4
	str	r3, [fp, #-2668]
.L1501:
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	mov	r2, #127
	strb	r2, [r3]
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #1065353216
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1505
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1505
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2692]
	add	r1, r3, #1
	str	r1, [fp, #-2692]
	ldr	r1, .L1637+92
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1507
.L1505:
	mov	r3, #0
.L1507:
	str	r3, [fp, #-2568]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-2564]
	str	r3, [fp, #-2560]
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1508
.L1638:
	.align	2
.L1637:
	.word	.LC381
	.word	-755914244
	.word	1061184077
	.word	4798
	.word	.LC377
	.word	1070596096
	.word	1074266112
	.word	1074790400
	.word	-1598689907
	.word	1051772663
	.word	verbose
	.word	stderr
	.word	.LC378
	.word	897988541
	.word	4916
	.word	.LC326
	.word	-640172613
	.word	1037794527
	.word	__PRETTY_FUNCTION__.9243
	.word	4965
	.word	.LC379
	.word	.LC134
	.word	1072693248
	.word	nCodes
.L1509:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2672]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2596]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2672]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2592]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2668]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2588]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2668]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-2580]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2584]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2568]
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2568]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2564]
	ldr	r1, [fp, #-2560]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2564]
	str	r3, [fp, #-2560]
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1508:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1509
	ldr	r2, [fp, #-2564]
	ldr	r3, [fp, #-2560]
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2412]
	str	r3, [fp, #-2408]
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1510
.L1511:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2568]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2412]
	ldr	r3, [fp, #-2408]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2568]
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1510:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1511
.L1491:
	ldr	r3, [fp, #-2704]
	add	r3, r3, #1
	str	r3, [fp, #-2704]
.L1482:
	ldr	r2, [fp, #-2704]
	ldr	r3, [fp, #20]
	cmp	r2, r3
	blt	.L1512
	ldr	r3, [fp, #-2732]
	ldr	r3, [r3]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-2596]
	bl	myfree
	str	r0, [fp, #-2596]
	ldr	r3, [fp, #-2732]
	ldr	r3, [r3]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-2588]
	bl	myfree
	str	r0, [fp, #-2588]
	ldr	r3, [fp, #-2732]
	ldr	r3, [r3]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-2592]
	bl	myfree
	str	r0, [fp, #-2592]
	ldr	r3, [fp, #-2732]
	ldr	r3, [r3]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-2584]
	bl	myfree
	str	r0, [fp, #-2584]
	b	.L1513
.L1472:
	ldr	r3, .L1637+92
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L1514
	ldr	r3, [fp, #-2728]
	add	r3, r3, #10304
	add	r3, r3, #16
	str	r3, [fp, #-2616]
	mov	r3, #0
	str	r3, [fp, #-2704]
	b	.L1515
.L1551:
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1516
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1516
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L1516
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L1516
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	b	.L1519
.L1516:
	ldr	r3, [fp, #-2732]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-2612]
	ldr	r3, [fp, #-2612]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-2680]
	add	r3, r2, r3
	str	r3, [fp, #-2608]
	ldr	r3, [fp, #-2612]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-2676]
	add	r3, r2, r3
	str	r3, [fp, #-2604]
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1520
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1520
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2688]
	add	r1, r3, #1
	str	r1, [fp, #-2688]
	ldr	r1, .L1637+92
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1522
.L1520:
	mov	r3, #0
.L1522:
	str	r3, [fp, #-2664]
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1523
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1523
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2684]
	add	r1, r3, #1
	str	r1, [fp, #-2684]
	ldr	r1, .L1637+92
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1525
.L1523:
	mov	r3, #0
.L1525:
	str	r3, [fp, #-2660]
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1526
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1526
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2692]
	add	r1, r3, #1
	str	r1, [fp, #-2692]
	ldr	r1, .L1637+92
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1528
.L1526:
	mov	r3, #0
.L1528:
	str	r3, [fp, #-2600]
	ldr	r3, [fp, #-2600]
	cmp	r3, #0
	bne	.L1529
	ldr	r3, .L1637+72
	ldr	r2, .L1637+56
	ldr	r1, .L1637+84
	ldr	r0, .L1637+60
	bl	__assert_fail
.L1529:
	ldr	r3, [fp, #-2664]
	cmp	r3, #0
	bne	.L1530
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #160
	ldr	r2, [fp, #-2728]
	add	r3, r2, r3
	str	r3, [fp, #-2664]
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2476]
	str	r3, [fp, #-2472]
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2476]
	ldr	r1, [fp, #-2472]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1530
	mov	r2, #0
	ldr	r3, .L1637+88
	ldr	r0, [fp, #-2476]
	ldr	r1, [fp, #-2472]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1530
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1533
.L1534:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2664]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2476]
	ldr	r3, [fp, #-2472]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2476]
	ldr	r3, [fp, #-2472]
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2616]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2372]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1533:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1534
	sub	r3, fp, #2384
	sub	r3, r3, #12
	sub	r3, r3, #4
	str	r3, [fp, #-2664]
.L1530:
	ldr	r3, [fp, #-2660]
	cmp	r3, #0
	bne	.L1535
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #160
	ldr	r2, [fp, #-2728]
	add	r3, r2, r3
	str	r3, [fp, #-2660]
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2468]
	str	r3, [fp, #-2464]
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2468]
	ldr	r1, [fp, #-2464]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1535
	mov	r2, #0
	ldr	r3, .L1637+88
	ldr	r0, [fp, #-2468]
	ldr	r1, [fp, #-2464]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1535
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1538
.L1539:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2660]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2468]
	ldr	r3, [fp, #-2464]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2468]
	ldr	r3, [fp, #-2464]
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2616]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2292]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1538:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1539
	sub	r3, fp, #2304
	sub	r3, r3, #12
	sub	r3, r3, #4
	str	r3, [fp, #-2660]
.L1535:
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1540
.L1541:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2664]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2608]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2212]	@ float
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2660]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2604]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2132]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1540:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1541
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1542
.L1545:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-2556]
	str	r3, [fp, #-2552]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-2548]
	str	r3, [fp, #-2544]
	mov	r3, #0
	str	r3, [fp, #-2696]
	b	.L1543
.L1544:
	ldr	r3, [fp, #-2696]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r0, [r3, #-2212]	@ float
	ldr	r1, [fp, #-2728]
	ldr	r2, [fp, #-2700]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2696]
	add	r3, r3, r2
	add	r3, r3, #40
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2556]
	ldr	r1, [fp, #-2552]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2556]
	str	r3, [fp, #-2552]
	ldr	r3, [fp, #-2696]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r0, [r3, #-2132]	@ float
	ldr	r1, [fp, #-2728]
	ldr	r2, [fp, #-2700]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2696]
	add	r3, r3, r2
	add	r3, r3, #40
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2548]
	ldr	r1, [fp, #-2544]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2548]
	str	r3, [fp, #-2544]
	ldr	r3, [fp, #-2696]
	add	r3, r3, #1
	str	r3, [fp, #-2696]
.L1543:
	ldr	r3, [fp, #-2696]
	cmp	r3, #3
	ble	.L1544
	ldr	r2, [fp, #-2548]
	ldr	r3, [fp, #-2544]
	ldr	r0, [fp, #-2556]
	ldr	r1, [fp, #-2552]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-2728]
	ldr	r2, [fp, #-2700]
	add	r2, r2, #20
	ldr	r3, [r3, r2, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2052]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1542:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1545
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-2540]
	str	r3, [fp, #-2536]
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1546
.L1547:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r3, [r3, #-2052]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2540]
	ldr	r1, [fp, #-2536]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2540]
	str	r3, [fp, #-2536]
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1546:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1547
	ldr	r2, .L1637+64
	ldr	r3, .L1637+68
	ldr	r0, [fp, #-2540]
	ldr	r1, [fp, #-2536]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1548
	ldr	r3, .L1637+72
	ldr	r2, .L1637+76
	ldr	r1, .L1637+84
	ldr	r0, .L1637+80
	bl	__assert_fail
.L1548:
	ldr	r2, [fp, #-2540]
	ldr	r3, [fp, #-2536]
	mov	r0, #0
	ldr	r1, .L1637+88
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2460]
	str	r3, [fp, #-2456]
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1549
.L1550:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r3, [r3, #-2052]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2460]
	ldr	r3, [fp, #-2456]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2052]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1549:
	ldr	r3, [fp, #-2700]
	cmp	r3, #3
	ble	.L1550
	ldr	r3, [fp, #-2728]
	add	r3, r3, #11968
	add	r3, r3, #32
	sub	r1, fp, #2064
	sub	r1, r1, #12
	sub	r1, r1, #4
	ldr	r2, [fp, #-2600]
	mov	r0, r3
	bl	matrixt_by_vector4
.L1519:
	ldr	r3, [fp, #-2704]
	add	r3, r3, #1
	str	r3, [fp, #-2704]
.L1515:
	ldr	r2, [fp, #-2704]
	ldr	r3, [fp, #20]
	cmp	r2, r3
	blt	.L1551
	b	.L1513
.L1514:
	ldr	r3, .L1637+92
	ldr	r3, [r3]
	cmp	r3, #20
	bne	.L1552
	ldr	r3, [fp, #-2728]
	add	r3, r3, #10304
	add	r3, r3, #16
	str	r3, [fp, #-2640]
	mov	r3, #0
	str	r3, [fp, #-2704]
	b	.L1553
.L1600:
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1554
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1554
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L1554
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L1554
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]	@ float
	b	.L1557
.L1554:
	ldr	r3, [fp, #-2732]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-2636]
	ldr	r2, [fp, #-2636]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	mov	r2, r3
	ldr	r3, [fp, #-2680]
	add	r3, r3, r2
	str	r3, [fp, #-2632]
	ldr	r2, [fp, #-2636]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	mov	r2, r3
	ldr	r3, [fp, #-2676]
	add	r3, r3, r2
	str	r3, [fp, #-2628]
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1558
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1558
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2688]
	add	r1, r3, #1
	str	r1, [fp, #-2688]
	ldr	r1, .L1637+92
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1560
.L1558:
	mov	r3, #0
.L1560:
	str	r3, [fp, #-2656]
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1561
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1561
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2684]
	add	r1, r3, #1
	str	r1, [fp, #-2684]
	ldr	r1, .L1637+92
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1563
.L1561:
	mov	r3, #0
.L1563:
	str	r3, [fp, #-2652]
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1564
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1564
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2692]
	add	r1, r3, #1
	str	r1, [fp, #-2692]
	ldr	r1, .L1639
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1566
.L1564:
	mov	r3, #0
.L1566:
	str	r3, [fp, #-2624]
	ldr	r3, [fp, #-2624]
	cmp	r3, #0
	bne	.L1567
	ldr	r3, .L1639+4
	ldr	r2, .L1639+8
	ldr	r1, .L1639+12
	ldr	r0, .L1639+16
	bl	__assert_fail
.L1567:
	ldr	r3, [fp, #-2656]
	cmp	r3, #0
	bne	.L1568
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #160
	ldr	r2, [fp, #-2728]
	add	r3, r2, r3
	str	r3, [fp, #-2656]
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2524]
	str	r3, [fp, #-2520]
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2524]
	ldr	r1, [fp, #-2520]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1568
	mov	r2, #0
	ldr	r3, .L1639+20
	ldr	r0, [fp, #-2524]
	ldr	r1, [fp, #-2520]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1568
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1571
.L1572:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2656]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2524]
	ldr	r3, [fp, #-2520]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2524]
	ldr	r3, [fp, #-2520]
	mov	r0, #0
	ldr	r1, .L1639+20
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2640]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2372]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1571:
	ldr	r3, [fp, #-2700]
	cmp	r3, #19
	ble	.L1572
	sub	r3, fp, #2384
	sub	r3, r3, #12
	sub	r3, r3, #4
	str	r3, [fp, #-2656]
.L1568:
	ldr	r3, [fp, #-2652]
	cmp	r3, #0
	bne	.L1573
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2704]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #160
	ldr	r2, [fp, #-2728]
	add	r3, r2, r3
	str	r3, [fp, #-2652]
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2516]
	str	r3, [fp, #-2512]
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2516]
	ldr	r1, [fp, #-2512]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1573
	mov	r2, #0
	ldr	r3, .L1639+20
	ldr	r0, [fp, #-2516]
	ldr	r1, [fp, #-2512]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1573
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1576
.L1577:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2652]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2516]
	ldr	r3, [fp, #-2512]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2516]
	ldr	r3, [fp, #-2512]
	mov	r0, #0
	ldr	r1, .L1639+20
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2640]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2292]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1576:
	ldr	r3, [fp, #-2700]
	cmp	r3, #19
	ble	.L1577
	sub	r3, fp, #2304
	sub	r3, r3, #12
	sub	r3, r3, #4
	str	r3, [fp, #-2652]
.L1573:
	sub	r3, fp, #2224
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r2, #20
	ldr	r1, [fp, #-2632]
	ldr	r0, [fp, #-2656]
	bl	vector_multiply
	sub	r3, fp, #2144
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r2, #20
	ldr	r1, [fp, #-2628]
	ldr	r0, [fp, #-2652]
	bl	vector_multiply
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1578
.L1582:
	ldr	r2, [fp, #-2700]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #160
	ldr	r2, [fp, #-2728]
	add	r2, r2, r3
	sub	r1, fp, #2144
	sub	r1, r1, #12
	sub	r1, r1, #4
	sub	r0, fp, #2224
	sub	r0, r0, #12
	sub	r0, r0, #4
	mov	r3, #20
	bl	vector_dot_product_rot
	ldr	r3, [fp, #-2728]
	ldr	r2, [fp, #-2700]
	add	r2, r2, #20
	ldr	r3, [r3, r2, lsl #2]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [fp, #-2620]	@ float
	mov	r1, #0
	ldr	r0, [fp, #-2620]	@ float
	bl	__aeabi_fcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L1635
	ldr	r2, [fp, #-2620]	@ float
	b	.L1581
.L1635:
	mov	r2, #0
.L1581:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	str	r2, [r3, #-2052]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1578:
	ldr	r3, [fp, #-2700]
	cmp	r3, #19
	ble	.L1582
	sub	r3, fp, #2064
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r1, #20
	mov	r0, r3
	bl	vector_sum
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2508]
	str	r3, [fp, #-2504]
	ldr	r2, .L1639+24
	ldr	r3, .L1639+28
	ldr	r0, [fp, #-2508]
	ldr	r1, [fp, #-2504]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1583
	ldr	r3, .L1639+4
	ldr	r2, .L1639+32
	ldr	r1, .L1639+12
	ldr	r0, .L1639+36
	bl	__assert_fail
.L1583:
	ldr	r2, [fp, #-2508]
	ldr	r3, [fp, #-2504]
	mov	r0, #0
	ldr	r1, .L1639+20
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2500]
	str	r3, [fp, #-2496]
	ldr	r0, [fp, #-2500]
	ldr	r1, [fp, #-2496]
	bl	__aeabi_d2f
	mov	r1, r0
	sub	r3, fp, #2064
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r2, #20
	mov	r0, r3
	bl	vector_multiply_by
	mvn	r3, #0
	str	r3, [fp, #-2648]
	ldr	r3, .L1639+40
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L1584
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1585
.L1588:
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r3, [r3, #-2052]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r3, .L1639+44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L1636
	ldr	r3, [fp, #-2700]
	str	r3, [fp, #-2648]
	b	.L1584
.L1636:
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1585:
	ldr	r3, [fp, #-2700]
	cmp	r3, #19
	ble	.L1588
.L1584:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-2532]
	str	r3, [fp, #-2528]
	ldr	r3, [fp, #-2648]
	cmp	r3, #0
	blt	.L1589
	ldr	r3, [fp, #-2648]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r0, [r3, #-2052]	@ float
	ldr	r1, [fp, #-2728]
	ldr	r2, [fp, #-2648]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #2
	mov	r2, r3
	add	r3, r1, r2
	add	r3, r3, #13632
	add	r3, r3, #48
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r1, [fp, #-2728]
	ldr	r2, [fp, #-2648]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #2
	mov	r2, r3
	add	r3, r1, r2
	add	r3, r3, #13632
	add	r3, r3, #48
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L1639+20
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2532]
	str	r3, [fp, #-2528]
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1590
.L1593:
	ldr	r2, [fp, #-2700]
	ldr	r3, [fp, #-2648]
	cmp	r2, r3
	beq	.L1591
	ldr	r2, [fp, #-2532]
	ldr	r3, [fp, #-2528]
	mov	r0, #0
	ldr	r1, .L1639+20
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r1, [fp, #-2728]
	ldr	r2, [fp, #-2648]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2700]
	add	r3, r3, r2
	add	r3, r3, #3408
	add	r3, r3, #12
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2492]
	str	r3, [fp, #-2488]
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r3, [r3, #-2052]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r3, .L1639+48
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2492]
	ldr	r1, [fp, #-2488]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1591
	mvn	r3, #0
	str	r3, [fp, #-2648]
	b	.L1589
.L1591:
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1590:
	ldr	r3, [fp, #-2700]
	cmp	r3, #19
	ble	.L1593
.L1589:
	ldr	r3, [fp, #-2648]
	cmp	r3, #0
	blt	.L1594
	ldr	r3, .L1639+52
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L1639+52
	str	r3, [r2]
	ldr	r3, [fp, #-2728]
	ldr	r2, [fp, #-2648]
	add	r2, r2, #20
	ldr	r3, [r3, r2, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2532]
	ldr	r1, [fp, #-2528]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2484]
	str	r3, [fp, #-2480]
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1595
.L1596:
	ldr	r1, [fp, #-2728]
	ldr	r2, [fp, #-2648]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2700]
	add	r3, r3, r2
	add	r3, r3, #40
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2484]
	ldr	r3, [fp, #-2480]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2532]
	ldr	r3, [fp, #-2528]
	mov	r0, #0
	ldr	r1, .L1639+20
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r1, [fp, #-2728]
	ldr	r2, [fp, #-2648]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2700]
	add	r3, r3, r2
	add	r3, r3, #3808
	add	r3, r3, #12
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2624]
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1595:
	ldr	r3, [fp, #-2700]
	cmp	r3, #19
	ble	.L1596
	b	.L1557
.L1594:
	ldr	r3, .L1639+56
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L1639+56
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-2700]
	b	.L1598
.L1599:
	ldr	r2, [fp, #-2700]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #10368
	add	r3, r3, #32
	ldr	r2, [fp, #-2728]
	add	r1, r2, r3
	ldr	r3, [fp, #-2700]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2624]
	add	r4, r2, r3
	sub	r3, fp, #2064
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r2, #20
	mov	r0, r3
	bl	vector_multiply_sum
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-2700]
	add	r3, r3, #1
	str	r3, [fp, #-2700]
.L1598:
	ldr	r3, [fp, #-2700]
	cmp	r3, #19
	ble	.L1599
.L1557:
	ldr	r3, [fp, #-2704]
	add	r3, r3, #1
	str	r3, [fp, #-2704]
.L1553:
	ldr	r2, [fp, #-2704]
	ldr	r3, [fp, #20]
	cmp	r2, r3
	blt	.L1600
	b	.L1513
.L1552:
	ldr	r3, .L1639+4
	ldr	r2, .L1639+60
	ldr	r1, .L1639+12
	ldr	r0, .L1639+64
	bl	__assert_fail
.L1513:
	ldr	r3, [fp, #-2728]
	cmp	r3, #0
	beq	.L1601
	ldr	r3, [fp, #-2732]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L1639
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-2680]
	bl	myfree
	str	r0, [fp, #-2680]
	ldr	r3, [fp, #-2732]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L1639
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-2676]
	bl	myfree
	str	r0, [fp, #-2676]
.L1601:
	ldr	r3, [fp, #-2644]
	ldr	r2, [fp, #-2692]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-2644]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L1602
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #8]
	ldr	r3, .L1639
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #20]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-2644]
	str	r2, [r3, #8]
	b	.L1603
.L1602:
	ldr	r3, [fp, #-2644]
	ldr	r0, [r3, #8]
	ldr	r3, .L1639
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #20]
	mul	r3, r2, r3
	lsl	r1, r3, #2
	ldr	r3, [fp, #-2644]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r3, .L1639
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r2, r3, #2
	mov	r3, #1
	bl	myrealloc
	mov	r2, r0
	ldr	r3, [fp, #-2644]
	str	r2, [r3, #8]
.L1603:
	ldr	r3, [fp, #-2644]
	ldr	r2, [r3, #12]
	ldr	r3, .L1639+68
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L1639+68
	str	r3, [r2]
	ldr	r3, [fp, #-2644]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #20]
	sub	r2, r2, r3
	ldr	r3, .L1639+72
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L1639+72
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-2704]
	b	.L1604
.L1605:
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-2644]
	ldr	r0, [r3, #20]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-2712]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-2716]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-2644]
	ldr	r0, [r3, #24]
	ldr	r3, [fp, #-2704]
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-2704]
	add	r3, r3, #1
	str	r3, [fp, #-2704]
.L1604:
	ldr	r2, [fp, #-2704]
	ldr	r3, [fp, #24]
	cmp	r2, r3
	blt	.L1605
	ldr	r3, .L1639+76
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L1639+76
	str	r3, [r2]
	ldr	r3, [fp, #-2644]
	ldr	r2, .L1639+80
	ldr	r1, [r2]
	ldr	r2, [fp, #-32]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1607
	bl	__stack_chk_fail
.L1607:
	mov	r0, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L1640:
	.align	2
.L1639:
	.word	nCodes
	.word	__PRETTY_FUNCTION__.9243
	.word	4996
	.word	.LC134
	.word	.LC326
	.word	1072693248
	.word	-640172613
	.word	1037794527
	.word	5028
	.word	.LC379
	.word	exactML
	.word	approxMLminf
	.word	approxMLminratio
	.word	nAAPosteriorRough
	.word	nAAPosteriorExact
	.word	5070
	.word	.LC380
	.word	nProfileFreqAlloc
	.word	nProfileFreqAvoid
	.word	nPosteriorCompute
	.word	.LC381
	.size	PosteriorProfile, .-PosteriorProfile
	.align	2
	.global	PSameVector
	.syntax unified
	.arm
	.fpu softvfp
	.type	PSameVector, %function
PSameVector:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #28
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1642
.L1643:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	bic	r5, r3, #-2147483648
	ldr	r2, .L1645
	ldr	r3, .L1645+4
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	mov	r2, #0
	ldr	r3, .L1645+8
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r6, r2, r3
	mov	r2, #0
	ldr	r3, .L1645+12
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1642:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L1643
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L1646:
	.align	2
.L1645:
	.word	1431655765
	.word	-1074440875
	.word	1072168960
	.word	1070596096
	.size	PSameVector, .-PSameVector
	.align	2
	.global	PDiffVector
	.syntax unified
	.arm
	.fpu softvfp
	.type	PDiffVector, %function
PDiffVector:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L1648
.L1649:
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L1651
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-16]
	add	r4, r2, r3
	mov	r2, #0
	ldr	r3, .L1651+4
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L1648:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L1649
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1652:
	.align	2
.L1651:
	.word	1072693248
	.word	1074266112
	.size	PDiffVector, .-PDiffVector
	.align	2
	.global	ExpEigenRates
	.syntax unified
	.arm
	.fpu softvfp
	.type	ExpEigenRates, %function
ExpEigenRates:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L1662
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L1654
.L1659:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1655
.L1658:
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r2, .L1662+4
	ldr	r3, .L1662+8
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1656
	ldr	r2, .L1662+4
	ldr	r3, .L1662+8
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
.L1656:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-28]
	add	r3, r3, #3392
	add	r3, r3, #8
	ldr	r3, [r2, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L1662
	ldr	r1, [r1]
	ldr	r0, [fp, #-32]
	mul	r0, r1, r0
	ldr	r1, [fp, #-28]
	add	r1, r0, r1
	lsl	r1, r1, #2
	ldr	r0, [fp, #-24]
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1655:
	ldr	r3, .L1662
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L1658
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L1654:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L1659
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1663:
	.align	2
.L1662:
	.word	nCodes
	.word	-755914244
	.word	1060135501
	.size	ExpEigenRates, .-ExpEigenRates
	.section	.rodata
	.align	2
.LC382:
	.ascii	"rates != NULL && rates->nRateCategories > 0\000"
	.align	2
.LC383:
	.ascii	"lkAB > 0\000"
	.global	__aeabi_dcmpeq
	.align	2
.LC384:
	.ascii	"# FastTree.c::PairLogLk -- numerical problem!\012\000"
	.align	2
.LC385:
	.ascii	"# This block is intended for loading into R\012\000"
	.align	2
.LC386:
	.ascii	"lkAB = %.8g\012\000"
	.align	2
.LC387:
	.ascii	"Branch_length= %.8g\012alignment_position=%d\012nCo"
	.ascii	"des=%d\012rate_category=%d\012rate=%.8g\012\000"
	.align	2
.LC388:
	.ascii	"wA=%.8g\012wB=%.8g\012\000"
	.align	2
.LC389:
	.ascii	"codeA = %d\012codeB = %d\012\000"
	.align	2
.LC390:
	.ascii	"fA = c(\000"
	.align	2
.LC391:
	.ascii	",\000"
	.align	2
.LC392:
	.ascii	"%s %.8g\000"
	.align	2
.LC393:
	.ascii	")\012\000"
	.align	2
.LC394:
	.ascii	"fB = c(\000"
	.align	2
.LC395:
	.ascii	"stat = c(\000"
	.align	2
.LC396:
	.ascii	"eigenval = c(\000"
	.align	2
.LC397:
	.ascii	"expeigen = c(\000"
	.align	2
.LC398:
	.ascii	"codeFreq = c(\000"
	.align	2
.LC399:
	.ascii	"eigeninv = c(\000"
	.align	2
.LC400:
	.ascii	"# Transform into matrices and compute un-rotated ve"
	.ascii	"ctors for profiles A and B\012\000"
	.align	2
.LC401:
	.ascii	"codeFreq = matrix(codeFreq,nrow=20);\012\000"
	.align	2
.LC402:
	.ascii	"eigeninv = matrix(eigeninv,nrow=20);\012\000"
	.align	2
.LC403:
	.ascii	"unrotA = stat * (eigeninv %*% fA)\012\000"
	.align	2
.LC404:
	.ascii	"unrotB = stat * (eigeninv %*% fB)\012\000"
	.align	2
.LC405:
	.ascii	"# End of R block\012\000"
	.align	2
.LC406:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	PairLogLk
	.syntax unified
	.arm
	.fpu softvfp
	.type	PairLogLk, %function
PairLogLk:
	@ args = 16, pretend = 0, frame = 2368
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #2384
	sub	sp, sp, #8
	str	r0, [fp, #-2360]
	str	r1, [fp, #-2364]
	str	r2, [fp, #-2372]
	str	r3, [fp, #-2368]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-2376]
	ldr	r3, [fp, #12]
	str	r3, [fp, #-2380]
	ldr	r3, [fp, #16]
	str	r3, [fp, #-2384]
	ldr	r3, .L1825
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r2, #0
	ldr	r3, .L1825+4
	str	r2, [fp, #-2236]
	str	r3, [fp, #-2232]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-2228]
	str	r3, [fp, #-2224]
	ldr	r3, [fp, #-2380]
	cmp	r3, #0
	beq	.L1665
	ldr	r3, [fp, #-2380]
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L1822
.L1665:
	ldr	r3, .L1825+32
	ldr	r2, .L1825+8
	ldr	r1, .L1825+40
	ldr	r0, .L1825+12
	bl	__assert_fail
.L1822:
	mov	r3, #0
	str	r3, [fp, #-2340]
	ldr	r3, [fp, #-2376]
	cmp	r3, #0
	beq	.L1667
	ldr	r3, [fp, #-2380]
	ldr	r2, [fp, #-2376]
	ldr	r0, [fp, #-2372]
	ldr	r1, [fp, #-2368]
	bl	ExpEigenRates
	str	r0, [fp, #-2340]
.L1667:
	ldr	r3, [fp, #-2376]
	cmp	r3, #0
	bne	.L1668
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	cmp	r3, #4
	beq	.L1669
	ldr	r3, .L1825+32
	ldr	r2, .L1825+16
	ldr	r1, .L1825+40
	ldr	r0, .L1825+20
	bl	__assert_fail
.L1669:
	ldr	r2, [fp, #-2380]
	ldr	r0, [fp, #-2372]
	ldr	r1, [fp, #-2368]
	bl	PSameVector
	str	r0, [fp, #-2264]
	ldr	r1, [fp, #-2380]
	ldr	r0, [fp, #-2264]
	bl	PDiffVector
	str	r0, [fp, #-2260]
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1670
.L1675:
	mov	r3, #0
	str	r3, [fp, #-2344]
	b	.L1671
.L1674:
	ldr	r2, [fp, #-2348]
	ldr	r3, [fp, #-2344]
	cmp	r2, r3
	bne	.L1672
	mov	r2, #1065353216
	b	.L1673
.L1672:
	mov	r2, #0
.L1673:
	ldr	r3, [fp, #-2348]
	lsl	r1, r3, #2
	ldr	r3, [fp, #-2344]
	add	r3, r1, r3
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-2052]	@ float
	ldr	r3, [fp, #-2344]
	add	r3, r3, #1
	str	r3, [fp, #-2344]
.L1671:
	ldr	r3, [fp, #-2344]
	cmp	r3, #3
	ble	.L1674
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1670:
	ldr	r3, [fp, #-2348]
	cmp	r3, #3
	ble	.L1675
	mov	r3, #0
	str	r3, [fp, #-2344]
	b	.L1676
.L1677:
	ldr	r3, [fp, #-2344]
	add	r3, r3, #508
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #1048576000
	str	r2, [r3, #-2052]	@ float
	ldr	r3, [fp, #-2344]
	add	r3, r3, #1
	str	r3, [fp, #-2344]
.L1676:
	ldr	r3, [fp, #-2344]
	cmp	r3, #3
	ble	.L1677
	mov	r3, #0
	str	r3, [fp, #-2336]
	mov	r3, #0
	str	r3, [fp, #-2332]
	mov	r3, #0
	str	r3, [fp, #-2352]
	b	.L1678
.L1701:
	ldr	r3, [fp, #-2380]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-2256]
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2172]
	str	r3, [fp, #-2168]
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2164]
	str	r3, [fp, #-2160]
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2252]
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2248]
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1679
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1679
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2336]
	add	r1, r3, #1
	str	r1, [fp, #-2336]
	ldr	r1, .L1825+132
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1681
.L1679:
	mov	r3, #0
.L1681:
	str	r3, [fp, #-2244]
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1682
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1682
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2332]
	add	r1, r3, #1
	str	r1, [fp, #-2332]
	ldr	r1, .L1825+132
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1684
.L1682:
	mov	r3, #0
.L1684:
	str	r3, [fp, #-2240]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-2220]
	str	r3, [fp, #-2216]
	ldr	r3, [fp, #-2244]
	cmp	r3, #0
	bne	.L1685
	ldr	r3, [fp, #-2240]
	cmp	r3, #0
	bne	.L1685
	ldr	r3, [fp, #-2252]
	cmp	r3, #127
	bne	.L1686
	mov	r2, #0
	ldr	r3, .L1825+24
	str	r2, [fp, #-2220]
	str	r3, [fp, #-2216]
	b	.L1690
.L1686:
	ldr	r3, [fp, #-2248]
	cmp	r3, #127
	bne	.L1688
	mov	r2, #0
	ldr	r3, .L1825+24
	str	r2, [fp, #-2220]
	str	r3, [fp, #-2216]
	b	.L1690
.L1688:
	ldr	r2, [fp, #-2252]
	ldr	r3, [fp, #-2248]
	cmp	r2, r3
	bne	.L1689
	ldr	r3, [fp, #-2256]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2264]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-2172]
	ldr	r3, [fp, #-2168]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-2164]
	ldr	r3, [fp, #-2160]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2164]
	ldr	r3, [fp, #-2160]
	ldr	r0, [fp, #-2172]
	ldr	r1, [fp, #-2168]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L1825+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1825+24
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2220]
	str	r3, [fp, #-2216]
	b	.L1690
.L1689:
	ldr	r3, [fp, #-2256]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2260]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-2172]
	ldr	r3, [fp, #-2168]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-2164]
	ldr	r3, [fp, #-2160]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2164]
	ldr	r3, [fp, #-2160]
	ldr	r0, [fp, #-2172]
	ldr	r1, [fp, #-2168]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L1825+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1825+24
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2220]
	str	r3, [fp, #-2216]
	b	.L1690
.L1685:
	ldr	r3, [fp, #-2244]
	cmp	r3, #0
	bne	.L1691
	ldr	r3, [fp, #-2252]
	cmp	r3, #127
	bne	.L1692
	mov	r2, #0
	ldr	r3, .L1825+24
	str	r2, [fp, #-2220]
	str	r3, [fp, #-2216]
	b	.L1690
.L1692:
	ldr	r3, [fp, #-2256]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2260]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-2252]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2240]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r3, [fp, #-2256]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2264]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-2256]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2260]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-2172]
	ldr	r3, [fp, #-2168]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2172]
	ldr	r3, [fp, #-2168]
	mov	r0, #0
	ldr	r1, .L1825+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1825+24
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2220]
	str	r3, [fp, #-2216]
	b	.L1690
.L1691:
	ldr	r3, [fp, #-2240]
	cmp	r3, #0
	bne	.L1693
	ldr	r3, [fp, #-2248]
	cmp	r3, #127
	bne	.L1694
	mov	r2, #0
	ldr	r3, .L1825+24
	str	r2, [fp, #-2220]
	str	r3, [fp, #-2216]
	b	.L1690
.L1694:
	ldr	r3, [fp, #-2256]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2260]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-2248]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2244]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r6, r0
	mov	r7, r1
	ldr	r3, [fp, #-2256]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2264]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-2256]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2260]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-2164]
	ldr	r3, [fp, #-2160]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2164]
	ldr	r3, [fp, #-2160]
	mov	r0, #0
	ldr	r1, .L1825+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L1825+24
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2220]
	str	r3, [fp, #-2216]
	b	.L1690
.L1693:
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1695
.L1696:
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2240]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2244]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r3, [fp, #-2256]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2264]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2244]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, #1065353216
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r3, [fp, #-2256]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2260]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2220]
	ldr	r1, [fp, #-2216]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2220]
	str	r3, [fp, #-2216]
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1695:
	ldr	r3, [fp, #-2348]
	cmp	r3, #3
	ble	.L1696
.L1690:
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2220]
	ldr	r1, [fp, #-2216]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1697
	ldr	r3, .L1825+32
	ldr	r2, .L1825+28
	ldr	r1, .L1825+40
	ldr	r0, .L1825+180
	bl	__assert_fail
.L1697:
	ldr	r2, [fp, #-2220]
	ldr	r3, [fp, #-2216]
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2236]
	str	r3, [fp, #-2232]
	b	.L1698
.L1699:
	mov	r2, #0
	ldr	r3, .L1825+60
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2236]
	str	r3, [fp, #-2232]
	ldr	r2, .L1825+52
	ldr	r3, .L1825+56
	ldr	r0, [fp, #-2228]
	ldr	r1, [fp, #-2224]
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2228]
	str	r3, [fp, #-2224]
.L1698:
	ldr	r2, .L1825+44
	ldr	r3, .L1825+48
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1699
	ldr	r3, [fp, #-2384]
	cmp	r3, #0
	beq	.L1700
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2384]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2384]
	add	r4, r2, r3
	ldr	r2, [fp, #-2220]
	ldr	r3, [fp, #-2216]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
.L1700:
	ldr	r3, [fp, #-2352]
	add	r3, r3, #1
	str	r3, [fp, #-2352]
.L1678:
	ldr	r2, [fp, #-2352]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L1701
	ldr	r3, [fp, #-2380]
	ldr	r3, [r3]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-2264]
	bl	myfree
	str	r0, [fp, #-2264]
	ldr	r3, [fp, #-2380]
	ldr	r3, [r3]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-2260]
	bl	myfree
	str	r0, [fp, #-2260]
	b	.L1702
.L1668:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L1703
	mov	r3, #0
	str	r3, [fp, #-2328]
	mov	r3, #0
	str	r3, [fp, #-2324]
	ldr	r3, [fp, #-2376]
	add	r3, r3, #10304
	add	r3, r3, #16
	str	r3, [fp, #-2276]
	mov	r3, #0
	str	r3, [fp, #-2352]
	b	.L1704
.L1735:
	ldr	r3, [fp, #-2380]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-2272]
	ldr	r3, [fp, #-2272]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-2340]
	add	r3, r2, r3
	str	r3, [fp, #-2268]
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2188]
	str	r3, [fp, #-2184]
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2180]
	str	r3, [fp, #-2176]
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2188]
	ldr	r1, [fp, #-2184]
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L1705
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2180]
	ldr	r1, [fp, #-2176]
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L1705
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1705
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	beq	.L1823
.L1705:
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1709
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1709
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2328]
	add	r1, r3, #1
	str	r1, [fp, #-2328]
	ldr	r1, .L1825+132
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1711
.L1709:
	mov	r3, #0
.L1711:
	str	r3, [fp, #-2320]
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1712
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1712
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2324]
	add	r1, r3, #1
	str	r1, [fp, #-2324]
	ldr	r1, .L1825+132
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1714
.L1712:
	mov	r3, #0
.L1714:
	str	r3, [fp, #-2316]
	ldr	r3, [fp, #-2320]
	cmp	r3, #0
	bne	.L1715
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #160
	ldr	r2, [fp, #-2376]
	add	r3, r2, r3
	str	r3, [fp, #-2320]
.L1715:
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2188]
	ldr	r1, [fp, #-2184]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1716
	mov	r2, #0
	ldr	r3, .L1825+4
	ldr	r0, [fp, #-2188]
	ldr	r1, [fp, #-2184]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1716
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1719
.L1720:
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2320]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2188]
	ldr	r3, [fp, #-2184]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2188]
	ldr	r3, [fp, #-2184]
	mov	r0, #0
	ldr	r1, .L1825+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2276]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-2132]	@ float
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1719:
	ldr	r3, [fp, #-2348]
	cmp	r3, #3
	ble	.L1720
	sub	r3, fp, #2144
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-2320]
.L1716:
	ldr	r3, [fp, #-2316]
	cmp	r3, #0
	bne	.L1721
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #160
	ldr	r2, [fp, #-2376]
	add	r3, r2, r3
	str	r3, [fp, #-2316]
.L1721:
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2180]
	ldr	r1, [fp, #-2176]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1722
	mov	r2, #0
	ldr	r3, .L1825+4
	ldr	r0, [fp, #-2180]
	ldr	r1, [fp, #-2176]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1722
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1725
.L1726:
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2316]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2180]
	ldr	r3, [fp, #-2176]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2180]
	ldr	r3, [fp, #-2176]
	mov	r0, #0
	ldr	r1, .L1825+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2276]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-2052]	@ float
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1725:
	ldr	r3, [fp, #-2348]
	cmp	r3, #3
	ble	.L1726
	sub	r3, fp, #2064
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-2316]
.L1722:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-2212]
	str	r3, [fp, #-2208]
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1727
.L1826:
	.align	2
.L1825:
	.word	.LC406
	.word	1072693248
	.word	5137
	.word	.LC382
	.word	5143
	.word	.LC377
	.word	1070596096
	.word	5198
	.word	__PRETTY_FUNCTION__.9428
	.word	5246
	.word	.LC134
	.word	-350469331
	.word	1058682594
	.word	-1145744108
	.word	1075997617
	.word	1086556160
	.word	1072693248
	.word	.LC384
	.word	.LC385
	.word	.LC386
	.word	.LC387
	.word	.LC388
	.word	.LC389
	.word	.LC390
	.word	.LC394
	.word	.LC395
	.word	.LC396
	.word	.LC397
	.word	.LC398
	.word	.LC399
	.word	.LC120
	.word	.LC391
	.word	.LC392
	.word	nCodes
	.word	.LC393
	.word	.LC400
	.word	.LC401
	.word	.LC402
	.word	.LC403
	.word	.LC404
	.word	stderr
	.word	.LC405
	.word	__PRETTY_FUNCTION__.9428
	.word	5342
	.word	.LC134
	.word	.LC383
.L1728:
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2268]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2320]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2316]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2212]
	ldr	r1, [fp, #-2208]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2212]
	str	r3, [fp, #-2208]
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1727:
	ldr	r3, [fp, #-2348]
	cmp	r3, #3
	ble	.L1728
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2212]
	ldr	r1, [fp, #-2208]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1729
	ldr	r3, .L1825+32
	ldr	r2, .L1825+36
	ldr	r1, .L1825+40
	ldr	r0, .L1825+180
	bl	__assert_fail
.L1729:
	ldr	r3, [fp, #-2384]
	cmp	r3, #0
	beq	.L1730
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2384]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2384]
	add	r4, r2, r3
	ldr	r2, [fp, #-2212]
	ldr	r3, [fp, #-2208]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
.L1730:
	ldr	r2, [fp, #-2212]
	ldr	r3, [fp, #-2208]
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2236]
	str	r3, [fp, #-2232]
	b	.L1731
.L1732:
	mov	r2, #0
	ldr	r3, .L1825+60
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2236]
	str	r3, [fp, #-2232]
	ldr	r2, .L1825+52
	ldr	r3, .L1825+56
	ldr	r0, [fp, #-2228]
	ldr	r1, [fp, #-2224]
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2228]
	str	r3, [fp, #-2224]
.L1731:
	ldr	r2, .L1825+44
	ldr	r3, .L1825+48
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1732
	b	.L1733
.L1734:
	ldr	r2, .L1825+44
	ldr	r3, .L1825+48
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2236]
	str	r3, [fp, #-2232]
	ldr	r2, .L1825+52
	ldr	r3, .L1825+56
	ldr	r0, [fp, #-2228]
	ldr	r1, [fp, #-2224]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2228]
	str	r3, [fp, #-2224]
.L1733:
	mov	r2, #0
	ldr	r3, .L1825+60
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1734
	b	.L1708
.L1823:
	nop
.L1708:
	ldr	r3, [fp, #-2352]
	add	r3, r3, #1
	str	r3, [fp, #-2352]
.L1704:
	ldr	r2, [fp, #-2352]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L1735
	b	.L1702
.L1703:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	cmp	r3, #20
	bne	.L1736
	mov	r3, #0
	str	r3, [fp, #-2312]
	mov	r3, #0
	str	r3, [fp, #-2308]
	ldr	r3, [fp, #-2376]
	add	r3, r3, #10304
	add	r3, r3, #16
	str	r3, [fp, #-2292]
	mov	r3, #0
	str	r3, [fp, #-2352]
	b	.L1737
.L1800:
	ldr	r3, [fp, #-2380]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-2288]
	ldr	r2, [fp, #-2288]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	mov	r2, r3
	ldr	r3, [fp, #-2340]
	add	r3, r3, r2
	str	r3, [fp, #-2284]
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2204]
	str	r3, [fp, #-2200]
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2196]
	str	r3, [fp, #-2192]
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2204]
	ldr	r1, [fp, #-2200]
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L1738
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2196]
	ldr	r1, [fp, #-2192]
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L1738
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1738
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	beq	.L1824
.L1738:
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1742
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1742
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2312]
	add	r1, r3, #1
	str	r1, [fp, #-2312]
	ldr	r1, .L1825+132
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1744
.L1742:
	mov	r3, #0
.L1744:
	str	r3, [fp, #-2304]
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1745
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1745
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2308]
	add	r1, r3, #1
	str	r1, [fp, #-2308]
	ldr	r1, .L1825+132
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L1747
.L1745:
	mov	r3, #0
.L1747:
	str	r3, [fp, #-2300]
	ldr	r3, [fp, #-2304]
	cmp	r3, #0
	bne	.L1748
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #160
	ldr	r2, [fp, #-2376]
	add	r3, r2, r3
	str	r3, [fp, #-2304]
.L1748:
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2204]
	ldr	r1, [fp, #-2200]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1749
	mov	r2, #0
	ldr	r3, .L1825+64
	ldr	r0, [fp, #-2204]
	ldr	r1, [fp, #-2200]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1749
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1752
.L1753:
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2304]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2204]
	ldr	r3, [fp, #-2200]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2204]
	ldr	r3, [fp, #-2200]
	mov	r0, #0
	ldr	r1, .L1825+64
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2292]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-2132]	@ float
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1752:
	ldr	r3, [fp, #-2348]
	cmp	r3, #19
	ble	.L1753
	sub	r3, fp, #2144
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-2304]
.L1749:
	ldr	r3, [fp, #-2300]
	cmp	r3, #0
	bne	.L1754
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, #160
	ldr	r2, [fp, #-2376]
	add	r3, r2, r3
	str	r3, [fp, #-2300]
.L1754:
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-2196]
	ldr	r1, [fp, #-2192]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1755
	mov	r2, #0
	ldr	r3, .L1825+64
	ldr	r0, [fp, #-2196]
	ldr	r1, [fp, #-2192]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1755
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1758
.L1759:
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2300]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, [fp, #-2196]
	ldr	r3, [fp, #-2192]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, [fp, #-2196]
	ldr	r3, [fp, #-2192]
	mov	r0, #0
	ldr	r1, .L1825+64
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2292]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-2052]	@ float
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1758:
	ldr	r3, [fp, #-2348]
	cmp	r3, #19
	ble	.L1759
	sub	r3, fp, #2064
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-2300]
.L1755:
	mov	r3, #20
	ldr	r2, [fp, #-2300]
	ldr	r1, [fp, #-2304]
	ldr	r0, [fp, #-2284]
	bl	vector_multiply3_sum
	str	r0, [fp, #-2280]	@ float
	mov	r3, #1
	mov	r4, r3
	mov	r1, #0
	ldr	r0, [fp, #-2280]	@ float
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1760
	mov	r3, #0
	mov	r4, r3
.L1760:
	and	r3, r4, #255
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L1761
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #46
	mov	r1, #1
	ldr	r0, .L1825+68
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #44
	mov	r1, #1
	ldr	r0, .L1825+72
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r4, [r3]
	ldr	r0, [fp, #-2280]	@ float
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L1825+76
	mov	r0, r4
	bl	fprintf
	ldr	r3, .L1825+160
	ldr	r5, [r3]
	ldr	r3, .L1825+132
	ldr	r4, [r3]
	ldr	r3, [fp, #-2380]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2288]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-2288]
	str	r3, [sp, #8]
	str	r4, [sp, #4]
	ldr	r3, [fp, #-2352]
	str	r3, [sp]
	ldr	r2, [fp, #-2372]
	ldr	r3, [fp, #-2368]
	ldr	r1, .L1825+80
	mov	r0, r5
	bl	fprintf
	ldr	r3, .L1825+160
	ldr	r0, [r3]
	ldr	r2, [fp, #-2196]
	ldr	r3, [fp, #-2192]
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-2204]
	ldr	r3, [fp, #-2200]
	ldr	r1, .L1825+84
	bl	fprintf
	ldr	r3, .L1825+160
	ldr	r0, [r3]
	ldr	r3, [fp, #-2360]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-2364]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2352]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r1
	ldr	r1, .L1825+88
	bl	fprintf
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #7
	mov	r1, #1
	ldr	r0, .L1825+92
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1762
.L1765:
	ldr	r3, .L1825+160
	ldr	r4, [r3]
	ldr	r3, [fp, #-2348]
	cmp	r3, #0
	bne	.L1763
	ldr	r5, .L1825+120
	b	.L1764
.L1763:
	ldr	r5, .L1825+124
.L1764:
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2304]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L1825+128
	mov	r0, r4
	bl	fprintf
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1762:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	ldr	r2, [fp, #-2348]
	cmp	r2, r3
	blt	.L1765
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #2
	mov	r1, #1
	ldr	r0, .L1825+136
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #7
	mov	r1, #1
	ldr	r0, .L1825+96
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1766
.L1769:
	ldr	r3, .L1825+160
	ldr	r4, [r3]
	ldr	r3, [fp, #-2348]
	cmp	r3, #0
	bne	.L1767
	ldr	r5, .L1825+120
	b	.L1768
.L1767:
	ldr	r5, .L1825+124
.L1768:
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2300]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L1825+128
	mov	r0, r4
	bl	fprintf
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1766:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	ldr	r2, [fp, #-2348]
	cmp	r2, r3
	blt	.L1769
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #2
	mov	r1, #1
	ldr	r0, .L1825+136
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #9
	mov	r1, #1
	ldr	r0, .L1825+100
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1770
.L1773:
	ldr	r3, .L1825+160
	ldr	r4, [r3]
	ldr	r3, [fp, #-2348]
	cmp	r3, #0
	bne	.L1771
	ldr	r5, .L1825+120
	b	.L1772
.L1771:
	ldr	r5, .L1825+124
.L1772:
	ldr	r3, [fp, #-2376]
	ldr	r2, [fp, #-2348]
	ldr	r3, [r3, r2, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L1825+128
	mov	r0, r4
	bl	fprintf
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1770:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	ldr	r2, [fp, #-2348]
	cmp	r2, r3
	blt	.L1773
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #2
	mov	r1, #1
	ldr	r0, .L1825+136
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #13
	mov	r1, #1
	ldr	r0, .L1825+104
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1774
.L1777:
	ldr	r3, .L1825+160
	ldr	r4, [r3]
	ldr	r3, [fp, #-2348]
	cmp	r3, #0
	bne	.L1775
	ldr	r5, .L1825+120
	b	.L1776
.L1775:
	ldr	r5, .L1825+124
.L1776:
	ldr	r2, [fp, #-2376]
	ldr	r3, [fp, #-2348]
	add	r3, r3, #3392
	add	r3, r3, #8
	ldr	r3, [r2, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L1825+128
	mov	r0, r4
	bl	fprintf
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1774:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	ldr	r2, [fp, #-2348]
	cmp	r2, r3
	blt	.L1777
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #2
	mov	r1, #1
	ldr	r0, .L1825+136
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #13
	mov	r1, #1
	ldr	r0, .L1825+108
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1778
.L1781:
	ldr	r3, .L1825+160
	ldr	r4, [r3]
	ldr	r3, [fp, #-2348]
	cmp	r3, #0
	bne	.L1779
	ldr	r5, .L1825+120
	b	.L1780
.L1779:
	ldr	r5, .L1825+124
.L1780:
	ldr	r3, [fp, #-2348]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2284]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L1825+128
	mov	r0, r4
	bl	fprintf
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1778:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	ldr	r2, [fp, #-2348]
	cmp	r2, r3
	blt	.L1781
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #2
	mov	r1, #1
	ldr	r0, .L1825+136
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #13
	mov	r1, #1
	ldr	r0, .L1825+112
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1782
.L1787:
	mov	r3, #0
	str	r3, [fp, #-2296]
	b	.L1783
.L1786:
	ldr	r3, .L1825+160
	ldr	r4, [r3]
	ldr	r3, [fp, #-2348]
	cmp	r3, #0
	bne	.L1784
	ldr	r3, [fp, #-2296]
	cmp	r3, #0
	bne	.L1784
	ldr	r5, .L1825+120
	b	.L1785
.L1784:
	ldr	r5, .L1825+124
.L1785:
	ldr	r1, [fp, #-2376]
	ldr	r2, [fp, #-2348]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2296]
	add	r3, r3, r2
	add	r3, r3, #40
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L1825+128
	mov	r0, r4
	bl	fprintf
	ldr	r3, [fp, #-2296]
	add	r3, r3, #1
	str	r3, [fp, #-2296]
.L1783:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	ldr	r2, [fp, #-2296]
	cmp	r2, r3
	blt	.L1786
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1782:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	ldr	r2, [fp, #-2348]
	cmp	r2, r3
	blt	.L1787
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #2
	mov	r1, #1
	ldr	r0, .L1825+136
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #13
	mov	r1, #1
	ldr	r0, .L1825+116
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-2348]
	b	.L1788
.L1793:
	mov	r3, #0
	str	r3, [fp, #-2296]
	b	.L1789
.L1792:
	ldr	r3, .L1825+160
	ldr	r4, [r3]
	ldr	r3, [fp, #-2348]
	cmp	r3, #0
	bne	.L1790
	ldr	r3, [fp, #-2296]
	cmp	r3, #0
	bne	.L1790
	ldr	r5, .L1825+120
	b	.L1791
.L1790:
	ldr	r5, .L1825+124
.L1791:
	ldr	r1, [fp, #-2376]
	ldr	r2, [fp, #-2348]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2296]
	add	r3, r3, r2
	add	r3, r3, #2592
	add	r3, r3, #8
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L1825+128
	mov	r0, r4
	bl	fprintf
	ldr	r3, [fp, #-2296]
	add	r3, r3, #1
	str	r3, [fp, #-2296]
.L1789:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	ldr	r2, [fp, #-2296]
	cmp	r2, r3
	blt	.L1792
	ldr	r3, [fp, #-2348]
	add	r3, r3, #1
	str	r3, [fp, #-2348]
.L1788:
	ldr	r3, .L1825+132
	ldr	r3, [r3]
	ldr	r2, [fp, #-2348]
	cmp	r2, r3
	blt	.L1793
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #2
	mov	r1, #1
	ldr	r0, .L1825+136
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #78
	mov	r1, #1
	ldr	r0, .L1825+140
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #37
	mov	r1, #1
	ldr	r0, .L1825+144
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #37
	mov	r1, #1
	ldr	r0, .L1825+148
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #34
	mov	r1, #1
	ldr	r0, .L1825+152
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #34
	mov	r1, #1
	ldr	r0, .L1825+156
	bl	fwrite
	ldr	r3, .L1825+160
	ldr	r3, [r3]
	mov	r2, #17
	mov	r1, #1
	ldr	r0, .L1825+164
	bl	fwrite
.L1761:
	mov	r1, #0
	ldr	r0, [fp, #-2280]	@ float
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1794
	ldr	r3, .L1825+168
	ldr	r2, .L1825+172
	ldr	r1, .L1825+176
	ldr	r0, .L1825+180
	bl	__assert_fail
.L1794:
	ldr	r3, [fp, #-2384]
	cmp	r3, #0
	beq	.L1795
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-2384]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r0, [fp, #-2280]	@ float
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-2352]
	lsl	r1, r1, #3
	ldr	r0, [fp, #-2384]
	add	r6, r0, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
.L1795:
	ldr	r0, [fp, #-2280]	@ float
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2236]
	str	r3, [fp, #-2232]
	b	.L1796
.L1797:
	mov	r2, #0
	ldr	r3, .L1827
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2236]
	str	r3, [fp, #-2232]
	ldr	r2, .L1827+4
	ldr	r3, .L1827+8
	ldr	r0, [fp, #-2228]
	ldr	r1, [fp, #-2224]
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2228]
	str	r3, [fp, #-2224]
.L1796:
	ldr	r2, .L1827+12
	ldr	r3, .L1827+16
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1797
	b	.L1798
.L1799:
	ldr	r2, .L1827+12
	ldr	r3, .L1827+16
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2236]
	str	r3, [fp, #-2232]
	ldr	r2, .L1827+4
	ldr	r3, .L1827+8
	ldr	r0, [fp, #-2228]
	ldr	r1, [fp, #-2224]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2228]
	str	r3, [fp, #-2224]
.L1798:
	mov	r2, #0
	ldr	r3, .L1827
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1799
	b	.L1741
.L1824:
	nop
.L1741:
	ldr	r3, [fp, #-2352]
	add	r3, r3, #1
	str	r3, [fp, #-2352]
.L1737:
	ldr	r2, [fp, #-2352]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L1800
	b	.L1702
.L1736:
	ldr	r3, .L1827+20
	ldr	r2, .L1827+24
	ldr	r1, .L1827+28
	ldr	r0, .L1827+32
	bl	__assert_fail
.L1702:
	ldr	r3, [fp, #-2376]
	cmp	r3, #0
	beq	.L1801
	ldr	r3, [fp, #-2380]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-2340]
	bl	myfree
	str	r0, [fp, #-2340]
.L1801:
	ldr	r0, [fp, #-2236]
	ldr	r1, [fp, #-2232]
	bl	log
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-2228]
	ldr	r1, [fp, #-2224]
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-2228]
	str	r3, [fp, #-2224]
	ldr	r3, .L1827+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L1827+36
	str	r3, [r2]
	ldr	r2, [fp, #-2228]
	ldr	r3, [fp, #-2224]
	ldr	r1, .L1827+40
	ldr	r0, [r1]
	ldr	r1, [fp, #-24]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L1803
	bl	__stack_chk_fail
.L1803:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L1828:
	.align	2
.L1827:
	.word	1086556160
	.word	-1145744108
	.word	1075997617
	.word	-350469331
	.word	1058682594
	.word	__PRETTY_FUNCTION__.9428
	.word	5356
	.word	.LC134
	.word	.LC380
	.word	nLkCompute
	.word	.LC406
	.size	PairLogLk, .-PairLogLk
	.align	2
	.global	MLQuartetLogLk
	.syntax unified
	.arm
	.fpu softvfp
	.type	MLQuartetLogLk, %function
MLQuartetLogLk:
	@ args = 20, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #64
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #16]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #16]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	mov	ip, #0
	str	ip, [sp, #20]
	ldr	ip, [fp, #4]
	str	ip, [sp, #16]
	ldr	ip, [fp, #12]
	str	ip, [sp, #12]
	ldr	ip, [fp, #8]
	str	ip, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	PosteriorProfile
	str	r0, [fp, #-28]
	ldr	r3, [fp, #16]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #16]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	mov	ip, #0
	str	ip, [sp, #20]
	ldr	ip, [fp, #4]
	str	ip, [sp, #16]
	ldr	ip, [fp, #12]
	str	ip, [sp, #12]
	ldr	ip, [fp, #8]
	str	ip, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	PosteriorProfile
	str	r0, [fp, #-24]
	ldr	r3, [fp, #20]
	cmp	r3, #0
	beq	.L1830
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L1831
.L1832:
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #20]
	add	r1, r2, r3
	mov	r2, #0
	ldr	r3, .L1834
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L1831:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L1832
.L1830:
	ldr	r3, [fp, #16]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #16]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #20]
	str	r3, [sp, #12]
	ldr	r3, [fp, #12]
	str	r3, [sp, #8]
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	PairLogLk
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #16]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #16]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #20]
	str	r3, [sp, #12]
	ldr	r3, [fp, #12]
	str	r3, [sp, #8]
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	PairLogLk
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #16]
	add	r3, r3, #32
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #20]
	str	r1, [sp, #12]
	ldr	r1, [fp, #12]
	str	r1, [sp, #8]
	ldr	r1, [fp, #8]
	str	r1, [sp, #4]
	ldr	r1, [fp, #4]
	str	r1, [sp]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-28]
	bl	PairLogLk
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-28]
	bl	FreeProfile
	str	r0, [fp, #-28]
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-24]
	bl	FreeProfile
	str	r0, [fp, #-24]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1835:
	.align	2
.L1834:
	.word	1072693248
	.size	MLQuartetLogLk, .-MLQuartetLogLk
	.section	.rodata
	.align	2
.LC407:
	.ascii	"qo != NULL\000"
	.align	2
.LC408:
	.ascii	"qo->pair1 != NULL && qo->pair2 != NULL\000"
	.align	2
.LC409:
	.ascii	"loglk < 1e100\000"
	.align	2
.LC410:
	.ascii	"PairLogLk(%.4f) =  %.4f\012\000"
	.text
	.align	2
	.global	PairNegLogLk
	.syntax unified
	.arm
	.fpu softvfp
	.type	PairNegLogLk, %function
PairNegLogLk:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #48
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L1837
	ldr	r3, .L1844
	ldr	r2, .L1844+4
	ldr	r1, .L1844+8
	ldr	r0, .L1844+12
	bl	__assert_fail
.L1837:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1838
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	bne	.L1843
.L1838:
	ldr	r3, .L1844
	ldr	r2, .L1844+16
	ldr	r1, .L1844+8
	ldr	r0, .L1844+20
	bl	__assert_fail
.L1843:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	add	r2, r3, #1
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	ldr	r0, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	ip, [r3, #20]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	ldr	r2, [r2, #4]
	ldr	r1, [fp, #-24]
	ldr	r1, [r1, #8]
	mov	lr, #0
	str	lr, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r1, ip
	bl	PairLogLk
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	ldr	r2, .L1844+24
	ldr	r3, .L1844+28
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1840
	ldr	r3, .L1844
	ldr	r2, .L1844+32
	ldr	r1, .L1844+8
	ldr	r0, .L1844+36
	bl	__assert_fail
.L1840:
	ldr	r3, .L1844+40
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L1841
	ldr	r3, .L1844+44
	ldr	r0, [r3]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	ldr	r1, .L1844+48
	bl	fprintf
.L1841:
	ldr	r4, [fp, #-20]
	ldr	r3, [fp, #-16]
	eor	r5, r3, #-2147483648
	mov	r2, r4
	mov	r3, r5
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1845:
	.align	2
.L1844:
	.word	__PRETTY_FUNCTION__.9571
	.word	5398
	.word	.LC134
	.word	.LC407
	.word	5399
	.word	.LC408
	.word	630506365
	.word	1420970413
	.word	5402
	.word	.LC409
	.word	verbose
	.word	stderr
	.word	.LC410
	.size	PairNegLogLk, .-PairNegLogLk
	.section	.rodata
	.align	2
.LC411:
	.ascii	"site_likelihoods == NULL\000"
	.align	2
.LC412:
	.ascii	"Optimize loglk from %.5f to %.5f eval %d lengths fr"
	.ascii	"om\012   %.5f %.5f %.5f %.5f %.5f to\012   %.5f %.5"
	.ascii	"f %.5f %.5f %.5f\012\000"
	.align	2
.LC413:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	MLQuartetOptimize
	.syntax unified
	.arm
	.fpu softvfp
	.type	MLQuartetOptimize, %function
MLQuartetOptimize:
	@ args = 24, pretend = 0, frame = 240
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #340
	str	r0, [fp, #-200]
	str	r1, [fp, #-204]
	str	r2, [fp, #-208]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-216]
	ldr	r3, [fp, #12]
	str	r3, [fp, #-220]
	ldr	r3, [fp, #16]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #20]
	str	r3, [fp, #-228]
	ldr	r3, [fp, #24]
	str	r3, [fp, #-232]
	ldr	r3, .L1864
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-192]
	b	.L1847
.L1850:
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-224]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-192]
	lsl	r1, r1, #3
	sub	r0, fp, #36
	add	r1, r0, r1
	sub	r1, r1, #48
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-224]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, .L1864+4
	ldr	r3, .L1864+8
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1848
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-224]
	add	r1, r2, r3
	ldr	r2, .L1864+4
	ldr	r3, .L1864+8
	stm	r1, {r2-r3}
.L1848:
	ldr	r3, [fp, #-192]
	add	r3, r3, #1
	str	r3, [fp, #-192]
.L1847:
	ldr	r3, [fp, #-192]
	cmp	r3, #4
	ble	.L1850
	ldr	r3, [fp, #4]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-216]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-100]
	mov	r3, #0
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-92]
	mov	r3, #0
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-228]
	cmp	r3, #0
	beq	.L1851
	ldr	r3, [fp, #-228]
	mov	r2, #0
	strb	r2, [r3]
.L1851:
	ldr	r3, [fp, #-224]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	mov	ip, #0
	str	ip, [sp, #20]
	ldr	ip, [fp, #4]
	str	ip, [sp, #16]
	ldr	ip, [fp, #-220]
	str	ip, [sp, #12]
	ldr	ip, [fp, #-216]
	str	ip, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-204]
	ldr	r0, [fp, #-200]
	bl	PosteriorProfile
	str	r0, [fp, #-188]
	ldr	r3, [fp, #-224]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	mov	ip, #0
	str	ip, [sp, #20]
	ldr	ip, [fp, #4]
	str	ip, [sp, #16]
	ldr	ip, [fp, #-220]
	str	ip, [sp, #12]
	ldr	ip, [fp, #-216]
	str	ip, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-212]
	ldr	r0, [fp, #-208]
	bl	PosteriorProfile
	str	r0, [fp, #-184]
	ldr	r3, [fp, #-188]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-184]
	str	r3, [fp, #-88]
	ldr	r8, .L1864+4
	ldr	r9, .L1864+8
	ldr	r3, [fp, #-224]
	add	r3, r3, #32
	ldmia	r3, {r2-r3}
	ldr	r0, .L1864+4
	ldr	r1, .L1864+12
	ldr	r6, .L1864+16
	ldr	r7, .L1864+20
	ldr	ip, [fp, #-224]
	add	r10, ip, #32
	sub	ip, fp, #164
	str	ip, [sp, #36]
	sub	ip, fp, #156
	str	ip, [sp, #32]
	str	r6, [sp, #24]
	str	r7, [sp, #28]
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	sub	r1, fp, #108
	str	r1, [sp, #12]
	ldr	r1, .L1864+24
	str	r1, [sp, #8]
	mov	r0, #0
	ldr	r1, .L1864+28
	stm	sp, {r0-r1}
	mov	r0, r8
	mov	r1, r9
	bl	onedimenmin
	mov	r2, r0
	mov	r3, r1
	stm	r10, {r2-r3}
	ldr	r3, [fp, #-228]
	cmp	r3, #0
	beq	.L1852
	ldr	r3, [fp, #-232]
	cmp	r3, #0
	beq	.L1853
	ldr	r3, .L1864+32
	ldr	r2, .L1864+36
	ldr	r1, .L1864+40
	ldr	r0, .L1864+44
	bl	__assert_fail
.L1853:
	ldr	r0, .L1864+4
	ldr	r1, .L1864+8
	sub	r3, fp, #108
	mov	r2, r3
	bl	PairNegLogLk
	mov	r2, r0
	mov	r3, r1
	mov	r1, r2
	str	r1, [fp, #-148]
	eor	r3, r3, #-2147483648
	str	r3, [fp, #-144]
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	mov	r4, r2
	eor	r5, r3, #-2147483648
	ldr	r3, .L1864+48
	ldmia	r3, {r2-r3}
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1852
	ldr	r3, [fp, #-228]
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-224]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-108]
	ldr	r2, [fp, #-104]
	ldr	r1, [fp, #-100]
	mov	r0, #0
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r2, r4
	mov	r3, r5
	ldr	r1, [fp, #-204]
	ldr	r0, [fp, #-200]
	bl	PairLogLk
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-224]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-108]
	ldr	r2, [fp, #-104]
	ldr	r1, [fp, #-100]
	mov	r0, #0
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r2, r6
	mov	r3, r7
	ldr	r1, [fp, #-212]
	ldr	r0, [fp, #-208]
	bl	PairLogLk
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-188]
	bl	FreeProfile
	str	r0, [fp, #-188]
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-184]
	bl	FreeProfile
	str	r0, [fp, #-184]
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	b	.L1860
.L1852:
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-188]
	bl	FreeProfile
	str	r0, [fp, #-188]
	ldr	r3, [fp, #-224]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #32
	ldmia	r3, {r2-r3}
	mov	ip, #0
	str	ip, [sp, #20]
	ldr	ip, [fp, #4]
	str	ip, [sp, #16]
	ldr	ip, [fp, #-220]
	str	ip, [sp, #12]
	ldr	ip, [fp, #-216]
	str	ip, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-184]
	ldr	r0, [fp, #-204]
	bl	PosteriorProfile
	str	r0, [fp, #-180]
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-180]
	str	r3, [fp, #-88]
	ldr	r6, .L1864+4
	ldr	r7, .L1864+8
	ldr	r3, [fp, #-224]
	ldmia	r3, {r2-r3}
	ldr	r0, .L1864+4
	ldr	r1, .L1864+12
	ldr	r4, .L1864+16
	ldr	r5, .L1864+20
	sub	ip, fp, #164
	str	ip, [sp, #36]
	sub	ip, fp, #156
	str	ip, [sp, #32]
	str	r4, [sp, #24]
	str	r5, [sp, #28]
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	sub	r1, fp, #108
	str	r1, [sp, #12]
	ldr	r1, .L1864+24
	str	r1, [sp, #8]
	mov	r0, #0
	ldr	r1, .L1864+28
	stm	sp, {r0-r1}
	mov	r0, r6
	mov	r1, r7
	bl	onedimenmin
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-224]
	stm	r1, {r2-r3}
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-180]
	bl	FreeProfile
	str	r0, [fp, #-180]
	ldr	r3, [fp, #-224]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #32
	ldmia	r3, {r2-r3}
	mov	ip, #0
	str	ip, [sp, #20]
	ldr	ip, [fp, #4]
	str	ip, [sp, #16]
	ldr	ip, [fp, #-220]
	str	ip, [sp, #12]
	ldr	ip, [fp, #-216]
	str	ip, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-184]
	ldr	r0, [fp, #-200]
	bl	PosteriorProfile
	str	r0, [fp, #-176]
	ldr	r3, [fp, #-204]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-176]
	str	r3, [fp, #-88]
	ldr	r6, .L1864+4
	ldr	r7, .L1864+8
	ldr	r3, [fp, #-224]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r0, .L1864+4
	ldr	r1, .L1864+12
	ldr	r4, .L1864+16
	ldr	r5, .L1864+20
	ldr	ip, [fp, #-224]
	add	r8, ip, #8
	sub	ip, fp, #164
	str	ip, [sp, #36]
	sub	ip, fp, #156
	str	ip, [sp, #32]
	str	r4, [sp, #24]
	str	r5, [sp, #28]
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	sub	r1, fp, #108
	str	r1, [sp, #12]
	ldr	r1, .L1864+24
	str	r1, [sp, #8]
	mov	r0, #0
	ldr	r1, .L1864+28
	stm	sp, {r0-r1}
	mov	r0, r6
	mov	r1, r7
	bl	onedimenmin
	mov	r2, r0
	mov	r3, r1
	stm	r8, {r2-r3}
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-176]
	bl	FreeProfile
	str	r0, [fp, #-176]
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-184]
	bl	FreeProfile
	str	r0, [fp, #-184]
	ldr	r3, [fp, #-224]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	mov	ip, #0
	str	ip, [sp, #20]
	ldr	ip, [fp, #4]
	str	ip, [sp, #16]
	ldr	ip, [fp, #-220]
	str	ip, [sp, #12]
	ldr	ip, [fp, #-216]
	str	ip, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-204]
	ldr	r0, [fp, #-200]
	bl	PosteriorProfile
	str	r0, [fp, #-188]
	ldr	r3, [fp, #-224]
	add	r3, r3, #32
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	mov	ip, #0
	str	ip, [sp, #20]
	ldr	ip, [fp, #4]
	str	ip, [sp, #16]
	ldr	ip, [fp, #-220]
	str	ip, [sp, #12]
	ldr	ip, [fp, #-216]
	str	ip, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-212]
	ldr	r0, [fp, #-188]
	bl	PosteriorProfile
	str	r0, [fp, #-172]
	ldr	r3, [fp, #-208]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-172]
	str	r3, [fp, #-88]
	ldr	r6, .L1864+4
	ldr	r7, .L1864+8
	ldr	r3, [fp, #-224]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r0, .L1864+4
	ldr	r1, .L1864+12
	ldr	r4, .L1864+16
	ldr	r5, .L1864+20
	ldr	ip, [fp, #-224]
	add	r8, ip, #16
	sub	ip, fp, #164
	str	ip, [sp, #36]
	sub	ip, fp, #156
	str	ip, [sp, #32]
	str	r4, [sp, #24]
	str	r5, [sp, #28]
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	sub	r1, fp, #108
	str	r1, [sp, #12]
	ldr	r1, .L1864+24
	str	r1, [sp, #8]
	mov	r0, #0
	ldr	r1, .L1864+28
	stm	sp, {r0-r1}
	mov	r0, r6
	mov	r1, r7
	bl	onedimenmin
	mov	r2, r0
	mov	r3, r1
	stm	r8, {r2-r3}
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-172]
	bl	FreeProfile
	str	r0, [fp, #-172]
	ldr	r3, [fp, #-224]
	add	r3, r3, #32
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	ip, #0
	str	ip, [sp, #20]
	ldr	ip, [fp, #4]
	str	ip, [sp, #16]
	ldr	ip, [fp, #-220]
	str	ip, [sp, #12]
	ldr	ip, [fp, #-216]
	str	ip, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-208]
	ldr	r0, [fp, #-188]
	bl	PosteriorProfile
	str	r0, [fp, #-168]
	ldr	r3, [fp, #-212]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-168]
	str	r3, [fp, #-88]
	ldr	r6, .L1864+4
	ldr	r7, .L1864+8
	ldr	r3, [fp, #-224]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	ldr	r0, .L1864+4
	ldr	r1, .L1864+12
	ldr	r4, .L1864+16
	ldr	r5, .L1864+20
	ldr	ip, [fp, #-224]
	add	r8, ip, #24
	sub	ip, fp, #164
	str	ip, [sp, #36]
	sub	ip, fp, #156
	str	ip, [sp, #32]
	str	r4, [sp, #24]
	str	r5, [sp, #28]
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	sub	r1, fp, #108
	str	r1, [sp, #12]
	ldr	r1, .L1864+24
	str	r1, [sp, #8]
	mov	r0, #0
	ldr	r1, .L1864+28
	stm	sp, {r0-r1}
	mov	r0, r6
	mov	r1, r7
	bl	onedimenmin
	mov	r2, r0
	mov	r3, r1
	stm	r8, {r2-r3}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	mov	r1, r2
	str	r1, [fp, #-132]
	eor	r3, r3, #-2147483648
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-232]
	cmp	r3, #0
	beq	.L1856
	mov	r3, #0
	str	r3, [fp, #-192]
	b	.L1857
.L1858:
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-232]
	add	r1, r2, r3
	mov	r2, #0
	ldr	r3, .L1864+52
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-192]
	add	r3, r3, #1
	str	r3, [fp, #-192]
.L1857:
	ldr	r2, [fp, #-192]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L1858
	ldr	r3, [fp, #-224]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-108]
	ldr	r0, [fp, #-104]
	ldr	ip, [fp, #-100]
	ldr	lr, [fp, #-232]
	str	lr, [sp, #12]
	str	ip, [sp, #8]
	str	r0, [sp, #4]
	str	r1, [sp]
	ldr	r1, [fp, #-212]
	ldr	r0, [fp, #-168]
	bl	PairLogLk
.L1856:
	ldr	r3, [fp, #-224]
	add	r3, r3, #32
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-108]
	ldr	r2, [fp, #-104]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-232]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r2, r4
	mov	r3, r5
	ldr	r1, [fp, #-208]
	ldr	r0, [fp, #-188]
	bl	PairLogLk
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-224]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-108]
	ldr	r2, [fp, #-104]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-232]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r2, r6
	mov	r3, r7
	ldr	r1, [fp, #-204]
	ldr	r0, [fp, #-200]
	bl	PairLogLk
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-168]
	bl	FreeProfile
	str	r0, [fp, #-168]
	mov	r2, #0
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-188]
	bl	FreeProfile
	str	r0, [fp, #-188]
	ldr	r3, .L1864+56
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L1859
	mov	r3, #0
	str	r3, [sp, #16]
	sub	r3, fp, #84
	str	r3, [sp, #12]
	ldr	r3, [fp, #-220]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-216]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-212]
	ldr	r2, [fp, #-208]
	ldr	r1, [fp, #-204]
	ldr	r0, [fp, #-200]
	bl	MLQuartetLogLk
	str	r0, [fp, #-116]
	str	r1, [fp, #-112]
	ldr	r3, .L1864+60
	ldr	lr, [r3]
	ldr	ip, [fp, #-96]
	sub	r9, fp, #84
	ldmia	r9, {r8-r9}
	sub	r4, fp, #76
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-244]
	str	r4, [fp, #-240]
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-252]
	str	r3, [fp, #-248]
	sub	r2, fp, #60
	ldmia	r2, {r1-r2}
	str	r1, [fp, #-260]
	str	r2, [fp, #-256]
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	str	r0, [fp, #-268]
	str	r1, [fp, #-264]
	ldr	r3, [fp, #-224]
	ldmia	r3, {r4-r5}
	str	r4, [fp, #-276]
	str	r5, [fp, #-272]
	ldr	r3, [fp, #-224]
	add	r3, r3, #8
	ldmia	r3, {r6-r7}
	ldr	r3, [fp, #-224]
	add	r3, r3, #16
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-224]
	add	r3, r3, #24
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #32
	ldmia	r3, {r2-r3}
	str	r2, [sp, #88]
	str	r3, [sp, #92]
	str	r0, [sp, #80]
	str	r1, [sp, #84]
	str	r4, [sp, #72]
	str	r5, [sp, #76]
	str	r6, [sp, #64]
	str	r7, [sp, #68]
	sub	r5, fp, #276
	ldmia	r5, {r4-r5}
	str	r4, [sp, #56]
	str	r5, [sp, #60]
	sub	r1, fp, #268
	ldmia	r1, {r0-r1}
	str	r0, [sp, #48]
	str	r1, [sp, #52]
	sub	r2, fp, #260
	ldmia	r2, {r1-r2}
	str	r1, [sp, #40]
	str	r2, [sp, #44]
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	str	r2, [sp, #32]
	str	r3, [sp, #36]
	sub	r4, fp, #244
	ldmia	r4, {r3-r4}
	str	r3, [sp, #24]
	str	r4, [sp, #28]
	str	r8, [sp, #16]
	str	r9, [sp, #20]
	str	ip, [sp, #8]
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	ldr	r1, .L1864+64
	mov	r0, lr
	bl	fprintf
.L1859:
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
.L1860:
	ldr	r1, .L1864
	ldr	r0, [r1]
	ldr	r1, [fp, #-40]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L1861
	bl	__stack_chk_fail
.L1861:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1865:
	.align	2
.L1864:
	.word	.LC413
	.word	-755914244
	.word	1061184077
	.word	1062232653
	.word	-350469331
	.word	1058682594
	.word	PairNegLogLk
	.word	1075314688
	.word	__PRETTY_FUNCTION__.9595
	.word	5449
	.word	.LC134
	.word	.LC411
	.word	closeLogLkLimit
	.word	1072693248
	.word	verbose
	.word	stderr
	.word	.LC412
	.size	MLQuartetOptimize, .-MLQuartetOptimize
	.section	.rodata
	.align	2
.LC414:
	.ascii	"Optimized quartet for %d rounds: ABvsCD %.5f ACvsBD"
	.ascii	" %.5f ADvsBC %.5f\012\000"
	.align	2
.LC415:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	MLQuartetNNI
	.syntax unified
	.arm
	.fpu softvfp
	.type	MLQuartetNNI, %function
MLQuartetNNI:
	@ args = 16, pretend = 0, frame = 192
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #216
	str	r0, [fp, #-184]
	str	r1, [fp, #-188]
	str	r2, [fp, #-192]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-200]
	ldr	r3, [fp, #12]
	str	r3, [fp, #-204]
	ldr	r3, .L1921
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-204]
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-204]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-204]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-204]
	add	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-204]
	add	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-204]
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-204]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-204]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-204]
	add	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-204]
	add	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-204]
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-204]
	add	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-204]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-204]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-204]
	add	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	mov	r3, #1
	strb	r3, [fp, #-178]
	mov	r3, #1
	strb	r3, [fp, #-177]
	ldr	r3, .L1921+4
	ldr	r3, [r3]
	cmp	r3, #2
	movge	r3, r3
	movlt	r3, #2
	str	r3, [fp, #-168]
	sub	r3, fp, #164
	mov	r2, r3
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-184]
	bl	QuartetConstraintPenalties
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1867
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1868
.L1867:
	mov	r3, #0
	strb	r3, [fp, #16]
.L1868:
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L1870
.L1894:
	mov	r3, #0
	strb	r3, [fp, #-179]
	ldr	r3, [fp, #-184]
	ldr	r0, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	ldr	ip, [r3]
	ldrb	r3, [fp, #16]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1871
	sub	r3, fp, #179
	b	.L1872
.L1871:
	mov	r3, #0
.L1872:
	mov	lr, #0
	str	lr, [sp, #20]
	str	r3, [sp, #16]
	sub	r3, fp, #140
	str	r3, [sp, #12]
	ldr	r3, [fp, #-192]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-188]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-196]
	str	r3, [sp]
	mov	r3, ip
	bl	MLQuartetOptimize
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-200]
	stm	r1, {r2-r3}
	ldrb	r3, [fp, #-179]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1873
	ldr	r3, .L1921+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L1921+8
	str	r3, [r2]
	ldr	r3, [fp, #-200]
	add	r1, r3, #8
	ldr	r2, .L1921+12
	ldr	r3, .L1921+16
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-200]
	add	r1, r3, #16
	ldr	r2, .L1921+12
	ldr	r3, .L1921+16
	stm	r1, {r2-r3}
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-204]
	add	r4, r1, #16
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	mov	r3, #0
	b	.L1908
.L1873:
	ldrb	r3, [fp, #-178]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1875
	ldr	r3, [fp, #-184]
	ldr	r0, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	ldr	r1, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	ldr	ip, [r3]
	mov	r3, #0
	str	r3, [sp, #20]
	mov	r3, #0
	str	r3, [sp, #16]
	sub	r3, fp, #100
	str	r3, [sp, #12]
	ldr	r3, [fp, #-192]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-188]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-196]
	str	r3, [sp]
	mov	r3, ip
	bl	MLQuartetOptimize
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	ldr	ip, [fp, #-200]
	add	r4, ip, #8
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
.L1875:
	ldrb	r3, [fp, #-177]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1876
	ldr	r3, [fp, #-184]
	ldr	r0, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	ldr	r1, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	ldr	ip, [r3]
	mov	r3, #0
	str	r3, [sp, #20]
	mov	r3, #0
	str	r3, [sp, #16]
	sub	r3, fp, #60
	str	r3, [sp, #12]
	ldr	r3, [fp, #-192]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-188]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-196]
	str	r3, [sp]
	mov	r3, ip
	bl	MLQuartetOptimize
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	ldr	ip, [fp, #-200]
	add	r4, ip, #16
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
.L1876:
	ldr	r3, .L1921+4
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L1877
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-200]
	ldmia	r3, {r0-r1}
	ldr	r3, .L1921+20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1878
	sub	r5, fp, #68
	ldmia	r5, {r4-r5}
	ldr	r0, .L1921+24
	ldr	r1, .L1921+28
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L1879
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-200]
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1879
.L1878:
	mov	r3, #0
	strb	r3, [fp, #-178]
.L1879:
	ldr	r3, [fp, #-200]
	add	r3, r3, #16
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-200]
	ldmia	r3, {r0-r1}
	ldr	r3, .L1921+20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1882
	sub	r5, fp, #28
	ldmia	r5, {r4-r5}
	ldr	r0, .L1921+24
	ldr	r1, .L1921+28
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L1883
	ldr	r3, [fp, #-200]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-200]
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1883
.L1882:
	mov	r3, #0
	strb	r3, [fp, #-177]
.L1883:
	ldrb	r3, [fp, #-178]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L1886
	ldrb	r3, [fp, #-177]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L1918
.L1886:
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-200]
	ldmia	r3, {r0-r1}
	ldr	r3, .L1921+20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1888
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-200]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, .L1921+20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1919
.L1888:
	ldr	r3, [fp, #-200]
	add	r3, r3, #16
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-200]
	ldmia	r3, {r0-r1}
	ldr	r3, .L1921+20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1877
	ldr	r3, [fp, #-200]
	add	r3, r3, #16
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, .L1921+20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1920
.L1877:
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L1870:
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-168]
	cmp	r2, r3
	blt	.L1894
	b	.L1893
.L1918:
	nop
	b	.L1893
.L1919:
	nop
	b	.L1893
.L1920:
	nop
.L1893:
	ldr	r3, .L1921+32
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L1895
	ldr	r3, .L1921+36
	ldr	lr, [r3]
	ldr	r3, [fp, #-200]
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-200]
	add	r1, r1, #8
	ldmia	r1, {r0-r1}
	ldr	ip, [fp, #-200]
	add	ip, ip, #16
	ldmia	ip, {r4-r5}
	str	r4, [sp, #16]
	str	r5, [sp, #20]
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-172]
	ldr	r1, .L1921+40
	mov	r0, lr
	bl	fprintf
.L1895:
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-200]
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1896
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-200]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1896
	mov	r3, #0
	str	r3, [fp, #-176]
	b	.L1899
.L1900:
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	sub	r3, r3, #88
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-176]
	lsl	r1, r1, #2
	ldr	r0, [fp, #-204]
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-176]
	add	r3, r3, #1
	str	r3, [fp, #-176]
.L1899:
	ldr	r3, [fp, #-176]
	cmp	r3, #4
	ble	.L1900
	mov	r3, #1
	b	.L1908
.L1896:
	ldr	r3, [fp, #-200]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-200]
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1901
	ldr	r3, [fp, #-200]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1901
	mov	r3, #0
	str	r3, [fp, #-176]
	b	.L1904
.L1905:
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	sub	r3, r3, #48
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-176]
	lsl	r1, r1, #2
	ldr	r0, [fp, #-204]
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-176]
	add	r3, r3, #1
	str	r3, [fp, #-176]
.L1904:
	ldr	r3, [fp, #-176]
	cmp	r3, #4
	ble	.L1905
	mov	r3, #2
	b	.L1908
.L1901:
	mov	r3, #0
	str	r3, [fp, #-176]
	b	.L1906
.L1907:
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	sub	r3, r3, #128
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-176]
	lsl	r1, r1, #2
	ldr	r0, [fp, #-204]
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-176]
	add	r3, r3, #1
	str	r3, [fp, #-176]
.L1906:
	ldr	r3, [fp, #-176]
	cmp	r3, #4
	ble	.L1907
	mov	r3, #0
.L1908:
	ldr	r2, .L1921
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1909
	bl	__stack_chk_fail
.L1909:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1922:
	.align	2
.L1921:
	.word	.LC415
	.word	mlAccuracy
	.word	nStarTests
	.word	2025163840
	.word	-1005211875
	.word	closeLogLkLimit
	.word	-755914244
	.word	1061184077
	.word	verbose
	.word	stderr
	.word	.LC414
	.size	MLQuartetNNI, .-MLQuartetNNI
	.align	2
	.global	TreeLength
	.syntax unified
	.arm
	.fpu softvfp
	.type	TreeLength, %function
TreeLength:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	mov	r3, r1
	strb	r3, [fp, #-33]
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1924
	ldr	r0, [fp, #-32]
	bl	InitTraversal
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-24]
	b	.L1925
.L1926:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L1925
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	beq	.L1925
	mov	r2, #0
	ldr	r3, .L1930
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-32]
	bl	SetProfile
.L1925:
	mov	r3, #0
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-24]
	bl	TraversePostorder
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L1926
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-16]
	bl	FreeTraversal
	str	r0, [fp, #-16]
.L1924:
	ldr	r0, [fp, #-32]
	bl	UpdateBranchLengths
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L1927
.L1928:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L1927:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L1928
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1931:
	.align	2
.L1930:
	.word	-1074790400
	.size	TreeLength, .-TreeLength
	.section	.rodata
	.align	2
.LC416:
	.ascii	"nChild >= 2\000"
	.align	2
.LC417:
	.ascii	"At %d: LogLk(%d:%.4f,%d:%.4f) = %.3f\012\000"
	.align	2
.LC418:
	.ascii	"node == NJ->root\000"
	.align	2
.LC419:
	.ascii	"At root %d: LogLk((%d/%d),%d:%.3f) = %.3f\012\000"
	.text
	.align	2
	.global	TreeLogLk
	.syntax unified
	.arm
	.fpu softvfp
	.type	TreeLogLk, %function
TreeLogLk:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #116
	str	r0, [fp, #-104]
	str	r1, [fp, #-108]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L1933
	mov	r2, #0
	mov	r3, #0
	b	.L1934
.L1933:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	beq	.L1935
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L1936
.L1937:
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r1, r2, r3
	mov	r2, #0
	ldr	r3, .L1960
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-108]
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L1936:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-100]
	cmp	r2, r3
	blt	.L1937
.L1935:
	ldr	r0, [fp, #-104]
	bl	InitTraversal
	str	r0, [fp, #-80]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-92]
	b	.L1938
.L1949:
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L1939
	b	.L1938
.L1939:
	ldr	r3, [fp, #-72]
	cmp	r3, #1
	bgt	.L1940
	ldr	r3, .L1960+4
	ldr	r2, .L1960+8
	ldr	r1, .L1960+12
	ldr	r0, .L1960+16
	bl	__assert_fail
.L1940:
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	add	r3, r2, r3
	add	r3, r3, #4
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r4, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-68]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r5, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-68]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-104]
	ldr	r1, [r1, #4]
	ldr	r0, [fp, #-104]
	ldr	r0, [r0, #16]
	ldr	ip, [fp, #-104]
	add	ip, ip, #100
	ldr	lr, [fp, #-96]
	str	lr, [sp, #12]
	str	ip, [sp, #8]
	str	r0, [sp, #4]
	str	r1, [sp]
	mov	r1, r5
	mov	r0, r4
	bl	PairLogLk
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L1941
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L1942
.L1944:
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	ldr	r3, .L1960+20
	ldr	ip, [fp, #-100]
	lsl	ip, ip, #3
	ldr	lr, [fp, #-96]
	add	r4, lr, ip
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, .L1960+24
	ldr	r3, .L1960+28
	ldr	ip, [fp, #-100]
	lsl	ip, ip, #3
	ldr	lr, [fp, #-108]
	add	r4, lr, ip
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
.L1943:
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, .L1960+32
	ldr	r3, .L1960+36
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1944
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L1942:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-100]
	cmp	r2, r3
	blt	.L1943
.L1941:
	ldr	r3, .L1960+40
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L1946
	ldr	r3, .L1960+44
	ldr	r7, [r3]
	ldr	r3, [fp, #-68]
	ldr	r8, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-68]
	add	r3, r3, #4
	ldr	r6, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-68]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [sp, #24]
	str	r3, [sp, #28]
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	str	r6, [sp, #8]
	stm	sp, {r4-r5}
	mov	r3, r8
	ldr	r2, [fp, #-92]
	ldr	r1, .L1960+48
	mov	r0, r7
	bl	fprintf
.L1946:
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #3
	bne	.L1938
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	beq	.L1947
	ldr	r3, .L1960+4
	ldr	r2, .L1960+52
	ldr	r1, .L1960+12
	ldr	r0, .L1960+56
	bl	__assert_fail
.L1947:
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r6, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-68]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r7, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-68]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-104]
	ldr	r1, [r1, #16]
	ldr	r0, [fp, #-104]
	add	r0, r0, #100
	ldr	ip, [fp, #-104]
	ldr	ip, [ip, #4]
	mov	lr, #0
	str	lr, [sp, #20]
	str	ip, [sp, #16]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r3, r5
	mov	r1, r7
	mov	r0, r6
	bl	PosteriorProfile
	str	r0, [fp, #-64]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-68]
	add	r3, r3, #8
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r4, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-68]
	add	r3, r3, #8
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-104]
	ldr	r1, [r1, #4]
	ldr	r0, [fp, #-104]
	ldr	r0, [r0, #16]
	ldr	ip, [fp, #-104]
	add	ip, ip, #100
	ldr	lr, [fp, #-96]
	str	lr, [sp, #12]
	str	ip, [sp, #8]
	str	r0, [sp, #4]
	str	r1, [sp]
	mov	r1, r4
	ldr	r0, [fp, #-64]
	bl	PairLogLk
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, .L1960+40
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L1948
	ldr	r3, .L1960+44
	ldr	r6, [r3]
	ldr	r3, [fp, #-68]
	ldr	r7, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #4
	ldr	r4, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #8
	ldr	r5, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-68]
	add	r3, r3, #8
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	str	r5, [sp, #4]
	str	r4, [sp]
	mov	r3, r7
	ldr	r2, [fp, #-92]
	ldr	r1, .L1960+60
	mov	r0, r6
	bl	fprintf
.L1948:
	ldr	r3, [fp, #-104]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r0, [fp, #-64]
	bl	FreeProfile
	str	r0, [fp, #-64]
.L1938:
	mov	r3, #0
	ldr	r2, [fp, #-80]
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-92]
	bl	TraversePostorder
	str	r0, [fp, #-92]
	ldr	r3, [fp, #-92]
	cmp	r3, #0
	bge	.L1949
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-80]
	bl	FreeTraversal
	str	r0, [fp, #-80]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L1950
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L1951
.L1952:
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	log
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	ip, [fp, #-100]
	lsl	ip, ip, #3
	ldr	lr, [fp, #-108]
	add	r4, lr, ip
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L1951:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-100]
	cmp	r2, r3
	blt	.L1952
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-96]
	bl	myfree
	str	r0, [fp, #-96]
.L1950:
	ldr	r3, .L1960+64
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L1953
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1953
	mov	r3, #0
	str	r3, [fp, #-88]
	ldr	r3, .L1960+64
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	str	r0, [fp, #-52]
	str	r1, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L1954
.L1959:
	mov	r3, #0
	str	r3, [fp, #-84]
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L1955
.L1957:
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-100]
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L1956
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L1956:
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L1955:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	blt	.L1957
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-84]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	beq	.L1958
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r0, [fp, #-84]
	bl	__aeabi_i2d
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-108]
	add	r6, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r3, .L1960+64
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L1958
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1958
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-108]
	add	r4, r2, r3
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
.L1958:
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L1954:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-100]
	cmp	r2, r3
	blt	.L1959
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	__aeabi_i2d
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r0, [fp, #-88]
	bl	__aeabi_i2d
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
.L1953:
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
.L1934:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L1961:
	.align	2
.L1960:
	.word	1072693248
	.word	__PRETTY_FUNCTION__.9668
	.word	5713
	.word	.LC134
	.word	.LC416
	.word	1086556160
	.word	-1145744108
	.word	1075997617
	.word	-350469331
	.word	1058682594
	.word	verbose
	.word	stderr
	.word	.LC417
	.word	5735
	.word	.LC418
	.word	.LC419
	.word	nCodes
	.size	TreeLogLk, .-TreeLogLk
	.section	.rodata
	.align	2
.LC420:
	.ascii	"nCodes==4\000"
	.align	2
.LC421:
	.ascii	"Optimizing GTR model, step %d of %d\000"
	.align	2
.LC422:
	.ascii	"GTR Frequencies: %.4f %.4f %.4f %.4f\012\000"
	.align	2
.LC423:
	.ascii	"GTRFreq\011%.4f\011%.4f\011%.4f\011%.4f\012\000"
	.align	2
.LC424:
	.ascii	"GTRRates\011%.4f\011%.4f\011%.4f\011%.4f\011%.4f\011"
	.ascii	"%.4f\012\000"
	.align	2
.LC2:
	.word	1
	.word	1
	.word	1
	.word	1
	.align	2
.LC425:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	SetMLGtr
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetMLGtr, %function
SetMLGtr:
	@ args = 0, pretend = 0, frame = 184
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #224
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	ldr	r3, .L1986
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, .L1986+4
	ldr	r3, [r3]
	cmp	r3, #4
	beq	.L1963
	ldr	r3, .L1986+8
	ldr	r2, .L1986+12
	ldr	r1, .L1986+16
	ldr	r0, .L1986+20
	bl	__assert_fail
.L1963:
	ldr	r3, [fp, #-192]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-196]
	cmp	r3, #0
	beq	.L1964
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L1965
.L1966:
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-196]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-184]
	add	r1, r1, #1
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #104
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L1965:
	ldr	r3, [fp, #-184]
	cmp	r3, #3
	ble	.L1966
	b	.L1967
.L1964:
	ldr	r3, .L1986+24
	sub	ip, fp, #148
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L1968
.L1972:
	ldr	r3, [fp, #-192]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-172]
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L1969
.L1971:
	ldr	r3, [fp, #-180]
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #3
	bhi	.L1970
	ldr	r3, [fp, #-180]
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r2, #2
	sub	r1, fp, #28
	add	r3, r1, r3
	ldr	r3, [r3, #-120]
	add	r1, r3, #1
	lsl	r3, r2, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	str	r1, [r3, #-120]
.L1970:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L1969:
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-180]
	cmp	r2, r3
	blt	.L1971
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L1968:
	ldr	r3, [fp, #-192]
	ldr	r3, [r3]
	ldr	r2, [fp, #-184]
	cmp	r2, r3
	blt	.L1972
	ldr	r2, [fp, #-148]
	ldr	r3, [fp, #-144]
	add	r2, r2, r3
	ldr	r3, [fp, #-140]
	add	r2, r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r2, r3
	str	r3, [fp, #-176]
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L1973
.L1974:
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #2
	sub	r2, fp, #28
	add	r3, r2, r3
	ldr	r3, [r3, #-120]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-176]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-184]
	add	r1, r1, #1
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #104
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L1973:
	ldr	r3, [fp, #-184]
	cmp	r3, #3
	ble	.L1974
.L1967:
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L1975
.L1976:
	ldr	r3, [fp, #-184]
	add	r3, r3, #5
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r1, r3, #104
	mov	r2, #0
	ldr	r3, .L1986+28
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L1975:
	ldr	r3, [fp, #-184]
	cmp	r3, #5
	ble	.L1976
	ldr	r3, .L1986+32
	ldr	r3, [r3]
	cmp	r3, #2
	movge	r3, r3
	movlt	r3, #2
	str	r3, [fp, #-168]
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L1977
.L1980:
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L1978
.L1979:
	ldr	r2, [fp, #-184]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	add	r1, r3, #1
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #12
	ldr	r0, .L1986+36
	bl	ProgressReport
	ldr	r3, [fp, #-44]
	add	r3, r3, #5
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #104
	ldmia	r3, {r2-r3}
	ldr	r4, [fp, #-44]
	sub	r1, fp, #156
	str	r1, [sp, #36]
	sub	r1, fp, #164
	str	r1, [sp, #32]
	ldr	r0, .L1986+40
	ldr	r1, .L1986+44
	str	r0, [sp, #24]
	str	r1, [sp, #28]
	ldr	r0, .L1986+48
	ldr	r1, .L1986+52
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	sub	r1, fp, #132
	str	r1, [sp, #12]
	ldr	r1, .L1986+56
	str	r1, [sp, #8]
	mov	r0, #0
	ldr	r1, .L1986+60
	stm	sp, {r0-r1}
	ldr	r0, .L1986+64
	ldr	r1, .L1986+68
	bl	onedimenmin
	mov	r2, r0
	mov	r3, r1
	add	r1, r4, #5
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #104
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L1978:
	ldr	r3, [fp, #-44]
	cmp	r3, #5
	ble	.L1979
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L1977:
	ldr	r2, [fp, #-184]
	ldr	r3, [fp, #-168]
	cmp	r2, r3
	blt	.L1980
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L1981
.L1982:
	ldr	r3, [fp, #-184]
	add	r3, r3, #5
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #104
	ldmia	r3, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-184]
	add	r1, r1, #5
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #104
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L1981:
	ldr	r3, [fp, #-184]
	cmp	r3, #4
	ble	.L1982
	mov	r2, #0
	ldr	r3, .L1986+28
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, .L1986+72
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1983
	ldr	r3, .L1986+76
	ldr	ip, [r3]
	sub	r7, fp, #124
	ldmia	r7, {r6-r7}
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	sub	r5, fp, #100
	ldmia	r5, {r4-r5}
	str	r4, [sp, #16]
	str	r5, [sp, #20]
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r6
	mov	r3, r7
	ldr	r1, .L1986+80
	mov	r0, ip
	bl	fprintf
	ldr	r3, .L1986+76
	ldr	ip, [r3]
	sub	r4, fp, #92
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-212]
	str	r4, [fp, #-208]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	sub	r5, fp, #68
	ldmia	r5, {r4-r5}
	sub	r7, fp, #60
	ldmia	r7, {r6-r7}
	sub	r9, fp, #52
	ldmia	r9, {r8-r9}
	str	r8, [sp, #32]
	str	r9, [sp, #36]
	str	r6, [sp, #24]
	str	r7, [sp, #28]
	str	r4, [sp, #16]
	str	r5, [sp, #20]
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	ldr	r1, .L1986+84
	mov	r0, ip
	bl	fprintf
.L1983:
	ldr	r3, [fp, #-200]
	cmp	r3, #0
	beq	.L1984
	sub	r7, fp, #124
	ldmia	r7, {r6-r7}
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	sub	r5, fp, #100
	ldmia	r5, {r4-r5}
	str	r4, [sp, #16]
	str	r5, [sp, #20]
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	mov	r2, r6
	mov	r3, r7
	ldr	r1, .L1986+88
	ldr	r0, [fp, #-200]
	bl	fprintf
	sub	r4, fp, #92
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-212]
	str	r4, [fp, #-208]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	sub	r5, fp, #68
	ldmia	r5, {r4-r5}
	sub	r7, fp, #60
	ldmia	r7, {r6-r7}
	sub	r9, fp, #52
	ldmia	r9, {r8-r9}
	str	r8, [sp, #32]
	str	r9, [sp, #36]
	str	r6, [sp, #24]
	str	r7, [sp, #28]
	str	r4, [sp, #16]
	str	r5, [sp, #20]
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	ldr	r1, .L1986+92
	ldr	r0, [fp, #-200]
	bl	fprintf
.L1984:
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #16]
	ldr	r1, .L1986+96
	mov	r0, r3
	bl	myfree
	sub	r3, fp, #132
	add	r2, r3, #8
	sub	r3, fp, #132
	add	r3, r3, #40
	mov	r1, r2
	mov	r0, r3
	bl	CreateGTR
	mov	r2, r0
	ldr	r3, [fp, #-192]
	str	r2, [r3, #16]
	ldr	r0, [fp, #-192]
	bl	RecomputeMLProfiles
	ldr	r0, [fp, #-192]
	bl	OptimizeAllBranchLengths
	nop
	ldr	r3, .L1986
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1985
	bl	__stack_chk_fail
.L1985:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L1987:
	.align	2
.L1986:
	.word	.LC425
	.word	nCodes
	.word	__PRETTY_FUNCTION__.9700
	.word	5808
	.word	.LC134
	.word	.LC420
	.word	.LC2
	.word	1072693248
	.word	mlAccuracy
	.word	.LC421
	.word	-350469331
	.word	1058682594
	.word	-755914244
	.word	1062232653
	.word	GTRNegLogLk
	.word	1077149696
	.word	-1717986918
	.word	1068079513
	.word	verbose
	.word	stderr
	.word	.LC422
	.word	.LC129
	.word	.LC423
	.word	.LC424
	.word	16880
	.size	SetMLGtr, .-SetMLGtr
	.section	.rodata
	.align	2
.LC426:
	.ascii	"gtr->NJ != NULL\000"
	.align	2
.LC427:
	.ascii	"gtr->iRate >= 0 && gtr->iRate < 6\000"
	.align	2
.LC428:
	.ascii	"x > 0\000"
	.align	2
.LC429:
	.ascii	"GTR LogLk(%.5f %.5f %.5f %.5f %.5f %.5f) = %f\012\000"
	.align	2
.LC430:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	GTRNegLogLk
	.syntax unified
	.arm
	.fpu softvfp
	.type	GTRNegLogLk, %function
GTRNegLogLk:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #168
	str	r0, [fp, #-116]
	str	r1, [fp, #-112]
	str	r2, [fp, #-120]
	ldr	r3, .L2000
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-100]
	ldr	r3, .L2000+4
	ldr	r3, [r3]
	cmp	r3, #4
	beq	.L1989
	ldr	r3, .L2000+8
	ldr	r2, .L2000+12
	ldr	r1, .L2000+16
	ldr	r0, .L2000+20
	bl	__assert_fail
.L1989:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1990
	ldr	r3, .L2000+8
	ldr	r2, .L2000+24
	ldr	r1, .L2000+16
	ldr	r0, .L2000+28
	bl	__assert_fail
.L1990:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #88]
	cmp	r3, #0
	blt	.L1991
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #88]
	cmp	r3, #5
	ble	.L1999
.L1991:
	ldr	r3, .L2000+8
	ldr	r2, .L2000+32
	ldr	r1, .L2000+16
	ldr	r0, .L2000+36
	bl	__assert_fail
.L1999:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1993
	ldr	r3, .L2000+8
	ldr	r2, .L2000+40
	ldr	r1, .L2000+16
	ldr	r0, .L2000+44
	bl	__assert_fail
.L1993:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-104]
	b	.L1994
.L1995:
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-104]
	add	r3, r3, #5
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-104]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #56
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
.L1994:
	ldr	r3, [fp, #-104]
	cmp	r3, #5
	ble	.L1995
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #88]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r1, r3, #56
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-100]
	add	r2, r3, #8
	ldr	r3, [fp, #-100]
	ldr	r4, [r3]
	sub	r3, fp, #84
	mov	r1, r2
	mov	r0, r3
	bl	CreateGTR
	mov	r3, r0
	str	r3, [r4, #16]
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	mov	r0, r3
	bl	RecomputeMLProfiles
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	TreeLogLk
	str	r0, [fp, #-92]
	str	r1, [fp, #-88]
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r1, .L2000+48
	mov	r0, r3
	bl	myfree
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	ldr	r2, [fp, #-96]
	str	r2, [r3, #16]
	ldr	r3, .L2000+52
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L1996
	ldr	r3, .L2000+56
	ldr	ip, [r3]
	sub	r4, fp, #84
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-132]
	str	r4, [fp, #-128]
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	sub	r5, fp, #68
	ldmia	r5, {r4-r5}
	sub	r9, fp, #60
	ldmia	r9, {r8-r9}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	str	r2, [sp, #40]
	str	r3, [sp, #44]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	str	r2, [sp, #32]
	str	r3, [sp, #36]
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	str	r2, [sp, #24]
	str	r3, [sp, #28]
	str	r8, [sp, #16]
	str	r9, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	ldr	r1, .L2000+60
	mov	r0, ip
	bl	fprintf
.L1996:
	ldr	r6, [fp, #-92]
	ldr	r3, [fp, #-88]
	eor	r7, r3, #-2147483648
	mov	r2, r6
	mov	r3, r7
	ldr	r1, .L2000
	ldr	r0, [r1]
	ldr	r1, [fp, #-32]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L1998
	bl	__stack_chk_fail
.L1998:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L2001:
	.align	2
.L2000:
	.word	.LC430
	.word	nCodes
	.word	__PRETTY_FUNCTION__.9738
	.word	5867
	.word	.LC134
	.word	.LC377
	.word	5868
	.word	.LC426
	.word	5869
	.word	.LC427
	.word	5870
	.word	.LC428
	.word	16880
	.word	verbose
	.word	stderr
	.word	.LC429
	.size	GTRNegLogLk, .-GTRNegLogLk
	.align	2
	.global	MLSiteRates
	.syntax unified
	.arm
	.fpu softvfp
	.type	MLSiteRates, %function
MLSiteRates:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #48
	str	r0, [fp, #-56]
	ldr	r0, [fp, #-56]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	ldr	r4, [fp, #-44]
	ldr	r3, [fp, #-40]
	eor	r5, r3, #-2147483648
	str	r4, [fp, #-36]
	str	r5, [fp, #-32]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L2003
.L2004:
	ldr	r0, [fp, #-52]
	bl	__aeabi_i2d
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-52]
	lsl	r1, r1, #2
	ldr	r0, [fp, #-48]
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L2003:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	blt	.L2004
	ldr	r3, [fp, #-48]
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	MLSiteRates, .-MLSiteRates
	.section	.rodata
	.align	2
.LC431:
	.ascii	"NJ->rates.nRateCategories > 0\000"
	.align	2
.LC432:
	.ascii	"Site likelihoods with rate category %d of %d\000"
	.align	2
.LC433:
	.ascii	"Rate %.3f Loglk %.3f SiteLogLk\000"
	.align	2
.LC434:
	.ascii	"\011%.3f\000"
	.text
	.align	2
	.global	MLSiteLikelihoodsByRate
	.syntax unified
	.arm
	.fpu softvfp
	.type	MLSiteLikelihoodsByRate, %function
MLSiteLikelihoodsByRate:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #60
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-56]
	mul	r3, r2, r3
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #100]
	cmp	r3, #0
	bgt	.L2007
	ldr	r3, .L2016
	ldr	r2, .L2016+4
	ldr	r1, .L2016+8
	ldr	r0, .L2016+12
	bl	__assert_fail
.L2007:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #104]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #100]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-48]
	str	r2, [r3, #104]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L2008
.L2014:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L2009
.L2010:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-48]
	ldr	r1, [r3, #104]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L2009:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #100]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L2010
	ldr	r0, [fp, #-48]
	bl	RecomputeMLProfiles
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	TreeLogLk
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	ldr	r3, [fp, #-36]
	add	r1, r3, #1
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-56]
	ldr	r0, .L2016+16
	bl	ProgressReport
	ldr	r3, .L2016+20
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2011
	ldr	r3, .L2016+24
	ldr	r4, [r3]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L2016+28
	mov	r0, r4
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L2012
.L2013:
	ldr	r3, .L2016+24
	ldr	r0, [r3]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-36]
	mul	r2, r3, r2
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, .L2016+32
	bl	fprintf
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L2012:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L2013
	ldr	r3, .L2016+24
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L2011:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L2008:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	blt	.L2014
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #104]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #100]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #104]
	ldr	r0, [fp, #-48]
	bl	RecomputeMLProfiles
	ldr	r3, [fp, #-28]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L2017:
	.align	2
.L2016:
	.word	__PRETTY_FUNCTION__.9764
	.word	5909
	.word	.LC134
	.word	.LC431
	.word	.LC432
	.word	verbose
	.word	stderr
	.word	.LC433
	.word	.LC434
	.size	MLSiteLikelihoodsByRate, .-MLSiteLikelihoodsByRate
	.section	.rodata
	.align	2
.LC435:
	.ascii	"nRateCategories > 0\000"
	.align	2
.LC436:
	.ascii	"Selected rate category %d rate %.3f for position %d"
	.ascii	"\012\000"
	.align	2
.LC437:
	.ascii	"Switched to using %d rate categories (CAT approxima"
	.ascii	"tion)\012\000"
	.align	2
.LC438:
	.ascii	"Rate categories were divided by %.3f so that averag"
	.ascii	"e rate = 1.0\012\000"
	.align	2
.LC439:
	.ascii	"CAT-based log-likelihoods may not be comparable acr"
	.ascii	"oss runs\012\000"
	.align	2
.LC440:
	.ascii	"Use -gamma for approximate but comparable Gamma(20)"
	.ascii	" log-likelihoods\012\000"
	.text
	.align	2
	.global	SetMLRates
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetMLRates, %function
SetMLRates:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #80
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	bgt	.L2019
	ldr	r3, .L2032
	ldr	r2, .L2032+4
	ldr	r1, .L2032+8
	ldr	r0, .L2032+12
	bl	__assert_fail
.L2019:
	ldr	r3, [fp, #-72]
	add	r0, r3, #100
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r1, #1
	bl	AllocRateCategories
	ldr	r3, [fp, #-76]
	cmp	r3, #1
	bne	.L2020
	ldr	r0, [fp, #-72]
	bl	RecomputeMLProfiles
	b	.L2018
.L2020:
	ldr	r0, [fp, #-76]
	bl	MLSiteRates
	str	r0, [fp, #-52]
	ldr	r2, [fp, #-76]
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-72]
	bl	MLSiteLikelihoodsByRate
	str	r0, [fp, #-48]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L2022
.L2028:
	mvn	r3, #0
	str	r3, [fp, #-56]
	ldr	r2, .L2032+16
	ldr	r3, .L2032+20
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L2023
.L2026:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-60]
	mul	r2, r3, r2
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L2032+24
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2024
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
.L2024:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L2023:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	blt	.L2026
	ldr	r3, .L2032+28
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2027
	ldr	r3, .L2032+32
	ldr	r4, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-64]
	add	r1, r1, #1
	str	r1, [sp, #8]
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-56]
	ldr	r1, .L2032+36
	mov	r0, r4
	bl	fprintf
.L2027:
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #108]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-56]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L2022:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-64]
	cmp	r2, r3
	blt	.L2028
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-76]
	mul	r3, r2, r3
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	myfree
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L2029
.L2030:
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L2029:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	blt	.L2030
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #104]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #100]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-72]
	str	r2, [r3, #104]
	ldr	r3, [fp, #-72]
	ldr	r2, [fp, #-52]
	str	r2, [r3, #104]
	ldr	r3, [fp, #-72]
	ldr	r2, [fp, #-76]
	str	r2, [r3, #100]
	ldr	r0, [fp, #-72]
	bl	RecomputeMLProfiles
	ldr	r3, .L2032+28
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2018
	ldr	r3, .L2032+32
	ldr	r3, [r3]
	ldr	r2, [fp, #-76]
	ldr	r1, .L2032+40
	mov	r0, r3
	bl	fprintf
	ldr	r3, .L2032+32
	ldr	r0, [r3]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	ldr	r1, .L2032+44
	bl	fprintf
	ldr	r3, .L2032+32
	ldr	r3, [r3]
	mov	r2, #60
	mov	r1, #1
	ldr	r0, .L2032+48
	bl	fwrite
	ldr	r3, .L2032+52
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L2018
	ldr	r3, .L2032+32
	ldr	r3, [r3]
	mov	r2, #68
	mov	r1, #1
	ldr	r0, .L2032+56
	bl	fwrite
.L2018:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L2033:
	.align	2
.L2032:
	.word	__PRETTY_FUNCTION__.9783
	.word	5940
	.word	.LC134
	.word	.LC435
	.word	2025163840
	.word	-1005211875
	.word	1074266112
	.word	verbose
	.word	stderr
	.word	.LC436
	.word	.LC437
	.word	.LC438
	.word	.LC439
	.word	gammaLogLk
	.word	.LC440
	.size	SetMLRates, .-SetMLRates
	.align	2
	.global	GammaLogLk
	.syntax unified
	.arm
	.fpu softvfp
	.type	GammaLogLk, %function
GammaLogLk:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #88
	str	r0, [fp, #-96]
	str	r1, [fp, #-100]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #20]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-80]
	mov	r3, #0
	str	r3, [fp, #-88]
	b	.L2035
.L2040:
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	beq	.L2036
	ldr	r3, [fp, #-96]
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-96]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	PGamma
	mov	r2, r0
	mov	r3, r1
	b	.L2037
.L2036:
	mov	r2, #0
	mov	r3, #0
.L2037:
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #20]
	sub	r3, r3, #1
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	beq	.L2038
	ldr	r3, [fp, #-96]
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-96]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	PGamma
	mov	r2, r0
	mov	r3, r1
	b	.L2039
.L2038:
	mov	r2, #0
	ldr	r3, .L2052
.L2039:
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-80]
	add	r4, r2, r3
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L2035:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	blt	.L2040
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	mov	r3, #0
	str	r3, [fp, #-84]
	b	.L2041
.L2049:
	ldr	r2, .L2052+4
	ldr	r3, .L2052+8
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r3, #0
	str	r3, [fp, #-88]
	b	.L2042
.L2045:
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #16]
	ldr	r1, [fp, #-88]
	mul	r1, r3, r1
	ldr	r3, [fp, #-84]
	add	r3, r1, r3
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2043
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
.L2043:
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L2042:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	blt	.L2045
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-88]
	b	.L2046
.L2047:
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #16]
	ldr	r1, [fp, #-88]
	mul	r1, r3, r1
	ldr	r3, [fp, #-84]
	add	r3, r1, r3
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-80]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L2046:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	blt	.L2047
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	log
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	beq	.L2048
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r1, r2, r3
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
.L2048:
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L2041:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-84]
	cmp	r2, r3
	blt	.L2049
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #20]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	myfree
	str	r0, [fp, #-80]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L2053:
	.align	2
.L2052:
	.word	1072693248
	.word	2025163840
	.word	-1005211875
	.size	GammaLogLk, .-GammaLogLk
	.align	2
	.global	OptAlpha
	.syntax unified
	.arm
	.fpu softvfp
	.type	OptAlpha, %function
OptAlpha:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-16]
	ldr	r1, [fp, #-16]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	str	r2, [r1, #8]
	str	r3, [r1, #12]
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	GammaLogLk
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	eor	r5, r3, #-2147483648
	mov	r2, r4
	mov	r3, r5
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	OptAlpha, .-OptAlpha
	.align	2
	.global	OptMult
	.syntax unified
	.arm
	.fpu softvfp
	.type	OptMult, %function
OptMult:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-16]
	ldr	r1, [fp, #-16]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	GammaLogLk
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	eor	r5, r3, #-2147483648
	mov	r2, r4
	mov	r3, r5
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	OptMult, .-OptMult
	.section	.rodata
	.align	2
.LC441:
	.ascii	"Optimizing alpha, starting at loglk %.3f\012\000"
	.align	2
.LC442:
	.ascii	"Optimizing alpha round %d\000"
	.align	2
.LC443:
	.ascii	"Optimize alpha round %d to %.3f lk %.3f\012\000"
	.align	2
.LC444:
	.ascii	"Optimize mult round %d to %.3f lk %.3f\012\000"
	.align	2
.LC445:
	.ascii	"Optimizing alpha & mult converged\012\000"
	.align	2
.LC446:
	.ascii	"Gamma(%d) LogLk = %.3f alpha = %.3f rescaling lengt"
	.ascii	"hs by %.3f\012\000"
	.align	2
.LC447:
	.ascii	"Gamma%dLogLk\011%.3f\011Approximate\011Alpha\011%.3"
	.ascii	"f\011Rescale\011%.3f\012\000"
	.align	2
.LC448:
	.ascii	"Gamma%d\011Site\011LogLk\000"
	.align	2
.LC449:
	.ascii	"\011r=%.3f\000"
	.align	2
.LC450:
	.ascii	"Gamma%d\011%d\011%.3f\000"
	.align	2
.LC451:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	RescaleGammaLogLk
	.syntax unified
	.arm
	.fpu softvfp
	.type	RescaleGammaLogLk, %function
RescaleGammaLogLk:
	@ args = 4, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #160
	str	r0, [fp, #-120]
	str	r1, [fp, #-124]
	str	r2, [fp, #-128]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-136]
	ldr	r3, .L2081
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	mov	r2, #0
	ldr	r3, .L2081+4
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r2, #0
	ldr	r3, .L2081+4
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-132]
	str	r3, [fp, #-40]
	sub	r3, fp, #68
	mov	r1, #0
	mov	r0, r3
	bl	GammaLogLk
	mov	r2, r0
	mov	r3, r1
	mov	r8, r2
	eor	r9, r3, #-2147483648
	str	r8, [fp, #-100]
	str	r9, [fp, #-96]
	ldr	r3, .L2081+8
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2059
	ldr	r3, .L2081+12
	ldr	r0, [r3]
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	eor	r3, r3, #-2147483648
	str	r3, [fp, #-144]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	ldr	r1, .L2081+16
	bl	fprintf
.L2059:
	mov	r3, #0
	str	r3, [fp, #-116]
	b	.L2060
.L2067:
	ldr	r3, [fp, #-116]
	add	r1, r3, #1
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r0, .L2081+20
	bl	ProgressReport
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	str	r1, [sp, #36]
	sub	r1, fp, #100
	str	r1, [sp, #32]
	ldr	r0, .L2081+24
	ldr	r1, .L2081+28
	str	r0, [sp, #24]
	str	r1, [sp, #28]
	ldr	r0, .L2081+24
	ldr	r1, .L2081+28
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	sub	r1, fp, #68
	str	r1, [sp, #12]
	ldr	r1, .L2081+32
	str	r1, [sp, #8]
	mov	r0, #0
	ldr	r1, .L2081+36
	stm	sp, {r0-r1}
	ldr	r0, .L2081+40
	ldr	r1, .L2081+44
	bl	onedimenmin
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, .L2081+8
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2061
	ldr	r3, .L2081+12
	ldr	ip, [r3]
	ldr	r3, [fp, #-116]
	add	lr, r3, #1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	mov	r4, r2
	eor	r5, r3, #-2147483648
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, lr
	ldr	r1, .L2081+48
	mov	r0, ip
	bl	fprintf
.L2061:
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	str	r1, [sp, #36]
	sub	r1, fp, #100
	str	r1, [sp, #32]
	ldr	r0, .L2081+24
	ldr	r1, .L2081+28
	str	r0, [sp, #24]
	str	r1, [sp, #28]
	ldr	r0, .L2081+24
	ldr	r1, .L2081+28
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	sub	r1, fp, #68
	str	r1, [sp, #12]
	ldr	r1, .L2081+52
	str	r1, [sp, #8]
	mov	r0, #0
	ldr	r1, .L2081+36
	stm	sp, {r0-r1}
	ldr	r0, .L2081+40
	ldr	r1, .L2081+44
	bl	onedimenmin
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, .L2081+8
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2062
	ldr	r3, .L2081+12
	ldr	ip, [r3]
	ldr	r3, [fp, #-116]
	add	lr, r3, #1
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	mov	r6, r2
	eor	r7, r3, #-2147483648
	str	r6, [sp, #8]
	str	r7, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, lr
	ldr	r1, .L2081+56
	mov	r0, ip
	bl	fprintf
.L2062:
	ldr	r2, .L2081+24
	ldr	r3, .L2081+28
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2079
	ldr	r3, .L2081+8
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2080
	ldr	r3, .L2081+12
	ldr	r3, [r3]
	mov	r2, #34
	mov	r1, #1
	ldr	r0, .L2081+60
	bl	fwrite
	b	.L2080
.L2079:
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	str	r3, [fp, #-116]
.L2060:
	ldr	r3, [fp, #-116]
	cmp	r3, #9
	ble	.L2067
	b	.L2066
.L2080:
	nop
.L2066:
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-104]
	sub	r3, fp, #68
	ldr	r1, [fp, #-104]
	mov	r0, r3
	bl	GammaLogLk
	str	r0, [fp, #-76]
	str	r1, [fp, #-72]
	ldr	r3, .L2081+8
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L2068
	ldr	r3, .L2081+12
	ldr	r6, [r3]
	sub	r5, fp, #60
	ldmia	r5, {r4-r5}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L2081+4
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-124]
	ldr	r1, .L2081+64
	mov	r0, r6
	bl	fprintf
.L2068:
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	beq	.L2069
	sub	r5, fp, #60
	ldmia	r5, {r4-r5}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L2081+4
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-124]
	ldr	r1, .L2081+68
	ldr	r0, [fp, #-136]
	bl	fprintf
	ldr	r2, [fp, #-124]
	ldr	r1, .L2081+72
	ldr	r0, [fp, #-136]
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-108]
	b	.L2070
.L2071:
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L2081+76
	ldr	r0, [fp, #-136]
	bl	fprintf
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
.L2070:
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	blt	.L2071
	ldr	r1, [fp, #-136]
	mov	r0, #10
	bl	fputc
	mov	r3, #0
	str	r3, [fp, #-112]
	b	.L2072
.L2075:
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-104]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	ldr	r3, [fp, #-112]
	ldr	r2, [fp, #-124]
	ldr	r1, .L2081+80
	ldr	r0, [fp, #-136]
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-108]
	b	.L2073
.L2074:
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-108]
	mul	r2, r3, r2
	ldr	r3, [fp, #-112]
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, .L2081+84
	ldr	r0, [fp, #-136]
	bl	fprintf
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
.L2073:
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	blt	.L2074
	ldr	r1, [fp, #-136]
	mov	r0, #10
	bl	fputc
	ldr	r3, [fp, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-112]
.L2072:
	ldr	r2, [fp, #-112]
	ldr	r3, [fp, #-120]
	cmp	r2, r3
	blt	.L2075
.L2069:
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-104]
	bl	myfree
	str	r0, [fp, #-104]
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L2081+4
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L2081
	ldr	r0, [r1]
	ldr	r1, [fp, #-32]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L2077
	bl	__stack_chk_fail
.L2077:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L2082:
	.align	2
.L2081:
	.word	.LC451
	.word	1072693248
	.word	verbose
	.word	stderr
	.word	.LC441
	.word	.LC442
	.word	-755914244
	.word	1062232653
	.word	OptAlpha
	.word	1076101120
	.word	1202590843
	.word	1065646817
	.word	.LC443
	.word	OptMult
	.word	.LC444
	.word	.LC445
	.word	.LC446
	.word	.LC447
	.word	.LC448
	.word	.LC449
	.word	.LC450
	.word	.LC434
	.size	RescaleGammaLogLk, .-RescaleGammaLogLk
	.section	.rodata
	.align	2
.LC452:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	MLPairOptimize
	.syntax unified
	.arm
	.fpu softvfp
	.type	MLPairOptimize, %function
MLPairOptimize:
	@ args = 8, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #160
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	str	r2, [fp, #-136]
	str	r3, [fp, #-140]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-148]
	ldr	r3, .L2088
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-120]
	b	.L2084
.L2085:
	ldr	r3, [fp, #-148]
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-120]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #48
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
.L2084:
	ldr	r3, [fp, #-120]
	cmp	r3, #4
	ble	.L2085
	ldr	r3, [fp, #-136]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-140]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-92]
	mov	r3, #0
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-132]
	str	r3, [fp, #-80]
	ldr	r6, .L2088+4
	ldr	r7, .L2088+8
	ldr	r3, [fp, #-148]
	ldmia	r3, {r2-r3}
	ldr	r0, .L2088+4
	ldr	r1, .L2088+12
	ldr	r4, .L2088+16
	ldr	r5, .L2088+20
	sub	ip, fp, #116
	str	ip, [sp, #36]
	sub	ip, fp, #108
	str	ip, [sp, #32]
	str	r4, [sp, #24]
	str	r5, [sp, #28]
	str	r0, [sp, #16]
	str	r1, [sp, #20]
	sub	r1, fp, #100
	str	r1, [sp, #12]
	ldr	r1, .L2088+24
	str	r1, [sp, #8]
	mov	r0, #0
	ldr	r1, .L2088+28
	stm	sp, {r0-r1}
	mov	r0, r6
	mov	r1, r7
	bl	onedimenmin
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-148]
	stm	r1, {r2-r3}
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	mov	r8, r2
	eor	r9, r3, #-2147483648
	mov	r2, r8
	mov	r3, r9
	ldr	r1, .L2088
	ldr	r0, [r1]
	ldr	r1, [fp, #-32]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L2087
	bl	__stack_chk_fail
.L2087:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L2089:
	.align	2
.L2088:
	.word	.LC452
	.word	-755914244
	.word	1061184077
	.word	1062232653
	.word	-350469331
	.word	1058682594
	.word	PairNegLogLk
	.word	1075314688
	.size	MLPairOptimize, .-MLPairOptimize
	.section	.rodata
	.align	2
.LC453:
	.ascii	"NJ->child[parent].nChild==2\000"
	.align	2
.LC454:
	.ascii	"ML Lengths %d of %d splits\000"
	.align	2
.LC455:
	.ascii	"nChild == 2 || nChild == 3\000"
	.align	2
.LC456:
	.ascii	"Optimize length for %d to %.3f\012\000"
	.align	2
.LC457:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	OptimizeAllBranchLengths
	.syntax unified
	.arm
	.fpu softvfp
	.type	OptimizeAllBranchLengths, %function
OptimizeAllBranchLengths:
	@ args = 0, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #120
	str	r0, [fp, #-112]
	ldr	r3, .L2114
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L2113
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L2093
	ldr	r3, [fp, #-112]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L2094
	ldr	r3, .L2114+4
	ldr	r2, .L2114+8
	ldr	r1, .L2114+12
	ldr	r0, .L2114+16
	bl	__assert_fail
.L2094:
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #8]
	str	r3, [fp, #-32]
	mov	r2, #0
	ldr	r3, .L2114+20
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-112]
	ldr	ip, [r3, #4]
	ldr	r3, [fp, #-112]
	ldr	lr, [r3, #16]
	ldr	r3, [fp, #-112]
	add	r3, r3, #100
	sub	r2, fp, #60
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, lr
	mov	r2, ip
	bl	MLPairOptimize
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	b	.L2090
.L2093:
	ldr	r0, [fp, #-112]
	bl	InitTraversal
	str	r0, [fp, #-92]
	ldr	r0, [fp, #-112]
	bl	UpProfiles
	str	r0, [fp, #-88]
	ldr	r3, [fp, #-112]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-108]
	mov	r3, #0
	str	r3, [fp, #-104]
	b	.L2095
.L2110:
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	ble	.L2095
	ldr	r1, [fp, #-104]
	ldr	r3, .L2114+24
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L2096
	ldr	r3, [fp, #-104]
	add	r1, r3, #1
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	sub	r2, r2, r3
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, .L2114+28
	bl	ProgressReport
.L2096:
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-84]
	cmp	r3, #2
	beq	.L2097
	ldr	r3, [fp, #-84]
	cmp	r3, #3
	beq	.L2097
	ldr	r3, .L2114+4
	ldr	r2, .L2114+32
	ldr	r1, .L2114+12
	ldr	r0, .L2114+36
	bl	__assert_fail
.L2097:
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #8]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-84]
	cmp	r3, #3
	bne	.L2098
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #12]
	b	.L2099
.L2098:
	ldr	r3, [fp, #-108]
.L2099:
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-84]
	cmp	r3, #3
	bne	.L2100
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	b	.L2101
.L2100:
	mov	r3, #1
	ldr	r2, [fp, #-108]
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-88]
	bl	GetUpProfile
	mov	r3, r0
.L2101:
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L2102
.L2108:
	mov	r3, #0
	str	r3, [fp, #-96]
	b	.L2103
.L2107:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-16]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-96]
	add	r2, r3, #1
	ldr	r3, .L2114+40
	smull	r0, r1, r3, r2
	asr	r3, r2, #31
	sub	r1, r1, r3
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	sub	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-96]
	add	r2, r3, #2
	ldr	r3, .L2114+40
	smull	r0, r1, r3, r2
	asr	r3, r2, #31
	sub	r1, r1, r3
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	sub	r3, r2, r3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r6, [r3, #-16]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r7, [r3, #-16]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-112]
	ldr	r1, [r1, #16]
	ldr	r0, [fp, #-112]
	add	r0, r0, #100
	ldr	ip, [fp, #-112]
	ldr	ip, [ip, #4]
	mov	lr, #0
	str	lr, [sp, #20]
	str	ip, [sp, #16]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r3, r5
	mov	r1, r7
	mov	r0, r6
	bl	PosteriorProfile
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	ldr	r2, .L2114+44
	ldr	r3, .L2114+48
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2104
	ldr	r2, .L2114+44
	ldr	r3, .L2114+48
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
.L2104:
	ldr	r3, [fp, #-112]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-112]
	ldr	r0, [r3, #16]
	ldr	r3, [fp, #-112]
	add	r3, r3, #100
	sub	r2, fp, #60
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r0
	mov	r2, r1
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-80]
	bl	MLPairOptimize
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	sub	ip, fp, #20
	add	r3, ip, r3
	ldr	r3, [r3, #-28]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-112]
	ldr	r3, [r3, #4]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-68]
	bl	FreeProfile
	str	r0, [fp, #-68]
	ldr	r3, .L2114+52
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L2106
	ldr	r3, .L2114+56
	ldr	r4, [r3]
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r5, [r3, #-28]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r5
	ldr	r1, .L2114+60
	mov	r0, r4
	bl	fprintf
.L2106:
	ldr	r3, [fp, #-96]
	add	r3, r3, #1
	str	r3, [fp, #-96]
.L2103:
	ldr	r3, [fp, #-96]
	cmp	r3, #2
	ble	.L2107
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L2102:
	ldr	r3, [fp, #-100]
	cmp	r3, #1
	ble	.L2108
	ldr	r3, [fp, #-112]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-108]
	cmp	r2, r3
	beq	.L2095
	mov	r3, #1
	ldr	r2, [fp, #-108]
	ldr	r1, [fp, #-88]
	ldr	r0, [fp, #-112]
	bl	RecomputeProfile
	ldr	r2, [fp, #-108]
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-88]
	bl	DeleteUpProfile
.L2095:
	mov	r3, #0
	ldr	r2, [fp, #-92]
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-108]
	bl	TraversePostorder
	str	r0, [fp, #-108]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	bge	.L2110
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-92]
	bl	FreeTraversal
	str	r0, [fp, #-92]
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-88]
	bl	FreeUpProfiles
	str	r0, [fp, #-88]
	b	.L2090
.L2113:
	nop
.L2090:
	ldr	r3, .L2114
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2111
	bl	__stack_chk_fail
.L2111:
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L2115:
	.align	2
.L2114:
	.word	.LC457
	.word	__PRETTY_FUNCTION__.9887
	.word	6122
	.word	.LC134
	.word	.LC453
	.word	1072693248
	.word	1374389535
	.word	.LC454
	.word	6146
	.word	.LC455
	.word	1431655766
	.word	-755914244
	.word	1061184077
	.word	verbose
	.word	stderr
	.word	.LC456
	.size	OptimizeAllBranchLengths, .-OptimizeAllBranchLengths
	.align	2
	.global	RecomputeMLProfiles
	.syntax unified
	.arm
	.fpu softvfp
	.type	RecomputeMLProfiles, %function
RecomputeMLProfiles:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	ldr	r0, [fp, #-48]
	bl	InitTraversal
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-40]
	b	.L2117
.L2118:
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L2117
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-48]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-48]
	ldr	ip, [r3, #20]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r2, ip
	bl	FreeProfile
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #4
	add	r3, r2, r3
	add	r3, r3, #4
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r8, [r3]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-32]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r9, [r3]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-32]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-48]
	ldr	r1, [r1, #16]
	ldr	r0, [fp, #-48]
	add	r0, r0, #100
	ldr	ip, [fp, #-48]
	ldr	ip, [ip, #4]
	ldr	lr, [fp, #-48]
	ldr	lr, [lr, #20]
	ldr	r6, [fp, #-48]
	ldr	r7, [r6, #36]
	ldr	r6, [fp, #-40]
	lsl	r6, r6, #2
	add	r6, r7, r6
	str	lr, [sp, #20]
	str	ip, [sp, #16]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r3, r5
	mov	r1, r9
	mov	r0, r8
	bl	PosteriorProfile
	mov	r3, r0
	str	r3, [r6]
.L2117:
	mov	r3, #0
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-40]
	bl	TraversePostorder
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bge	.L2118
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-36]
	bl	FreeTraversal
	str	r0, [fp, #-36]
	nop
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	RecomputeMLProfiles, .-RecomputeMLProfiles
	.align	2
	.global	RecomputeProfiles
	.syntax unified
	.arm
	.fpu softvfp
	.type	RecomputeProfiles, %function
RecomputeProfiles:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	InitTraversal
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-24]
	b	.L2120
.L2121:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L2120
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #4
	add	r3, r2, r3
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-32]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-32]
	ldr	ip, [r3, #20]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r2, ip
	bl	FreeProfile
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-32]
	ldr	ip, [r3, #4]
	ldr	r3, [fp, #-32]
	ldr	lr, [r3, #20]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r2, #0
	ldr	r3, .L2122
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-36]
	str	r3, [sp]
	mov	r3, lr
	mov	r2, ip
	bl	AverageProfile
	mov	r3, r0
	str	r3, [r4]
.L2120:
	mov	r3, #0
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-24]
	bl	TraversePostorder
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L2121
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-20]
	bl	FreeTraversal
	str	r0, [fp, #-20]
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L2123:
	.align	2
.L2122:
	.word	-1074790400
	.size	RecomputeProfiles, .-RecomputeProfiles
	.section	.rodata
	.align	2
.LC458:
	.ascii	"Beginning round %d of NNIs with ml? %d\012\000"
	.align	2
.LC459:
	.ascii	"Skipping subtree at %d: child %d %d parent %d age %"
	.ascii	"d subtreeAge %d support %.3f\012\000"
	.align	2
.LC460:
	.ascii	"Going up back to node %d\012\000"
	.align	2
.LC461:
	.ascii	"ML\000"
	.align	2
.LC462:
	.ascii	"ME\000"
	.align	2
.LC463:
	.ascii	"%s NNI round %%d of %%d, %%d of %%d splits\000"
	.align	2
.LC464:
	.ascii	", %d changes\000"
	.align	2
.LC465:
	.ascii	" (max delta %.3f)\000"
	.align	2
.LC466:
	.ascii	"Considering NNI around %d: Swap A=%d B=%d C=%d D=up"
	.ascii	"(%d) or parent %d\012\000"
	.align	2
.LC467:
	.ascii	"Starting quartet likelihood %.3f len %.3f %.3f %.3f"
	.ascii	" %.3f %.3f\012\000"
	.align	2
.LC468:
	.ascii	"delta-loglk\000"
	.align	2
.LC469:
	.ascii	"-deltaLen\000"
	.align	2
.LC470:
	.ascii	"NNI around %d: Swap A=%d B=%d C=%d D=out(C) -- choo"
	.ascii	"se %s %s %.4f\012\000"
	.align	2
.LC471:
	.ascii	"Old tree lk -- %.4f\012\000"
	.align	2
.LC472:
	.ascii	"New tree lk -- %.4f\012\000"
	.align	2
.LC473:
	.ascii	"N up profiles at end of NNI:  %d\012\000"
	.align	2
.LC474:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	NNI
	.syntax unified
	.arm
	.fpu softvfp
	.type	NNI, %function
NNI:
	@ args = 8, pretend = 0, frame = 352
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #396
	str	r0, [fp, #-352]
	str	r1, [fp, #-356]
	str	r2, [fp, #-360]
	strb	r3, [fp, #-361]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-368]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-372]
	ldr	r3, .L2220+132
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2125
	ldr	r3, .L2220
	ldmia	r3, {r2-r3}
	b	.L2126
.L2125:
	ldr	r3, .L2220+4
	ldmia	r3, {r2-r3}
.L2126:
	str	r2, [fp, #-284]
	str	r3, [fp, #-280]
	ldr	r1, [fp, #-372]
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	mov	r3, #0
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-352]
	ldr	r3, [r3]
	cmp	r3, #3
	bgt	.L2127
	mov	r3, #0
	b	.L2210
.L2127:
	ldr	r3, .L2220+120
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2129
	ldr	r3, .L2220+124
	ldr	r0, [r3]
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	ldr	r2, [fp, #-356]
	ldr	r1, .L2220+8
	bl	fprintf
	ldr	r3, .L2220+124
	ldr	r0, [r3]
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2130
	ldr	r3, [fp, #-356]
	cmp	r3, #0
	ble	.L2130
	mov	r3, #1
	b	.L2131
.L2130:
	mov	r3, #0
.L2131:
	and	r3, r3, #1
	and	r3, r3, #255
	mov	r2, r3
	ldr	r1, [fp, #-352]
	bl	PrintNJInternal
.L2129:
	ldr	r0, [fp, #-352]
	bl	UpProfiles
	str	r0, [fp, #-312]
	ldr	r0, [fp, #-352]
	bl	InitTraversal
	str	r0, [fp, #-308]
	ldr	r3, .L2220+12
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2132
	mov	r3, #0
	str	r3, [fp, #-332]
	b	.L2133
.L2142:
	ldr	r3, [fp, #-352]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-332]
	cmp	r2, r3
	beq	.L2134
	ldr	r3, [fp, #-352]
	ldr	r3, [r3]
	ldr	r2, [fp, #-332]
	cmp	r2, r3
	blt	.L2134
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L2134
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	cmp	r3, #1
	ble	.L2134
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #284
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2134
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	str	r3, [sp, #4]
	sub	r3, fp, #180
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-332]
	ldr	r0, [fp, #-352]
	bl	SetupABCD
	mov	r3, #0
	str	r3, [fp, #-340]
	b	.L2136
.L2140:
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #2
	sub	r2, fp, #36
	add	r3, r2, r3
	ldr	r3, [r3, #-144]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2137
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #2
	sub	r2, fp, #36
	add	r3, r2, r3
	ldr	r3, [r3, #-144]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #284
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L2218
.L2137:
	ldr	r3, [fp, #-340]
	add	r3, r3, #1
	str	r3, [fp, #-340]
.L2136:
	ldr	r3, [fp, #-340]
	cmp	r3, #3
	ble	.L2140
	b	.L2139
.L2218:
	nop
.L2139:
	ldr	r3, [fp, #-340]
	cmp	r3, #4
	bne	.L2134
	ldr	r1, [fp, #-308]
	ldr	r0, [fp, #-332]
	bl	SkipTraversalInto
	ldr	r3, .L2220+120
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2134
	ldr	r3, .L2220+124
	ldr	r4, [r3]
	ldr	r5, [fp, #-180]
	ldr	r1, [fp, #-176]
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	ip, [r3]
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	lr, [r3, #4]
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	lr, [sp, #12]
	str	ip, [sp, #8]
	str	r0, [sp, #4]
	str	r1, [sp]
	mov	r3, r5
	ldr	r2, [fp, #-332]
	ldr	r1, .L2220+16
	mov	r0, r4
	bl	fprintf
.L2134:
	ldr	r3, [fp, #-332]
	add	r3, r3, #1
	str	r3, [fp, #-332]
.L2133:
	ldr	r3, [fp, #-352]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-332]
	cmp	r2, r3
	blt	.L2142
.L2132:
	mov	r3, #0
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-352]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-332]
	b	.L2143
.L2205:
	ldr	r3, [fp, #-352]
	ldr	r3, [r3]
	ldr	r2, [fp, #-332]
	cmp	r2, r3
	blt	.L2219
	ldr	r3, [fp, #-352]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-332]
	cmp	r2, r3
	beq	.L2219
	ldrb	r3, [fp, #-342]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2147
	ldr	r3, .L2220+120
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2148
	ldr	r3, .L2220+124
	ldr	r3, [r3]
	ldr	r2, [fp, #-332]
	ldr	r1, .L2220+20
	mov	r0, r3
	bl	fprintf
.L2148:
	mov	r3, #0
	str	r3, [fp, #-340]
	b	.L2149
.L2150:
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, [fp, #-352]
	ldr	r0, [fp, #-312]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-340]
	add	r3, r3, #1
	str	r3, [fp, #-340]
.L2149:
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-340]
	cmp	r2, r3
	blt	.L2150
	ldr	r2, [fp, #-332]
	ldr	r1, [fp, #-352]
	ldr	r0, [fp, #-312]
	bl	DeleteUpProfile
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	ldr	r2, [fp, #-332]
	ldr	r1, [fp, #-312]
	ldr	r0, [fp, #-352]
	bl	RecomputeProfile
	b	.L2143
.L2147:
	ldr	r1, [fp, #-328]
	ldr	r3, .L2220+24
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L2151
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2152
	ldr	r2, .L2220+28
	b	.L2153
.L2152:
	ldr	r2, .L2220+32
.L2153:
	sub	r3, fp, #140
	ldr	r1, .L2220+36
	mov	r0, r3
	bl	sprintf
	ldr	r3, [fp, #-328]
	cmp	r3, #0
	ble	.L2154
	sub	r3, fp, #140
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	sub	r3, fp, #140
	add	r3, r3, r2
	ldr	r2, [fp, #-336]
	ldr	r1, .L2220+40
	mov	r0, r3
	bl	sprintf
.L2154:
	ldr	r3, [fp, #-336]
	cmp	r3, #0
	ble	.L2155
	sub	r3, fp, #140
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	sub	r3, fp, #140
	add	r0, r3, r2
	ldr	r3, [fp, #-372]
	ldmia	r3, {r2-r3}
	ldr	r1, .L2220+44
	bl	sprintf
.L2155:
	ldr	r3, [fp, #-356]
	add	r1, r3, #1
	ldr	r3, [fp, #-328]
	add	ip, r3, #1
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-352]
	ldr	r3, [r3]
	sub	r3, r2, r3
	sub	r0, fp, #140
	str	r3, [sp]
	mov	r3, ip
	ldr	r2, [fp, #-360]
	bl	ProgressReport
.L2151:
	ldr	r3, [fp, #-328]
	add	r3, r3, #1
	str	r3, [fp, #-328]
	sub	r2, fp, #256
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	str	r3, [sp, #4]
	sub	r3, fp, #240
	str	r3, [sp]
	ldr	r3, [fp, #-312]
	ldr	r1, [fp, #-332]
	ldr	r0, [fp, #-352]
	bl	SetupABCD
	ldr	r3, [fp, #-240]
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-236]
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-232]
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-228]
	str	r3, [fp, #-292]
	mov	r3, #0
	str	r3, [fp, #-324]
	ldr	r3, .L2220+120
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2156
	ldr	r3, .L2220+124
	ldr	r0, [r3]
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-292]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-296]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-300]
	str	r3, [sp]
	ldr	r3, [fp, #-304]
	ldr	r2, [fp, #-332]
	ldr	r1, .L2220+48
	bl	fprintf
.L2156:
	ldr	r3, .L2220+120
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L2157
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2157
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-304]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-300]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-296]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-292]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	mov	r3, #0
	str	r3, [fp, #-340]
	b	.L2158
.L2161:
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #144
	ldmia	r3, {r0-r1}
	ldr	r2, .L2220+52
	ldr	r3, .L2220+56
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2159
	ldr	r2, .L2220+52
	ldr	r3, .L2220+56
	ldr	r1, [fp, #-340]
	lsl	r1, r1, #3
	sub	r0, fp, #36
	add	r1, r0, r1
	sub	r1, r1, #144
	stm	r1, {r2-r3}
.L2159:
	ldr	r3, [fp, #-340]
	add	r3, r3, #1
	str	r3, [fp, #-340]
.L2158:
	ldr	r3, [fp, #-340]
	cmp	r3, #4
	ble	.L2161
	ldr	r3, .L2220+124
	ldr	r10, [r3]
	ldr	ip, [fp, #-256]
	ldr	lr, [fp, #-252]
	ldr	r4, [fp, #-248]
	ldr	r5, [fp, #-244]
	ldr	r3, [fp, #-352]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-352]
	ldr	r2, [r2, #16]
	ldr	r1, [fp, #-352]
	add	r1, r1, #100
	mov	r0, #0
	str	r0, [sp, #16]
	sub	r0, fp, #180
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r5
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	MLQuartetLogLk
	str	r0, [fp, #-380]
	str	r1, [fp, #-376]
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	sub	r5, fp, #164
	ldmia	r5, {r4-r5}
	str	r4, [fp, #-388]
	str	r5, [fp, #-384]
	sub	r9, fp, #156
	ldmia	r9, {r8-r9}
	sub	r5, fp, #148
	ldmia	r5, {r4-r5}
	str	r4, [sp, #32]
	str	r5, [sp, #36]
	str	r8, [sp, #24]
	str	r9, [sp, #28]
	sub	r5, fp, #388
	ldmia	r5, {r4-r5}
	str	r4, [sp, #16]
	str	r5, [sp, #20]
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	sub	r3, fp, #380
	ldmia	r3, {r2-r3}
	ldr	r1, .L2220+60
	mov	r0, r10
	bl	fprintf
.L2157:
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2162
	mov	r3, #0
	str	r3, [fp, #-340]
	b	.L2163
.L2164:
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #2
	sub	r1, fp, #36
	add	r3, r1, r3
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #2
	sub	r1, fp, #36
	add	r3, r1, r3
	str	r2, [r3, #-188]	@ float
	ldr	r3, [fp, #-340]
	add	r3, r3, #1
	str	r3, [fp, #-340]
.L2163:
	ldr	r3, [fp, #-340]
	cmp	r3, #3
	ble	.L2164
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-208]	@ float
	ldr	r3, .L2220+64
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L2165
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L2165
	mov	r3, #1
	b	.L2166
.L2165:
	mov	r3, #0
.L2166:
	strb	r3, [fp, #-341]
	ldrb	r3, [fp, #-341]
	and	r3, r3, #1
	strb	r3, [fp, #-341]
	ldr	r3, [fp, #-352]
	ldr	r1, [r3, #16]
	ldr	r3, [fp, #-352]
	add	ip, r3, #100
	ldr	r3, [fp, #-352]
	ldr	lr, [r3, #4]
	ldr	r3, [fp, #-352]
	ldr	r3, [r3, #20]
	sub	r0, fp, #256
	ldrb	r2, [fp, #-341]	@ zero_extendqisi2
	str	r2, [sp, #12]
	sub	r2, fp, #224
	str	r2, [sp, #8]
	sub	r2, fp, #204
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, lr
	mov	r2, ip
	bl	MLQuartetNNI
	str	r0, [fp, #-324]
	b	.L2167
.L2162:
	ldr	r3, [fp, #-352]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-352]
	ldr	ip, [r3, #20]
	sub	r0, fp, #256
	sub	r3, fp, #204
	str	r3, [sp]
	mov	r3, ip
	bl	ChooseNNI
	str	r0, [fp, #-324]
	mov	r3, #0
	str	r3, [fp, #-340]
	b	.L2168
.L2169:
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #168
	ldmia	r3, {r2-r3}
	mov	r6, r2
	eor	r7, r3, #-2147483648
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #168
	stm	r3, {r6-r7}
	ldr	r3, [fp, #-340]
	add	r3, r3, #1
	str	r3, [fp, #-340]
.L2168:
	ldr	r3, [fp, #-340]
	cmp	r3, #2
	ble	.L2169
.L2167:
	ldr	r3, [fp, #-324]
	cmp	r3, #1
	bne	.L2170
	ldr	r3, [fp, #-296]
	ldr	r2, [fp, #-300]
	ldr	r1, [fp, #-332]
	ldr	r0, [fp, #-352]
	bl	ReplaceChild
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-300]
	ldr	r2, [fp, #-296]
	ldr	r0, [fp, #-352]
	bl	ReplaceChild
	b	.L2171
.L2170:
	ldr	r3, [fp, #-324]
	cmp	r3, #2
	bne	.L2171
	ldr	r3, [fp, #-296]
	ldr	r2, [fp, #-304]
	ldr	r1, [fp, #-332]
	ldr	r0, [fp, #-352]
	bl	ReplaceChild
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-304]
	ldr	r2, [fp, #-296]
	ldr	r0, [fp, #-352]
	bl	ReplaceChild
.L2171:
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2172
	ldr	r3, [fp, #-324]
	cmp	r3, #2
	bne	.L2173
	ldr	r3, [fp, #-216]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-212]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-224]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-220]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-208]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	mov	r3, #0
	str	r3, [fp, #-320]
	b	.L2174
.L2175:
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #144
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	sub	r1, fp, #36
	add	r3, r1, r3
	str	r2, [r3, #-188]	@ float
	ldr	r3, [fp, #-320]
	add	r3, r3, #1
	str	r3, [fp, #-320]
.L2174:
	ldr	r3, [fp, #-320]
	cmp	r3, #4
	ble	.L2175
	ldr	r3, [fp, #-224]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-268]
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-216]	@ float
	str	r3, [fp, #-224]	@ float
	sub	r1, fp, #268
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-216]	@ float
	b	.L2176
.L2173:
	ldr	r3, [fp, #-324]
	cmp	r3, #1
	bne	.L2176
	ldr	r3, [fp, #-220]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-276]
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-216]	@ float
	str	r3, [fp, #-220]	@ float
	sub	r1, fp, #276
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-216]	@ float
.L2176:
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-208]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-304]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-224]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-300]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-220]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-296]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-216]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-292]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-212]	@ float
	str	r2, [r3]	@ float
.L2172:
	ldr	r3, .L2220+120
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2177
	ldr	r3, [fp, #-324]
	cmp	r3, #0
	bne	.L2178
	ldr	r3, .L2220+120
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2177
.L2178:
	ldr	r3, .L2220+124
	ldr	r8, [r3]
	ldr	r3, [fp, #-324]
	cmp	r3, #1
	beq	.L2179
	ldr	r3, [fp, #-324]
	cmp	r3, #0
	bne	.L2180
	ldr	r4, .L2220+68
	b	.L2182
.L2180:
	ldr	r4, .L2220+72
	b	.L2182
.L2179:
	ldr	r4, .L2220+76
.L2182:
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2183
	ldr	r5, .L2220+80
	b	.L2184
.L2183:
	ldr	r5, .L2220+84
.L2184:
	ldr	r3, [fp, #-324]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #168
	ldmia	r3, {r0-r1}
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r5, [sp, #12]
	str	r4, [sp, #8]
	ldr	r3, [fp, #-296]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-300]
	str	r3, [sp]
	ldr	r3, [fp, #-304]
	ldr	r2, [fp, #-332]
	ldr	r1, .L2220+88
	mov	r0, r8
	bl	fprintf
.L2177:
	ldr	r3, .L2220+120
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2185
	ldr	r3, .L2220+112
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2185
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2185
	ldr	r3, .L2220+124
	ldr	r4, [r3]
	mov	r1, #0
	ldr	r0, [fp, #-352]
	bl	TreeLogLk
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L2220+92
	mov	r0, r4
	bl	fprintf
.L2185:
	ldr	r3, [fp, #-324]
	cmp	r3, #0
	bne	.L2186
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	r2, [r3]
	add	r2, r2, #1
	str	r2, [r3]
	b	.L2187
.L2186:
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2188
	ldr	r3, .L2220+96
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L2220+96
	str	r3, [r2]
	b	.L2189
.L2221:
	.align	2
.L2220:
	.word	treeLogLkDelta
	.word	MEMinDelta
	.word	.LC458
	.word	fastNNI
	.word	.LC459
	.word	.LC460
	.word	1374389535
	.word	.LC461
	.word	.LC462
	.word	.LC463
	.word	.LC464
	.word	.LC465
	.word	.LC466
	.word	-755914244
	.word	1061184077
	.word	.LC467
	.word	mlAccuracy
	.word	.LC374
	.word	.LC373
	.word	.LC372
	.word	.LC468
	.word	.LC469
	.word	.LC470
	.word	.LC471
	.word	nML_NNI
	.word	nNNI
	.word	2025163840
	.word	1142271773
	.word	slow
	.word	.LC472
	.word	verbose
	.word	stderr
	.word	.LC473
	.word	.LC474
.L2188:
	ldr	r3, .L2220+100
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L2220+100
	str	r3, [r2]
.L2189:
	ldr	r3, [fp, #-336]
	add	r3, r3, #1
	str	r3, [fp, #-336]
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-304]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-300]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-296]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-292]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r3]
.L2187:
	ldr	r3, [fp, #-324]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #168
	ldmia	r3, {r0-r1}
	sub	r5, fp, #204
	ldmia	r5, {r4-r5}
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r8, r3, r2
	mov	r2, r4
	mov	r3, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [r8, #8]
	str	r3, [r8, #12]
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	add	r1, r3, #8
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-372]
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2190
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-372]
	stm	r1, {r2-r3}
.L2190:
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r1, r3, r2
	ldr	r2, .L2220+104
	ldr	r3, .L2220+108
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	mov	r3, #0
	str	r3, [fp, #-340]
	b	.L2192
.L2195:
	ldr	r3, [fp, #-340]
	ldr	r2, [fp, #-324]
	cmp	r2, r3
	beq	.L2193
	ldr	r3, [fp, #-324]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #168
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #168
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2193
	ldr	r3, [fp, #-324]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #168
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #168
	ldmia	r3, {r4-r5}
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r8, r3, r2
	mov	r2, r4
	mov	r3, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [r8, #16]
	str	r3, [r8, #20]
.L2193:
	ldr	r3, [fp, #-340]
	add	r3, r3, #1
	str	r3, [fp, #-340]
.L2192:
	ldr	r3, [fp, #-340]
	cmp	r3, #2
	ble	.L2195
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #284
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2217
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L2198
.L2217:
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	r2, [r3, #4]
	add	r2, r2, #1
	str	r2, [r3, #4]
	mov	r3, #0
	str	r3, [fp, #-340]
	b	.L2199
.L2201:
	ldr	r3, [fp, #-352]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-288]
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-288]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	cmp	r1, r3
	ble	.L2200
	ldr	r2, [fp, #-288]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r1, r3, r2
	ldr	r2, [fp, #-332]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	ldr	r2, [r1, #4]
	str	r2, [r3, #4]
.L2200:
	ldr	r3, [fp, #-340]
	add	r3, r3, #1
	str	r3, [fp, #-340]
.L2199:
	ldr	r3, [fp, #-340]
	cmp	r3, #1
	ble	.L2201
.L2198:
	ldr	r3, [fp, #-324]
	cmp	r3, #0
	bne	.L2202
	ldr	r2, [fp, #-304]
	ldr	r1, [fp, #-352]
	ldr	r0, [fp, #-312]
	bl	DeleteUpProfile
	ldr	r2, [fp, #-300]
	ldr	r1, [fp, #-352]
	ldr	r0, [fp, #-312]
	bl	DeleteUpProfile
	ldr	r2, [fp, #-296]
	ldr	r1, [fp, #-352]
	ldr	r0, [fp, #-312]
	bl	DeleteUpProfile
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	ldr	r2, [fp, #-332]
	ldr	r1, [fp, #-312]
	ldr	r0, [fp, #-352]
	bl	RecomputeProfile
	ldr	r3, .L2220+112
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2203
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2203
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	ldr	r2, [fp, #-312]
	ldr	r1, [fp, #-332]
	ldr	r0, [fp, #-352]
	bl	UpdateForNNI
	b	.L2203
.L2202:
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	ldr	r2, [fp, #-312]
	ldr	r1, [fp, #-332]
	ldr	r0, [fp, #-352]
	bl	UpdateForNNI
.L2203:
	ldr	r3, .L2220+120
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2143
	ldr	r3, .L2220+112
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2143
	ldrb	r3, [fp, #-361]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2143
	ldr	r3, .L2220+124
	ldr	r3, [r3]
	mov	r2, #1
	ldr	r1, [fp, #-352]
	mov	r0, r3
	bl	PrintNJInternal
	ldr	r3, .L2220+124
	ldr	r4, [r3]
	mov	r1, #0
	ldr	r0, [fp, #-352]
	bl	TreeLogLk
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L2220+116
	mov	r0, r4
	bl	fprintf
	b	.L2143
.L2219:
	nop
.L2143:
	sub	r3, fp, #340
	sub	r3, r3, #2
	ldr	r2, [fp, #-308]
	ldr	r1, [fp, #-352]
	ldr	r0, [fp, #-332]
	bl	TraversePostorder
	str	r0, [fp, #-332]
	ldr	r3, [fp, #-332]
	cmp	r3, #0
	bge	.L2205
	ldr	r1, [fp, #-352]
	ldr	r0, [fp, #-308]
	bl	FreeTraversal
	str	r0, [fp, #-308]
	ldr	r3, .L2220+120
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L2206
	mov	r3, #0
	str	r3, [fp, #-316]
	mov	r3, #0
	str	r3, [fp, #-340]
	b	.L2207
.L2209:
	ldr	r3, [fp, #-340]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-312]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2208
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L2208:
	ldr	r3, [fp, #-340]
	add	r3, r3, #1
	str	r3, [fp, #-340]
.L2207:
	ldr	r3, [fp, #-352]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-340]
	cmp	r2, r3
	blt	.L2209
	ldr	r3, .L2220+124
	ldr	r3, [r3]
	ldr	r2, [fp, #-316]
	ldr	r1, .L2220+128
	mov	r0, r3
	bl	fprintf
.L2206:
	ldr	r1, [fp, #-352]
	ldr	r0, [fp, #-312]
	bl	FreeUpProfiles
	str	r0, [fp, #-312]
	ldr	r3, [fp, #-336]
.L2210:
	ldr	r2, .L2220+132
	ldr	r1, [r2]
	ldr	r2, [fp, #-40]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L2211
	bl	__stack_chk_fail
.L2211:
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
	.size	NNI, .-NNI
	.align	2
	.global	InitNNIStats
	.syntax unified
	.arm
	.fpu softvfp
	.type	InitNNIStats, %function
InitNNIStats:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #28]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-12]
	ldr	r3, .L2229
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L2223
.L2227:
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-12]
	add	r1, r3, r2
	mov	r2, #0
	mov	r3, #0
	str	r2, [r1, #8]
	str	r3, [r1, #12]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-12]
	add	r1, r3, r2
	mov	r2, #0
	mov	r3, #0
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	beq	.L2224
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bge	.L2225
.L2224:
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	b	.L2226
.L2225:
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r3, #4]
.L2226:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L2223:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L2227
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2230:
	.align	2
.L2229:
	.word	1000000
	.size	InitNNIStats, .-InitNNIStats
	.align	2
	.global	FreeNNIStats
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreeNNIStats, %function
FreeNNIStats:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #28]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	myfree
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	FreeNNIStats, .-FreeNNIStats
	.section	.rodata
	.align	2
.LC475:
	.ascii	"SPR chain step %d for %d around %d swap %d %d delta"
	.ascii	"Len %.5f\012\000"
	.align	2
.LC476:
	.ascii	"newAround[0] == nodeAround || newAround[1] == nodeA"
	.ascii	"round\000"
	.align	2
.LC477:
	.ascii	"newAround[0] != newAround[1]\000"
	.align	2
.LC478:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	FindSPRSteps
	.syntax unified
	.arm
	.fpu softvfp
	.type	FindSPRSteps, %function
FindSPRSteps:
	@ args = 12, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #132
	str	r0, [fp, #-96]
	str	r1, [fp, #-100]
	str	r2, [fp, #-104]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-112]
	ldr	r3, .L2250
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L2234
.L2246:
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-104]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L2249
	sub	r2, fp, #76
	mov	r3, #0
	str	r3, [sp, #4]
	sub	r3, fp, #60
	str	r3, [sp]
	ldr	r3, [fp, #-108]
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-96]
	bl	SetupABCD
	ldr	r3, [fp, #-96]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-96]
	ldr	ip, [r3, #20]
	sub	r0, fp, #76
	sub	r3, fp, #44
	str	r3, [sp]
	mov	r3, ip
	bl	ChooseNNI
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-112]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-92]
	cmp	r3, #0
	bne	.L2237
	ldrb	r3, [fp, #12]	@ zero_extendqisi2
	b	.L2238
.L2237:
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	mov	ip, #1
	mov	r4, ip
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L2239
	mov	r3, #0
	mov	r4, r3
.L2239:
	and	r3, r4, #255
.L2238:
	cmp	r3, #0
	beq	.L2240
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-88]
	str	r2, [r1, #8]
	str	r3, [r1, #12]
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-88]
	str	r2, [r3]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-88]
	str	r2, [r3, #4]
	b	.L2241
.L2240:
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-88]
	str	r2, [r1, #8]
	str	r3, [r1, #12]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-88]
	str	r2, [r3]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-88]
	str	r2, [r3, #4]
.L2241:
	ldr	r3, .L2250+4
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L2242
	ldr	r3, .L2250+8
	ldr	ip, [r3]
	ldr	r3, [fp, #-92]
	add	lr, r3, #1
	ldr	r3, [fp, #-88]
	ldr	r1, [r3]
	ldr	r3, [fp, #-88]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r0, [sp, #8]
	str	r1, [sp, #4]
	ldr	r3, [fp, #-100]
	str	r3, [sp]
	ldr	r3, [fp, #-104]
	mov	r2, lr
	ldr	r1, .L2250+12
	mov	r0, ip
	bl	fprintf
	ldr	r3, .L2250+4
	ldr	r3, [r3]
	cmp	r3, #4
	ble	.L2242
	ldr	r3, .L2250+8
	ldr	r3, [r3]
	mov	r2, #0
	ldr	r1, [fp, #-96]
	mov	r0, r3
	bl	PrintNJInternal
.L2242:
	ldr	r3, [fp, #-88]
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-96]
	bl	ReplaceChild
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-104]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-88]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	ldr	r0, [fp, #-96]
	bl	ReplaceChild
	mov	r3, #0
	ldr	r2, [fp, #-108]
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-96]
	bl	UpdateForNNI
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-96]
	bl	Sibling
	mov	r3, r0
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #80]
	cmp	r2, r3
	bne	.L2243
	sub	r3, fp, #84
	mov	r2, r3
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-96]
	bl	RootSiblings
.L2243:
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-104]
	cmp	r2, r3
	beq	.L2244
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-104]
	cmp	r2, r3
	beq	.L2244
	ldr	r3, .L2250+16
	ldr	r2, .L2250+20
	ldr	r1, .L2250+24
	ldr	r0, .L2250+28
	bl	__assert_fail
.L2244:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	bne	.L2245
	ldr	r3, .L2250+16
	ldr	r2, .L2250+32
	ldr	r1, .L2250+24
	ldr	r0, .L2250+36
	bl	__assert_fail
.L2245:
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-104]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-72]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L2234:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	blt	.L2246
	b	.L2236
.L2249:
	nop
.L2236:
	ldr	r3, [fp, #-92]
	ldr	r2, .L2250
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L2248
	bl	__stack_chk_fail
.L2248:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L2251:
	.align	2
.L2250:
	.word	.LC478
	.word	verbose
	.word	stderr
	.word	.LC475
	.word	__PRETTY_FUNCTION__.10029
	.word	6553
	.word	.LC134
	.word	.LC476
	.word	6554
	.word	.LC477
	.size	FindSPRSteps, .-FindSPRSteps
	.section	.rodata
	.align	2
.LC479:
	.ascii	"step->nodes[i] >= 0 && step->nodes[i] < NJ->maxnode"
	.ascii	"s\000"
	.align	2
.LC480:
	.ascii	"parents[i] >= 0\000"
	.align	2
.LC481:
	.ascii	"parents[0] != parents[1]\000"
	.align	2
.LC482:
	.ascii	"NJ->parent[parents[1]] == parents[0]\000"
	.align	2
.LC483:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	UnwindSPRStep
	.syntax unified
	.arm
	.fpu softvfp
	.type	UnwindSPRStep, %function
UnwindSPRStep:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, .L2264
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L2253
.L2257:
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-24]
	ldr	r3, [r3, r2, lsl #2]
	cmp	r3, #0
	blt	.L2254
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-24]
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #32]
	cmp	r2, r3
	blt	.L2263
.L2254:
	ldr	r3, .L2264+4
	ldr	r2, .L2264+8
	ldr	r1, .L2264+12
	ldr	r0, .L2264+16
	bl	__assert_fail
.L2263:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-24]
	ldr	r3, [r3, r1, lsl #2]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r2, [r3, #-12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-12]
	cmp	r3, #0
	bge	.L2256
	ldr	r3, .L2264+4
	ldr	r2, .L2264+20
	ldr	r1, .L2264+12
	ldr	r0, .L2264+24
	bl	__assert_fail
.L2256:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L2253:
	ldr	r3, [fp, #-24]
	cmp	r3, #1
	ble	.L2257
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bne	.L2258
	ldr	r3, .L2264+4
	ldr	r2, .L2264+28
	ldr	r1, .L2264+12
	ldr	r0, .L2264+32
	bl	__assert_fail
.L2258:
	ldr	r1, [fp, #-16]
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	ldr	r0, [fp, #-32]
	bl	ReplaceChild
	ldr	r1, [fp, #-12]
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	ldr	r0, [fp, #-32]
	bl	ReplaceChild
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bne	.L2259
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L2260
.L2259:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	beq	.L2261
	ldr	r3, .L2264+4
	ldr	r2, .L2264+36
	ldr	r1, .L2264+12
	ldr	r0, .L2264+40
	bl	__assert_fail
.L2261:
	mov	r3, #1
	str	r3, [fp, #-20]
.L2260:
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r1, [r3, #-12]
	mov	r3, #0
	ldr	r2, [fp, #-40]
	ldr	r0, [fp, #-32]
	bl	UpdateForNNI
	nop
	ldr	r3, .L2264
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2262
	bl	__stack_chk_fail
.L2262:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2265:
	.align	2
.L2264:
	.word	.LC483
	.word	__PRETTY_FUNCTION__.10039
	.word	6566
	.word	.LC134
	.word	.LC479
	.word	6568
	.word	.LC480
	.word	6570
	.word	.LC481
	.word	6577
	.word	.LC482
	.size	UnwindSPRStep, .-UnwindSPRStep
	.section	.rodata
	.align	2
.LC484:
	.ascii	"node != NJ->root\000"
	.align	2
.LC485:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	UpdateForNNI
	.syntax unified
	.arm
	.fpu softvfp
	.type	UpdateForNNI, %function
UpdateForNNI:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	strb	r3, [fp, #-49]
	ldr	r3, .L2282
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L2282+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2267
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L2268
.L2269:
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-48]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L2268:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L2269
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-28]
	b	.L2270
.L2271:
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-40]
	bl	RecomputeProfile
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
.L2270:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L2271
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L2272
.L2273:
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-48]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L2272:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L2273
	b	.L2281
.L2267:
	ldr	r2, [fp, #-44]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-48]
	bl	DeleteUpProfile
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L2275
.L2276:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-48]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L2275:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L2276
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bne	.L2277
	ldr	r3, .L2282+8
	ldr	r2, .L2282+12
	ldr	r1, .L2282+16
	ldr	r0, .L2282+20
	bl	__assert_fail
.L2277:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	Sibling
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L2278
	sub	r3, fp, #16
	mov	r2, r3
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	RootSiblings
.L2278:
	ldr	r3, [fp, #-16]
	mov	r2, r3
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-48]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-12]
	mov	r2, r3
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-48]
	bl	DeleteUpProfile
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	Sibling
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	blt	.L2279
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-48]
	bl	DeleteUpProfile
.L2279:
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-40]
	bl	RecomputeProfile
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-40]
	bl	RecomputeProfile
.L2281:
	nop
	ldr	r3, .L2282
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2280
	bl	__stack_chk_fail
.L2280:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2283:
	.align	2
.L2282:
	.word	.LC485
	.word	slow
	.word	__PRETTY_FUNCTION__.10064
	.word	6608
	.word	.LC134
	.word	.LC484
	.size	UpdateForNNI, .-UpdateForNNI
	.section	.rodata
	.align	2
.LC486:
	.ascii	"nodeListLen == NJ->maxnode\000"
	.align	2
.LC487:
	.ascii	"SPR round %3d of %3d, %d of %d nodes\000"
	.align	2
.LC488:
	.ascii	"move\000"
	.align	2
.LC489:
	.ascii	"abandoned\000"
	.align	2
.LC490:
	.ascii	"SPR %s %d around %d chainLength %d of %d deltaLengt"
	.ascii	"h %.5f swaps:\000"
	.align	2
.LC491:
	.ascii	" (%d,%d)%.4f\000"
	.align	2
.LC492:
	.ascii	"Total branch-length is now %.4f was %.4f expected %"
	.ascii	".4f\012\000"
	.align	2
.LC493:
	.ascii	"Rewinding SPR to %d\012\000"
	.align	2
.LC494:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	SPR
	.syntax unified
	.arm
	.fpu softvfp
	.type	SPR, %function
SPR:
	@ args = 0, pretend = 0, frame = 136
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #160
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	str	r2, [fp, #-136]
	str	r3, [fp, #-140]
	ldr	r3, .L2336
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L2334
	ldr	r3, [fp, #-132]
	cmp	r3, #0
	ble	.L2334
	ldr	r3, .L2336+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2288
	mov	r1, #1
	ldr	r0, [fp, #-128]
	bl	TreeLength
	str	r0, [fp, #-60]
	str	r1, [fp, #-56]
.L2288:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-80]
	mov	r3, #0
	str	r3, [fp, #-116]
	ldr	r0, [fp, #-128]
	bl	InitTraversal
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-112]
	b	.L2289
.L2290:
	ldr	r3, [fp, #-116]
	add	r2, r3, #1
	str	r2, [fp, #-116]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-80]
	add	r3, r2, r3
	ldr	r2, [fp, #-112]
	str	r2, [r3]
.L2289:
	mov	r3, #0
	ldr	r2, [fp, #-76]
	ldr	r1, [fp, #-128]
	ldr	r0, [fp, #-112]
	bl	TraversePostorder
	str	r0, [fp, #-112]
	ldr	r3, [fp, #-112]
	cmp	r3, #0
	bge	.L2290
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-116]
	cmp	r2, r3
	beq	.L2291
	ldr	r3, .L2336+8
	ldr	r2, .L2336+12
	ldr	r1, .L2336+16
	ldr	r0, .L2336+20
	bl	__assert_fail
.L2291:
	ldr	r1, [fp, #-128]
	ldr	r0, [fp, #-76]
	bl	FreeTraversal
	str	r0, [fp, #-76]
	ldr	r0, [fp, #-128]
	bl	UpProfiles
	str	r0, [fp, #-72]
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #4
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-68]
	mov	r3, #0
	str	r3, [fp, #-108]
	b	.L2292
.L2329:
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-80]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-112]
	ldr	r1, [fp, #-108]
	ldr	r3, .L2336+24
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L2293
	ldr	r3, [fp, #-136]
	add	r1, r3, #1
	ldr	r3, [fp, #-108]
	add	r2, r3, #1
	ldr	r3, [fp, #-116]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-140]
	ldr	r0, .L2336+28
	bl	ProgressReport
.L2293:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-112]
	cmp	r2, r3
	beq	.L2335
	ldr	r3, [fp, #-128]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-128]
	bl	Sibling
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-128]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #80]
	cmp	r2, r3
	bne	.L2296
	sub	r3, fp, #16
	mov	r2, r3
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-128]
	bl	RootSiblings
.L2296:
	mov	r3, #0
	strb	r3, [fp, #-117]
	mov	r3, #0
	str	r3, [fp, #-104]
	b	.L2297
.L2323:
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L2298
.L2321:
	ldr	r3, .L2336+32
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L2299
	ldr	r3, .L2336+36
	ldr	r3, [r3]
	mov	r2, #0
	ldr	r1, [fp, #-128]
	mov	r0, r3
	bl	PrintNJInternal
.L2299:
	ldr	r3, [fp, #-104]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-12]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	str	r3, [sp, #8]
	ldr	r3, [fp, #-132]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-68]
	str	r3, [sp]
	ldr	r3, [fp, #-72]
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-128]
	bl	FindSPRSteps
	str	r0, [fp, #-64]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	mvn	r3, #0
	str	r3, [fp, #-96]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L2300
.L2303:
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2301
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-96]
.L2301:
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L2300:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-64]
	cmp	r2, r3
	blt	.L2303
	ldr	r3, .L2336+32
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L2304
	ldr	r3, .L2336+36
	ldr	ip, [r3]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	blt	.L2305
	ldr	lr, .L2336+40
	b	.L2306
.L2305:
	ldr	lr, .L2336+44
.L2306:
	ldr	r3, [fp, #-104]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r1, [r3, #-12]
	ldr	r3, [fp, #-96]
	add	r0, r3, #1
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-64]
	str	r3, [sp, #8]
	str	r0, [sp, #4]
	str	r1, [sp]
	ldr	r3, [fp, #-112]
	mov	r2, lr
	ldr	r1, .L2336+48
	mov	r0, ip
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L2307
.L2308:
	ldr	r3, .L2336+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	ldr	ip, [r3, #4]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	mov	r3, ip
	mov	r2, r1
	ldr	r1, .L2336+52
	bl	fprintf
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L2307:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-64]
	cmp	r2, r3
	blt	.L2308
	ldr	r3, .L2336+36
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L2304:
	ldr	r3, [fp, #-64]
	sub	r3, r3, #1
	str	r3, [fp, #-92]
	b	.L2309
.L2310:
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	ldr	r2, [fp, #-72]
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	UnwindSPRStep
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	str	r3, [fp, #-92]
.L2309:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	bgt	.L2310
	ldr	r3, .L2336+32
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L2312
	ldr	r3, .L2336+36
	ldr	r3, [r3]
	mov	r2, #0
	ldr	r1, [fp, #-128]
	mov	r0, r3
	bl	PrintNJInternal
	b	.L2312
.L2318:
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r1, #1
	ldr	r0, [fp, #-128]
	bl	TreeLength
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	ldr	r3, .L2336+32
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2313
	ldr	r3, .L2336+36
	ldr	r0, [r3]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	ldr	r1, .L2336+56
	bl	fprintf
.L2313:
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2333
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	b	.L2316
.L2333:
	ldr	r3, .L2336+32
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2317
	ldr	r3, .L2336+36
	ldr	r3, [r3]
	ldr	r2, [fp, #-96]
	ldr	r1, .L2336+60
	mov	r0, r3
	bl	fprintf
.L2317:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	ldr	r2, [fp, #-72]
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	UnwindSPRStep
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-96]
	sub	r3, r3, #1
	str	r3, [fp, #-96]
.L2312:
	ldr	r3, .L2336+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2316
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bge	.L2318
.L2316:
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	blt	.L2319
	mov	r3, #1
	strb	r3, [fp, #-117]
.L2319:
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L2298:
	ldr	r3, [fp, #-100]
	cmp	r3, #1
	bgt	.L2320
	ldrb	r3, [fp, #-117]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L2321
.L2320:
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
.L2297:
	ldr	r3, [fp, #-104]
	cmp	r3, #1
	bgt	.L2322
	ldrb	r3, [fp, #-117]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L2323
.L2322:
	ldrb	r3, [fp, #-117]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2295
	ldr	r3, .L2336+64
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L2336+64
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-88]
	b	.L2325
.L2326:
	ldr	r2, [fp, #-88]
	ldr	r1, [fp, #-128]
	ldr	r0, [fp, #-72]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L2325:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	blt	.L2326
	ldr	r3, [fp, #-128]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	b	.L2327
.L2328:
	mov	r3, #0
	ldr	r2, [fp, #-84]
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-128]
	bl	RecomputeProfile
	ldr	r3, [fp, #-128]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-84]
.L2327:
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	bge	.L2328
	b	.L2295
.L2335:
	nop
.L2295:
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
.L2292:
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-116]
	cmp	r2, r3
	blt	.L2329
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-68]
	bl	myfree
	str	r0, [fp, #-68]
	ldr	r1, [fp, #-128]
	ldr	r0, [fp, #-72]
	bl	FreeUpProfiles
	str	r0, [fp, #-72]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	myfree
	str	r0, [fp, #-80]
	b	.L2284
.L2334:
	nop
.L2284:
	ldr	r3, .L2336
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2330
	bl	__stack_chk_fail
.L2330:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2337:
	.align	2
.L2336:
	.word	.LC494
	.word	slow
	.word	__PRETTY_FUNCTION__.10082
	.word	6650
	.word	.LC134
	.word	.LC486
	.word	1374389535
	.word	.LC487
	.word	verbose
	.word	stderr
	.word	.LC488
	.word	.LC489
	.word	.LC490
	.word	.LC491
	.word	.LC492
	.word	.LC493
	.word	nSPR
	.size	SPR, .-SPR
	.section	.rodata
	.align	2
.LC495:
	.ascii	"NJ->child[node].nChild==2\000"
	.align	2
.LC496:
	.ascii	"Recompute %d from %d %d lengths %.4f %.4f\012\000"
	.align	2
.LC497:
	.ascii	"Recompute %d from %d %d weight %.3f\012\000"
	.align	2
.LC498:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	RecomputeProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	RecomputeProfile, %function
RecomputeProfile:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #88
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-88]
	strb	r3, [fp, #-89]
	ldr	r3, .L2352
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	blt	.L2351
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	beq	.L2351
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L2342
	ldr	r3, .L2352+4
	ldr	r2, .L2352+8
	ldr	r1, .L2352+12
	ldr	r0, .L2352+16
	bl	__assert_fail
.L2342:
	mov	r2, #0
	ldr	r3, .L2352+20
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldrb	r3, [fp, #-89]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L2343
	ldr	r3, .L2352+24
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2344
.L2343:
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-80]
	ldr	r1, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-80]
	ldr	r1, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3, #8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	b	.L2345
.L2344:
	sub	r2, fp, #64
	ldrb	r3, [fp, #-89]	@ zero_extendqisi2
	str	r3, [sp, #4]
	sub	r3, fp, #48
	str	r3, [sp]
	ldr	r3, [fp, #-84]
	ldr	r1, [fp, #-88]
	ldr	r0, [fp, #-80]
	bl	SetupABCD
	ldr	r3, [fp, #-80]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #4]
	sub	r3, fp, #64
	mov	r0, r3
	bl	QuartetWeight
	str	r0, [fp, #-76]
	str	r1, [fp, #-72]
.L2345:
	ldr	r3, .L2352+28
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L2346
	ldrb	r3, [fp, #-89]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2347
	ldr	r3, .L2352+32
	ldr	r7, [r3]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r8, [r3, #4]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r6, [r3, #8]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-80]
	ldr	r1, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-80]
	ldr	r1, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3, #8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	str	r6, [sp]
	mov	r3, r8
	ldr	r2, [fp, #-88]
	ldr	r1, .L2352+36
	mov	r0, r7
	bl	fprintf
	b	.L2346
.L2347:
	ldr	r3, .L2352+32
	ldr	r0, [r3]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	ip, [r3, #4]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r1, [r3, #8]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	str	r1, [sp]
	mov	r3, ip
	ldr	r2, [fp, #-88]
	ldr	r1, .L2352+40
	bl	fprintf
.L2346:
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-80]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-80]
	ldr	ip, [r3, #20]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r2, ip
	bl	FreeProfile
	mov	r3, r0
	str	r3, [r4]
	ldrb	r3, [fp, #-89]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2348
	ldr	r8, [fp, #-64]
	ldr	r9, [fp, #-60]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-80]
	ldr	r1, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-80]
	ldr	r1, [r3, #88]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3, #8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-80]
	ldr	r1, [r1, #16]
	ldr	r0, [fp, #-80]
	add	r0, r0, #100
	ldr	ip, [fp, #-80]
	ldr	ip, [ip, #4]
	ldr	lr, [fp, #-80]
	ldr	lr, [lr, #20]
	ldr	r6, [fp, #-80]
	ldr	r7, [r6, #36]
	ldr	r6, [fp, #-88]
	lsl	r6, r6, #2
	add	r6, r7, r6
	str	lr, [sp, #20]
	str	ip, [sp, #16]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	stm	sp, {r2-r3}
	mov	r2, r4
	mov	r3, r5
	mov	r1, r9
	mov	r0, r8
	bl	PosteriorProfile
	mov	r3, r0
	str	r3, [r6]
	b	.L2338
.L2348:
	ldr	r0, [fp, #-64]
	ldr	ip, [fp, #-60]
	ldr	r3, [fp, #-80]
	ldr	lr, [r3, #4]
	ldr	r3, [fp, #-80]
	ldr	r5, [r3, #20]
	ldr	r3, [fp, #-80]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	add	r4, r2, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	str	r1, [sp]
	mov	r3, r5
	mov	r2, lr
	mov	r1, ip
	bl	AverageProfile
	mov	r3, r0
	str	r3, [r4]
	b	.L2338
.L2351:
	nop
.L2338:
	ldr	r3, .L2352
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2350
	bl	__stack_chk_fail
.L2350:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L2353:
	.align	2
.L2352:
	.word	.LC498
	.word	__PRETTY_FUNCTION__.10133
	.word	6744
	.word	.LC134
	.word	.LC495
	.word	1071644672
	.word	bionj
	.word	verbose
	.word	stderr
	.word	.LC496
	.word	.LC497
	.size	RecomputeProfile, .-RecomputeProfile
	.section	.rodata
	.align	2
.LC499:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	QuartetWeight
	.syntax unified
	.arm
	.fpu softvfp
	.type	QuartetWeight, %function
QuartetWeight:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #88
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-88]
	ldr	r3, .L2369
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L2369+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2355
	mov	r2, #0
	ldr	r3, .L2369+8
	b	.L2363
.L2355:
	sub	r3, fp, #68
	str	r3, [sp]
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-84]
	mov	r1, #4
	ldr	r0, [fp, #-80]
	bl	CorrectedPairDistances
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	ldr	r2, .L2369+12
	ldr	r3, .L2369+16
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2368
	mov	r2, #0
	ldr	r3, .L2369+8
	b	.L2363
.L2368:
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	r2, #0
	ldr	r3, .L2369+20
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2369+24
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2359
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
.L2359:
	mov	r2, #0
	ldr	r3, .L2369+28
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2361
	mov	r2, #0
	ldr	r3, .L2369+28
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
.L2361:
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
.L2363:
	ldr	r1, .L2369
	ldr	r0, [r1]
	ldr	r1, [fp, #-16]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L2364
	bl	__stack_chk_fail
.L2364:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L2370:
	.align	2
.L2369:
	.word	.LC499
	.word	bionj
	.word	-1074790400
	.word	1202590843
	.word	1065646817
	.word	1074790400
	.word	1071644672
	.word	1072693248
	.size	QuartetWeight, .-QuartetWeight
	.align	2
	.global	ReplaceChild
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReplaceChild, %function
ReplaceChild:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L2372
.L2375:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L2373
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	str	r2, [r3, #4]
	b	.L2376
.L2373:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L2372:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L2375
	ldr	r3, .L2377
	ldr	r2, .L2377+4
	ldr	r1, .L2377+8
	ldr	r0, .L2377+12
	bl	__assert_fail
.L2376:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2378:
	.align	2
.L2377:
	.word	__PRETTY_FUNCTION__.10154
	.word	6811
	.word	.LC134
	.word	.LC380
	.size	ReplaceChild, .-ReplaceChild
	.section	.rodata
	.align	2
.LC500:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	UpdateBranchLengths
	.syntax unified
	.arm
	.fpu softvfp
	.type	UpdateBranchLengths, %function
UpdateBranchLengths:
	@ args = 0, pretend = 0, frame = 160
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #168
	str	r0, [fp, #-168]
	ldr	r3, .L2392
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L2391
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L2382
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #8]
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-168]
	ldr	ip, [r3, #12]
	sub	r3, fp, #120
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, .L2392+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2383
	ldr	r3, [fp, #-108]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	LogCorrect
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-108]	@ float
.L2383:
	ldr	r0, [fp, #-108]	@ float
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, #1073741824
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r0, [fp, #-108]	@ float
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, #1073741824
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [r4]	@ float
	b	.L2379
.L2382:
	ldr	r0, [fp, #-168]
	bl	UpProfiles
	str	r0, [fp, #-148]
	ldr	r0, [fp, #-168]
	bl	InitTraversal
	str	r0, [fp, #-144]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-160]
	b	.L2384
.L2389:
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-160]
	cmp	r2, r3
	bne	.L2385
	b	.L2384
.L2385:
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	ldr	r2, [fp, #-160]
	cmp	r2, r3
	bge	.L2386
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-140]
	mov	r3, #0
	str	r3, [fp, #-156]
	mov	r3, #0
	str	r3, [fp, #-152]
	ldr	r1, [fp, #-160]
	ldr	r0, [fp, #-168]
	bl	Sibling
	str	r0, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmn	r3, #1
	bne	.L2387
	sub	r3, fp, #68
	mov	r2, r3
	ldr	r1, [fp, #-160]
	ldr	r0, [fp, #-168]
	bl	RootSiblings
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-152]
	b	.L2388
.L2387:
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	mov	r3, #0
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-148]
	bl	GetUpProfile
	str	r0, [fp, #-152]
.L2388:
	ldr	r3, [fp, #-140]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-156]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-152]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-168]
	ldr	r1, [r3, #4]
	sub	r0, fp, #84
	sub	r3, fp, #68
	str	r3, [sp]
	mov	r3, r1
	mov	r1, #3
	bl	CorrectedPairDistances
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	b	.L2384
.L2386:
	sub	r2, fp, #100
	mov	r3, #0
	str	r3, [sp, #4]
	sub	r3, fp, #84
	str	r3, [sp]
	ldr	r3, [fp, #-148]
	ldr	r1, [fp, #-160]
	ldr	r0, [fp, #-168]
	bl	SetupABCD
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-168]
	ldr	r1, [r3, #4]
	sub	r0, fp, #100
	sub	r3, fp, #68
	str	r3, [sp]
	mov	r3, r1
	mov	r1, #4
	bl	CorrectedPairDistances
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2392+8
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-84]
	mov	r2, r3
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-148]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-80]
	mov	r2, r3
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-148]
	bl	DeleteUpProfile
.L2384:
	mov	r3, #0
	ldr	r2, [fp, #-144]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-160]
	bl	TraversePostorder
	str	r0, [fp, #-160]
	ldr	r3, [fp, #-160]
	cmp	r3, #0
	bge	.L2389
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-144]
	bl	FreeTraversal
	str	r0, [fp, #-144]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-148]
	bl	FreeUpProfiles
	str	r0, [fp, #-148]
	b	.L2379
.L2391:
	nop
.L2379:
	ldr	r3, .L2392
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2390
	bl	__stack_chk_fail
.L2390:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L2393:
	.align	2
.L2392:
	.word	.LC500
	.word	logdist
	.word	1074790400
	.size	UpdateBranchLengths, .-UpdateBranchLengths
	.section	.rodata
	.align	2
.LC501:
	.ascii	"Boot%d\000"
	.align	2
.LC502:
	.ascii	"\011%d\000"
	.text
	.align	2
	.global	ResampleColumns
	.syntax unified
	.arm
	.fpu softvfp
	.type	ResampleColumns, %function
ResampleColumns:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-44]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L2395
.L2400:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L2396
.L2399:
	bl	knuth_rand
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-40]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L2397
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L2398
.L2397:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bne	.L2398
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
.L2398:
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-20]
	mul	r2, r3, r2
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L2396:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	blt	.L2399
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L2395:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L2400
	ldr	r3, .L2407
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L2401
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L2402
.L2405:
	ldr	r3, .L2407+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	ldr	r1, .L2407+8
	mov	r0, r3
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L2403
.L2404:
	ldr	r3, .L2407+4
	ldr	r0, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-20]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L2407+12
	bl	fprintf
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L2403:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	blt	.L2404
	ldr	r3, .L2407+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L2402:
	ldr	r3, [fp, #-36]
	cmp	r3, #2
	bgt	.L2401
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L2405
.L2401:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L2408:
	.align	2
.L2407:
	.word	verbose
	.word	stderr
	.word	.LC501
	.word	.LC502
	.size	ResampleColumns, .-ResampleColumns
	.section	.rodata
	.align	2
.LC503:
	.ascii	"Local bootstrap for %6d of %6d internal splits\000"
	.align	2
.LC504:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ReliabilityNJ
	.syntax unified
	.arm
	.fpu softvfp
	.type	ReliabilityNJ, %function
ReliabilityNJ:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #84
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	ldr	r3, .L2420
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L2419
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L2419
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-76]
	mov	r0, r3
	bl	ResampleColumns
	str	r0, [fp, #-60]
	ldr	r0, [fp, #-72]
	bl	UpProfiles
	str	r0, [fp, #-56]
	ldr	r0, [fp, #-72]
	bl	InitTraversal
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-68]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L2413
.L2417:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	blt	.L2413
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bne	.L2415
	b	.L2413
.L2415:
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	ble	.L2416
	ldr	r1, [fp, #-64]
	ldr	r3, .L2420+4
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L2416
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	sub	r2, r3, #3
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r1, [fp, #-64]
	ldr	r0, .L2420+8
	bl	ProgressReport
.L2416:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	sub	r2, fp, #48
	mov	r3, #0
	str	r3, [sp, #4]
	sub	r3, fp, #32
	str	r3, [sp]
	ldr	r3, [fp, #-56]
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-72]
	bl	SetupABCD
	ldr	r0, [fp, #-48]
	ldr	ip, [fp, #-44]
	ldr	lr, [fp, #-40]
	ldr	r4, [fp, #-36]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-72]
	ldr	r2, [r2, #4]
	ldr	r1, [fp, #-60]
	str	r1, [sp, #12]
	ldr	r1, [fp, #-76]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r4
	mov	r2, lr
	mov	r1, ip
	bl	SplitSupport
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-72]
	ldr	r0, [r1, #96]
	ldr	r1, [fp, #-68]
	lsl	r1, r1, #2
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-56]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-28]
	mov	r2, r3
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-56]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-24]
	mov	r2, r3
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-56]
	bl	DeleteUpProfile
.L2413:
	mov	r3, #0
	ldr	r2, [fp, #-52]
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-68]
	bl	TraversePostorder
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bge	.L2417
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-52]
	bl	FreeTraversal
	str	r0, [fp, #-52]
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-56]
	bl	FreeUpProfiles
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-76]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-60]
	bl	myfree
	str	r0, [fp, #-60]
	b	.L2409
.L2419:
	nop
.L2409:
	ldr	r3, .L2420
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2418
	bl	__stack_chk_fail
.L2418:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L2421:
	.align	2
.L2420:
	.word	.LC504
	.word	1374389535
	.word	.LC503
	.size	ReliabilityNJ, .-ReliabilityNJ
	.align	2
	.global	NewProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	NewProfile, %function
NewProfile:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r0, #28
	bl	mymalloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L2423
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #24]
	b	.L2424
.L2423:
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #24]
.L2424:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	NewProfile, .-NewProfile
	.align	2
	.global	FreeProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreeProfile, %function
FreeProfile:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L2427
	mov	r3, #0
	b	.L2428
.L2427:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-12]
	mov	r1, r2
	mov	r0, r3
	bl	myfree
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	mov	r1, r2
	mov	r0, r3
	bl	myfree
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	mov	r1, r3
	ldr	r3, .L2430
	ldr	r3, [r3]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #16]
	ldr	r3, .L2430
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-12]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	ble	.L2429
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
.L2429:
	mov	r1, #28
	ldr	r0, [fp, #-8]
	bl	myfree
	mov	r3, r0
.L2428:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2431:
	.align	2
.L2430:
	.word	nCodes
	.size	FreeProfile, .-FreeProfile
	.section	.rodata
	.align	2
.LC505:
	.ascii	"NJ->child[node].nChild == 2\000"
	.align	2
.LC506:
	.ascii	"nodeABCD[2] >= 0\000"
	.align	2
.LC507:
	.ascii	"upProfiles != NULL\000"
	.align	2
.LC508:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	SetupABCD
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetupABCD, %function
SetupABCD:
	@ args = 8, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-56]
	ldr	r3, .L2447
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L2433
	ldr	r3, .L2447+4
	ldr	r2, .L2447+8
	ldr	r1, .L2447+12
	ldr	r0, .L2447+16
	bl	__assert_fail
.L2433:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L2434
	ldr	r3, .L2447+4
	ldr	r2, .L2447+20
	ldr	r1, .L2447+12
	ldr	r0, .L2447+24
	bl	__assert_fail
.L2434:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-56]
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, #4
	ldr	r2, [r2, #8]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bne	.L2435
	sub	r3, fp, #24
	mov	r2, r3
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	RootSiblings
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	beq	.L2445
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	b	.L2438
.L2435:
	ldr	r3, [fp, #-56]
	add	r4, r3, #8
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	Sibling
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L2439
	ldr	r3, .L2447+4
	ldr	r2, .L2447+28
	ldr	r1, .L2447+12
	ldr	r0, .L2447+32
	bl	__assert_fail
.L2439:
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	beq	.L2446
	ldrb	r3, [fp, #8]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-52]
	bl	GetUpProfile
	str	r0, [fp, #-36]
.L2438:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L2441
	ldr	r3, .L2447+4
	ldr	r2, .L2447+36
	ldr	r1, .L2447+12
	ldr	r0, .L2447+40
	bl	__assert_fail
.L2441:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L2442
.L2443:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-56]
	add	r3, r1, r3
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-48]
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L2442:
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	ble	.L2443
	ldr	r3, [fp, #-48]
	add	r3, r3, #12
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	b	.L2432
.L2445:
	nop
	b	.L2432
.L2446:
	nop
.L2432:
	ldr	r3, .L2447
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2444
	bl	__stack_chk_fail
.L2444:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L2448:
	.align	2
.L2447:
	.word	.LC508
	.word	__PRETTY_FUNCTION__.10233
	.word	7001
	.word	.LC134
	.word	.LC233
	.word	7002
	.word	.LC505
	.word	7017
	.word	.LC506
	.word	7023
	.word	.LC507
	.size	SetupABCD, .-SetupABCD
	.align	2
	.global	Sibling
	.syntax unified
	.arm
	.fpu softvfp
	.type	Sibling, %function
Sibling:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	blt	.L2450
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bne	.L2451
.L2450:
	mvn	r3, #0
	b	.L2452
.L2451:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L2453
.L2455:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	beq	.L2454
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	b	.L2452
.L2454:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L2453:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L2455
	ldr	r3, .L2456
	mov	r2, #7040
	ldr	r1, .L2456+4
	ldr	r0, .L2456+8
	bl	__assert_fail
.L2452:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2457:
	.align	2
.L2456:
	.word	__PRETTY_FUNCTION__.10249
	.word	.LC134
	.word	.LC380
	.size	Sibling, .-Sibling
	.section	.rodata
	.align	2
.LC509:
	.ascii	"NJ->parent[node] == NJ->root\000"
	.align	2
.LC510:
	.ascii	"NJ->child[NJ->root].nChild == 3\000"
	.align	2
.LC511:
	.ascii	"nSibs==2\000"
	.text
	.align	2
	.global	RootSiblings
	.syntax unified
	.arm
	.fpu softvfp
	.type	RootSiblings, %function
RootSiblings:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #80]
	cmp	r2, r3
	beq	.L2459
	ldr	r3, .L2466
	ldr	r2, .L2466+4
	ldr	r1, .L2466+8
	ldr	r0, .L2466+12
	bl	__assert_fail
.L2459:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #80]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #3
	beq	.L2460
	ldr	r3, .L2466
	ldr	r2, .L2466+16
	ldr	r1, .L2466+8
	ldr	r0, .L2466+20
	bl	__assert_fail
.L2460:
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L2461
.L2463:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #80]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	beq	.L2462
	ldr	r3, [fp, #-16]
	add	r2, r3, #1
	str	r2, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	str	r2, [r3]
.L2462:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L2461:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #80]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L2463
	ldr	r3, [fp, #-16]
	cmp	r3, #2
	beq	.L2465
	ldr	r3, .L2466
	ldr	r2, .L2466+24
	ldr	r1, .L2466+8
	ldr	r0, .L2466+28
	bl	__assert_fail
.L2465:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2467:
	.align	2
.L2466:
	.word	__PRETTY_FUNCTION__.10255
	.word	7045
	.word	.LC134
	.word	.LC509
	.word	7046
	.word	.LC510
	.word	7054
	.word	.LC511
	.size	RootSiblings, .-RootSiblings
	.section	.rodata
	.align	2
.LC512:
	.ascii	"ML split tests for %6d of %6d internal splits\000"
	.align	2
.LC513:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	TestSplitsML
	.syntax unified
	.arm
	.fpu softvfp
	.type	TestSplitsML, %function
TestSplitsML:
	@ args = 0, pretend = 0, frame = 336
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #364
	str	r0, [fp, #-344]
	str	r1, [fp, #-348]
	str	r2, [fp, #-352]
	ldr	r3, .L2535
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r2, .L2535+4
	ldr	r3, .L2535+8
	str	r2, [fp, #-300]
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-348]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-348]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-348]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-348]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r1, [fp, #-348]
	mov	r2, #0
	mov	r3, #0
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	ldr	r1, [fp, #-348]
	mov	r2, #0
	mov	r3, #0
	str	r2, [r1, #24]
	str	r3, [r1, #28]
	ldr	r0, [fp, #-344]
	bl	UpProfiles
	str	r0, [fp, #-312]
	ldr	r0, [fp, #-344]
	bl	InitTraversal
	str	r0, [fp, #-308]
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-352]
	cmp	r3, #0
	ble	.L2469
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-352]
	mov	r0, r3
	bl	ResampleColumns
	mov	r3, r0
	b	.L2470
.L2469:
	mov	r3, #0
.L2470:
	str	r3, [fp, #-304]
	mov	r3, #0
	str	r3, [fp, #-328]
	b	.L2471
.L2472:
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-328]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-260]
	ldr	r3, [fp, #-328]
	add	r3, r3, #1
	str	r3, [fp, #-328]
.L2471:
	ldr	r3, [fp, #-328]
	cmp	r3, #2
	ble	.L2472
	mov	r3, #0
	str	r3, [fp, #-324]
	b	.L2473
.L2517:
	ldr	r3, [fp, #-344]
	ldr	r3, [r3]
	ldr	r2, [fp, #-332]
	cmp	r2, r3
	blt	.L2473
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-332]
	cmp	r2, r3
	bne	.L2475
	b	.L2473
.L2475:
	ldr	r3, [fp, #-324]
	cmp	r3, #0
	ble	.L2476
	ldr	r1, [fp, #-324]
	ldr	r3, .L2535+12
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L2476
	ldr	r3, [fp, #-344]
	ldr	r3, [r3]
	sub	r2, r3, #3
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r1, [fp, #-324]
	ldr	r0, .L2535+16
	bl	ProgressReport
.L2476:
	ldr	r3, [fp, #-324]
	add	r3, r3, #1
	str	r3, [fp, #-324]
	sub	r2, fp, #268
	mov	r3, #1
	str	r3, [sp, #4]
	sub	r3, fp, #252
	str	r3, [sp]
	ldr	r3, [fp, #-312]
	ldr	r1, [fp, #-332]
	ldr	r0, [fp, #-344]
	bl	SetupABCD
	mov	r3, #0
	str	r3, [fp, #-320]
	b	.L2477
.L2478:
	ldr	r3, [fp, #-344]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-232]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-320]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #168
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-320]
	add	r3, r3, #1
	str	r3, [fp, #-320]
.L2477:
	ldr	r3, [fp, #-320]
	cmp	r3, #3
	ble	.L2478
	ldr	r3, [fp, #-344]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-332]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	ip, [fp, #-268]
	ldr	lr, [fp, #-264]
	ldr	r4, [fp, #-260]
	ldr	r5, [fp, #-256]
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-344]
	ldr	r2, [r2, #16]
	ldr	r1, [fp, #-344]
	add	r1, r1, #100
	ldr	r0, [fp, #-280]
	str	r0, [sp, #16]
	sub	r0, fp, #148
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r5
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	MLQuartetLogLk
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-236]
	str	r3, [fp, #-232]
	ldr	ip, [fp, #-268]
	ldr	lr, [fp, #-260]
	ldr	r4, [fp, #-264]
	ldr	r5, [fp, #-256]
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-344]
	ldr	r2, [r2, #16]
	ldr	r1, [fp, #-344]
	add	r1, r1, #100
	ldr	r0, [fp, #-276]
	str	r0, [sp, #20]
	mov	r0, #0
	str	r0, [sp, #16]
	sub	r0, fp, #108
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r5
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	MLQuartetOptimize
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-228]
	str	r3, [fp, #-224]
	ldr	ip, [fp, #-268]
	ldr	lr, [fp, #-256]
	ldr	r4, [fp, #-260]
	ldr	r5, [fp, #-264]
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-344]
	ldr	r2, [r2, #16]
	ldr	r1, [fp, #-344]
	add	r1, r1, #100
	ldr	r0, [fp, #-272]
	str	r0, [sp, #20]
	mov	r0, #0
	str	r0, [sp, #16]
	sub	r0, fp, #68
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r5
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	MLQuartetOptimize
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-220]
	str	r3, [fp, #-216]
	sub	r1, fp, #228
	ldmia	r1, {r0-r1}
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2530
	ldr	r3, .L2535+20
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L2481
	sub	r5, fp, #228
	ldmia	r5, {r4-r5}
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	ldr	r3, .L2535+24
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2482
.L2481:
	ldr	ip, [fp, #-268]
	ldr	lr, [fp, #-260]
	ldr	r4, [fp, #-264]
	ldr	r5, [fp, #-256]
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-344]
	ldr	r2, [r2, #16]
	ldr	r1, [fp, #-344]
	add	r1, r1, #100
	ldr	r0, [fp, #-276]
	str	r0, [sp, #20]
	mov	r0, #0
	str	r0, [sp, #16]
	sub	r0, fp, #108
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r5
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	MLQuartetOptimize
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-228]
	str	r3, [fp, #-224]
	b	.L2482
.L2530:
	ldr	r3, .L2535+20
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L2484
	sub	r5, fp, #220
	ldmia	r5, {r4-r5}
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	ldr	r3, .L2535+24
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2482
.L2484:
	ldr	ip, [fp, #-268]
	ldr	lr, [fp, #-256]
	ldr	r4, [fp, #-260]
	ldr	r5, [fp, #-264]
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-344]
	ldr	r2, [r2, #16]
	ldr	r1, [fp, #-344]
	add	r1, r1, #100
	ldr	r0, [fp, #-272]
	str	r0, [sp, #20]
	mov	r0, #0
	str	r0, [sp, #16]
	sub	r0, fp, #68
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r5
	mov	r2, r4
	mov	r1, lr
	mov	r0, ip
	bl	MLQuartetOptimize
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-220]
	str	r3, [fp, #-216]
.L2482:
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L2486
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L2486
	mov	r3, #0
	str	r3, [fp, #-328]
	b	.L2489
.L2486:
	sub	r1, fp, #228
	ldmia	r1, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L2490
	sub	r1, fp, #228
	ldmia	r1, {r0-r1}
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L2490
	mov	r3, #1
	str	r3, [fp, #-328]
	b	.L2489
.L2490:
	mov	r3, #2
	str	r3, [fp, #-328]
.L2489:
	ldr	r3, [fp, #-328]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #216
	ldmia	r3, {r4-r5}
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	ldr	r3, .L2535+28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r1, #1
	mov	r6, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L2493
	mov	r3, #0
	mov	r6, r3
.L2493:
	strb	r6, [fp, #-334]
	ldr	r3, [fp, #-344]
	ldr	r1, [r3, #20]
	sub	r2, fp, #212
	sub	r3, fp, #268
	mov	r0, r3
	bl	QuartetConstraintPenalties
	sub	r5, fp, #212
	ldmia	r5, {r4-r5}
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L2494
	sub	r5, fp, #212
	ldmia	r5, {r4-r5}
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2531
.L2494:
	mov	r3, #1
	b	.L2497
.L2531:
	mov	r3, #0
.L2497:
	strb	r3, [fp, #-333]
	ldrb	r3, [fp, #-333]
	and	r3, r3, #1
	strb	r3, [fp, #-333]
	mov	r3, #0
	strb	r3, [fp, #-335]
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L2498
.L2501:
	sub	r3, fp, #268
	ldr	r1, [fp, #-316]
	mov	r0, r3
	bl	SplitViolatesConstraint
	mov	r3, r0
	cmp	r3, #0
	beq	.L2499
	mov	r3, #1
	strb	r3, [fp, #-335]
	b	.L2500
.L2499:
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L2498:
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-316]
	cmp	r2, r3
	blt	.L2501
.L2500:
	ldr	r3, [fp, #-348]
	ldr	r3, [r3, #12]
	add	r2, r3, #1
	ldr	r3, [fp, #-348]
	str	r2, [r3, #12]
	ldrb	r3, [fp, #-335]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2502
	ldr	r3, [fp, #-348]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-348]
	str	r2, [r3, #4]
.L2502:
	ldrb	r3, [fp, #-334]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2503
	ldr	r3, [fp, #-348]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-348]
	str	r2, [r3]
.L2503:
	ldrb	r3, [fp, #-334]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2504
	ldrb	r3, [fp, #-333]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2504
	ldr	r3, [fp, #-348]
	ldr	r3, [r3, #8]
	add	r2, r3, #1
	ldr	r3, [fp, #-348]
	str	r2, [r3, #8]
.L2504:
	ldrb	r3, [fp, #-334]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2505
	ldr	r3, [fp, #-328]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #216
	ldmia	r3, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-292]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-328]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #192
	ldmia	r3, {r4-r5}
	sub	r1, fp, #212
	ldmia	r1, {r0-r1}
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2532
	ldr	r3, [fp, #-348]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #292
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2533
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	b	.L2510
.L2533:
	ldr	r3, [fp, #-348]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
.L2510:
	ldr	r1, [fp, #-348]
	str	r2, [r1, #24]
	str	r3, [r1, #28]
	b	.L2505
.L2532:
	ldr	r3, [fp, #-348]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #292
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2534
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	b	.L2513
.L2534:
	ldr	r3, [fp, #-348]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
.L2513:
	ldr	r1, [fp, #-348]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
.L2505:
	ldr	r3, [fp, #-352]
	cmp	r3, #0
	ble	.L2514
	ldrb	r3, [fp, #-334]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L2515
	ldr	r3, [fp, #-344]
	ldr	r0, [r3, #4]
	sub	r2, fp, #236
	sub	r3, fp, #280
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-304]
	ldr	r1, [fp, #-352]
	bl	SHSupport
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	b	.L2516
.L2515:
	mov	r3, #0
.L2516:
	ldr	r2, [fp, #-344]
	ldr	r1, [r2, #96]
	ldr	r2, [fp, #-332]
	lsl	r2, r2, #2
	add	r2, r1, r2
	str	r3, [r2]	@ float
.L2514:
	ldr	r3, [fp, #-252]
	mov	r2, r3
	ldr	r1, [fp, #-344]
	ldr	r0, [fp, #-312]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-248]
	mov	r2, r3
	ldr	r1, [fp, #-344]
	ldr	r0, [fp, #-312]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-244]
	mov	r2, r3
	ldr	r1, [fp, #-344]
	ldr	r0, [fp, #-312]
	bl	DeleteUpProfile
.L2473:
	mov	r3, #0
	ldr	r2, [fp, #-308]
	ldr	r1, [fp, #-344]
	ldr	r0, [fp, #-332]
	bl	TraversePostorder
	str	r0, [fp, #-332]
	ldr	r3, [fp, #-332]
	cmp	r3, #0
	bge	.L2517
	ldr	r1, [fp, #-344]
	ldr	r0, [fp, #-308]
	bl	FreeTraversal
	str	r0, [fp, #-308]
	ldr	r1, [fp, #-344]
	ldr	r0, [fp, #-312]
	bl	FreeUpProfiles
	str	r0, [fp, #-312]
	ldr	r3, [fp, #-352]
	cmp	r3, #0
	ble	.L2518
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-352]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-304]
	bl	myfree
	str	r0, [fp, #-304]
.L2518:
	mov	r3, #0
	str	r3, [fp, #-328]
	b	.L2519
.L2520:
	ldr	r3, [fp, #-328]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-260]
	ldr	r3, [fp, #-344]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #3
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-328]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-260]
	ldr	r3, [fp, #-328]
	add	r3, r3, #1
	str	r3, [fp, #-328]
.L2519:
	ldr	r3, [fp, #-328]
	cmp	r3, #2
	ble	.L2520
	nop
	ldr	r3, .L2535
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2521
	bl	__stack_chk_fail
.L2521:
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L2536:
	.align	2
.L2535:
	.word	.LC513
	.word	-1598689907
	.word	1051772663
	.word	1374389535
	.word	.LC512
	.word	mlAccuracy
	.word	closeLogLkLimit
	.word	treeLogLkDelta
	.size	TestSplitsML, .-TestSplitsML
	.section	.rodata
	.align	2
.LC514:
	.ascii	"Testing Split around %d: A=%d B=%d C=%d D=up(%d) or"
	.ascii	" node parent %d\012\000"
	.align	2
.LC515:
	.ascii	"Violate constraint %d at %d (children %d %d) penalt"
	.ascii	"ies %.3f %.3f %.3f %d/%d %d/%d %d/%d %d/%d\012\000"
	.align	2
.LC516:
	.ascii	"Violate constraints %d distance_advantage %.3f cons"
	.ascii	"traint_penalty %.3f (children %d %d):\000"
	.align	2
.LC517:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	TestSplitsMinEvo
	.syntax unified
	.arm
	.fpu softvfp
	.type	TestSplitsMinEvo, %function
TestSplitsMinEvo:
	@ args = 0, pretend = 0, frame = 280
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #348
	str	r0, [fp, #-288]
	str	r1, [fp, #-292]
	ldr	r3, .L2592
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	ldr	r2, .L2592+4
	ldr	r3, .L2592+8
	str	r2, [fp, #-236]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-292]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-292]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-292]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-292]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r1, [fp, #-292]
	mov	r2, #0
	mov	r3, #0
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	ldr	r1, [fp, #-292]
	mov	r2, #0
	mov	r3, #0
	str	r2, [r1, #24]
	str	r3, [r1, #28]
	ldr	r0, [fp, #-288]
	bl	UpProfiles
	str	r0, [fp, #-264]
	ldr	r0, [fp, #-288]
	bl	InitTraversal
	str	r0, [fp, #-260]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #80]
	str	r3, [fp, #-276]
	b	.L2538
.L2577:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3]
	ldr	r2, [fp, #-276]
	cmp	r2, r3
	blt	.L2538
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-276]
	cmp	r2, r3
	bne	.L2540
	b	.L2538
.L2540:
	sub	r2, fp, #196
	mov	r3, #0
	str	r3, [sp, #4]
	sub	r3, fp, #180
	str	r3, [sp]
	ldr	r3, [fp, #-264]
	ldr	r1, [fp, #-276]
	ldr	r0, [fp, #-288]
	bl	SetupABCD
	ldr	r3, .L2592+12
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2541
	ldr	r3, .L2592+16
	ldr	lr, [r3]
	ldr	r4, [fp, #-180]
	ldr	r3, [fp, #-176]
	ldr	r2, [fp, #-172]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-288]
	ldr	ip, [r0, #84]
	ldr	r0, [fp, #-276]
	lsl	r0, r0, #2
	add	r0, ip, r0
	ldr	r0, [r0]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r4
	ldr	r2, [fp, #-276]
	ldr	r1, .L2592+20
	mov	r0, lr
	bl	fprintf
.L2541:
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-288]
	ldr	r1, [r3, #4]
	sub	r0, fp, #196
	sub	r3, fp, #140
	str	r3, [sp]
	mov	r3, r1
	mov	r1, #4
	bl	CorrectedPairDistances
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-228]
	str	r3, [fp, #-224]
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-220]
	str	r3, [fp, #-216]
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-212]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-288]
	ldr	r1, [r3, #20]
	sub	r2, fp, #164
	sub	r3, fp, #196
	mov	r0, r3
	bl	QuartetConstraintPenalties
	mov	r3, #0
	str	r3, [fp, #-272]
	mov	r3, #0
	str	r3, [fp, #-268]
	b	.L2542
.L2544:
	sub	r3, fp, #196
	ldr	r1, [fp, #-268]
	mov	r0, r3
	bl	SplitViolatesConstraint
	mov	r3, r0
	cmp	r3, #0
	beq	.L2543
	ldr	r3, [fp, #-272]
	add	r3, r3, #1
	str	r3, [fp, #-272]
	ldr	r3, .L2592+12
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2543
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	sub	r2, fp, #92
	sub	r3, fp, #196
	ldr	r1, [fp, #-268]
	mov	r0, r3
	bl	QuartetConstraintPenaltiesPiece
	ldr	r3, .L2592+16
	ldr	r3, [r3]
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-276]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r10, [r3, #4]
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-276]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r2, [r3, #8]
	str	r2, [fp, #-300]
	sub	r5, fp, #92
	ldmia	r5, {r4-r5}
	sub	r7, fp, #84
	ldmia	r7, {r6-r7}
	sub	r9, fp, #76
	ldmia	r9, {r8-r9}
	ldr	r3, [fp, #-196]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	str	r1, [fp, #-304]
	ldr	r3, [fp, #-196]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	ip, [r3]
	str	ip, [fp, #-308]
	ldr	r3, [fp, #-192]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	lr, [r3]
	str	lr, [fp, #-312]
	ldr	r3, [fp, #-192]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	lr, [r3]
	ldr	r3, [fp, #-188]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	ip, [r3]
	ldr	r3, [fp, #-188]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-184]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-184]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [sp, #60]
	str	r1, [sp, #56]
	str	r0, [sp, #52]
	str	ip, [sp, #48]
	str	lr, [sp, #44]
	ldr	lr, [fp, #-312]
	str	lr, [sp, #40]
	ldr	ip, [fp, #-308]
	str	ip, [sp, #36]
	ldr	r1, [fp, #-304]
	str	r1, [sp, #32]
	str	r8, [sp, #24]
	str	r9, [sp, #28]
	str	r6, [sp, #16]
	str	r7, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	ldr	r2, [fp, #-300]
	str	r2, [sp, #4]
	str	r10, [sp]
	ldr	r3, [fp, #-276]
	ldr	r2, [fp, #-268]
	ldr	r1, .L2592+24
	ldr	r0, [fp, #-296]
	bl	fprintf
.L2543:
	ldr	r3, [fp, #-268]
	add	r3, r3, #1
	str	r3, [fp, #-268]
.L2542:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-268]
	cmp	r2, r3
	blt	.L2544
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2585
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	b	.L2547
.L2585:
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
.L2547:
	sub	r1, fp, #228
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-204]
	str	r3, [fp, #-200]
	mov	r3, #1
	mov	r4, r3
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L2548
	mov	r3, #0
	mov	r4, r3
.L2548:
	strb	r4, [fp, #-278]
	sub	r5, fp, #164
	ldmia	r5, {r4-r5}
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L2549
	sub	r5, fp, #164
	ldmia	r5, {r4-r5}
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2586
.L2549:
	mov	r3, #1
	b	.L2552
.L2586:
	mov	r3, #0
.L2552:
	strb	r3, [fp, #-277]
	ldrb	r3, [fp, #-277]
	and	r3, r3, #1
	strb	r3, [fp, #-277]
	ldr	r3, [fp, #-292]
	ldr	r3, [r3, #12]
	add	r2, r3, #1
	ldr	r3, [fp, #-292]
	str	r2, [r3, #12]
	ldrb	r3, [fp, #-278]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2553
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2587
	mov	r3, #1
	b	.L2556
.L2587:
	mov	r3, #2
.L2556:
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-256]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #128
	ldmia	r3, {r4-r5}
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2588
	ldr	r3, [fp, #-292]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2589
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	b	.L2561
.L2589:
	ldr	r3, [fp, #-292]
	add	r3, r3, #24
	ldmia	r3, {r2-r3}
.L2561:
	ldr	r1, [fp, #-292]
	str	r2, [r1, #24]
	str	r3, [r1, #28]
	b	.L2553
.L2588:
	ldr	r3, [fp, #-292]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2590
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	b	.L2564
.L2590:
	ldr	r3, [fp, #-292]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
.L2564:
	ldr	r1, [fp, #-292]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
.L2553:
	ldr	r3, [fp, #-272]
	cmp	r3, #0
	ble	.L2565
	ldr	r3, [fp, #-292]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-292]
	str	r2, [r3, #4]
.L2565:
	ldrb	r3, [fp, #-278]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2566
	ldr	r3, [fp, #-292]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-292]
	str	r2, [r3]
.L2566:
	ldrb	r3, [fp, #-278]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2567
	ldrb	r3, [fp, #-277]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2567
	ldr	r3, [fp, #-292]
	ldr	r3, [r3, #8]
	add	r2, r3, #1
	ldr	r3, [fp, #-292]
	str	r2, [r3, #8]
.L2567:
	ldrb	r3, [fp, #-277]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2568
	ldr	r3, .L2592+12
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2568
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-252]
	str	r3, [fp, #-248]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-244]
	str	r3, [fp, #-240]
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2591
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-252]
	str	r3, [fp, #-248]
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-244]
	str	r3, [fp, #-240]
	b	.L2571
.L2591:
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	sub	r1, fp, #212
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-252]
	str	r3, [fp, #-248]
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-244]
	str	r3, [fp, #-240]
.L2571:
	ldr	r3, .L2592+16
	ldr	r0, [r3]
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-276]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-288]
	ldr	r1, [r2, #88]
	ldr	r2, [fp, #-276]
	lsl	r2, r2, #4
	add	r2, r1, r2
	ldr	r2, [r2, #8]
	str	r2, [sp, #20]
	str	r3, [sp, #16]
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-276]
	ldr	r1, .L2592+28
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-268]
	b	.L2572
.L2576:
	sub	r2, fp, #92
	sub	r3, fp, #196
	ldr	r1, [fp, #-268]
	mov	r0, r3
	bl	QuartetConstraintPenaltiesPiece
	mov	r3, r0
	cmp	r3, #0
	beq	.L2573
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L2574
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2573
.L2574:
	ldr	r3, .L2592+16
	ldr	r6, [r3]
	ldr	r3, [fp, #-196]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r7, [r3]
	ldr	r3, [fp, #-196]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-192]
	ldr	r1, [r2, #20]
	ldr	r2, [fp, #-268]
	lsl	r2, r2, #2
	add	r2, r1, r2
	ldr	r2, [r2]
	ldr	r1, [fp, #-192]
	ldr	r0, [r1, #24]
	ldr	r1, [fp, #-268]
	lsl	r1, r1, #2
	add	r1, r0, r1
	ldr	r1, [r1]
	ldr	r0, [fp, #-188]
	ldr	ip, [r0, #20]
	ldr	r0, [fp, #-268]
	lsl	r0, r0, #2
	add	r0, ip, r0
	ldr	r0, [r0]
	ldr	ip, [fp, #-188]
	ldr	lr, [ip, #24]
	ldr	ip, [fp, #-268]
	lsl	ip, ip, #2
	add	ip, lr, ip
	ldr	ip, [ip]
	ldr	lr, [fp, #-184]
	ldr	r4, [lr, #20]
	ldr	lr, [fp, #-268]
	lsl	lr, lr, #2
	add	lr, r4, lr
	ldr	lr, [lr]
	ldr	r4, [fp, #-184]
	ldr	r5, [r4, #24]
	ldr	r4, [fp, #-268]
	lsl	r4, r4, #2
	add	r4, r5, r4
	ldr	r4, [r4]
	str	r4, [sp, #24]
	str	lr, [sp, #20]
	str	ip, [sp, #16]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r7
	ldr	r2, [fp, #-268]
	ldr	r1, .L2592+32
	mov	r0, r6
	bl	fprintf
.L2573:
	ldr	r3, [fp, #-268]
	add	r3, r3, #1
	str	r3, [fp, #-268]
.L2572:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-268]
	cmp	r2, r3
	blt	.L2576
	ldr	r3, .L2592+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L2568:
	ldr	r3, [fp, #-180]
	mov	r2, r3
	ldr	r1, [fp, #-288]
	ldr	r0, [fp, #-264]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-176]
	mov	r2, r3
	ldr	r1, [fp, #-288]
	ldr	r0, [fp, #-264]
	bl	DeleteUpProfile
.L2538:
	mov	r3, #0
	ldr	r2, [fp, #-260]
	ldr	r1, [fp, #-288]
	ldr	r0, [fp, #-276]
	bl	TraversePostorder
	str	r0, [fp, #-276]
	ldr	r3, [fp, #-276]
	cmp	r3, #0
	bge	.L2577
	ldr	r1, [fp, #-288]
	ldr	r0, [fp, #-260]
	bl	FreeTraversal
	str	r0, [fp, #-260]
	ldr	r1, [fp, #-288]
	ldr	r0, [fp, #-264]
	bl	FreeUpProfiles
	str	r0, [fp, #-264]
	nop
	ldr	r3, .L2592
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2578
	bl	__stack_chk_fail
.L2578:
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2593:
	.align	2
.L2592:
	.word	.LC517
	.word	-1598689907
	.word	1051772663
	.word	verbose
	.word	stderr
	.word	.LC514
	.word	.LC515
	.word	.LC516
	.word	.LC371
	.size	TestSplitsMinEvo, .-TestSplitsMinEvo
	.section	.rodata
	.align	2
.LC518:
	.ascii	"iFreqA == pA->nVectors\000"
	.align	2
.LC519:
	.ascii	"iFreqB == pB->nVectors\000"
	.align	2
.LC520:
	.ascii	"iFreqC == pC->nVectors\000"
	.align	2
.LC521:
	.ascii	"iFreqD == pD->nVectors\000"
	.align	2
.LC522:
	.ascii	"nBootstrap > 0\000"
	.align	2
.LC523:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	SplitSupport
	.syntax unified
	.arm
	.fpu softvfp
	.type	SplitSupport, %function
SplitSupport:
	@ args = 16, pretend = 0, frame = 328
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #340
	str	r0, [fp, #-328]
	str	r1, [fp, #-332]
	str	r2, [fp, #-336]
	str	r3, [fp, #-340]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-344]
	ldr	r3, [fp, #16]
	str	r3, [fp, #-348]
	ldr	r3, .L2654+68
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, [fp, #8]
	str	r3, [fp, #-288]
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L2595
.L2596:
	ldr	r3, [fp, #8]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-200]
	ldr	r3, [fp, #8]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-176]
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L2595:
	ldr	r3, [fp, #-316]
	cmp	r3, #5
	ble	.L2596
	mov	r3, #0
	str	r3, [fp, #-312]
	mov	r3, #0
	str	r3, [fp, #-308]
	mov	r3, #0
	str	r3, [fp, #-304]
	mov	r3, #0
	str	r3, [fp, #-300]
	mov	r3, #0
	str	r3, [fp, #-320]
	b	.L2597
.L2610:
	ldr	r3, [fp, #-328]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2598
	ldr	r3, [fp, #-328]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L2598
	ldr	r3, [fp, #-328]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-312]
	add	r1, r3, #1
	str	r1, [fp, #-312]
	ldr	r1, .L2654
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L2600
.L2598:
	mov	r3, #0
.L2600:
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-332]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2601
	ldr	r3, [fp, #-332]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L2601
	ldr	r3, [fp, #-332]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-308]
	add	r1, r3, #1
	str	r1, [fp, #-308]
	ldr	r1, .L2654
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L2603
.L2601:
	mov	r3, #0
.L2603:
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-336]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2604
	ldr	r3, [fp, #-336]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L2604
	ldr	r3, [fp, #-336]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-304]
	add	r1, r3, #1
	str	r1, [fp, #-304]
	ldr	r1, .L2654
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L2606
.L2604:
	mov	r3, #0
.L2606:
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-340]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2607
	ldr	r3, [fp, #-340]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L2607
	ldr	r3, [fp, #-340]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-300]
	add	r1, r3, #1
	str	r1, [fp, #-300]
	ldr	r1, .L2654
	ldr	r1, [r1]
	mul	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	b	.L2609
.L2607:
	mov	r3, #0
.L2609:
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-328]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-332]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-196]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r4, r2, r3
	mov	r0, r1
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-328]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-336]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-192]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r4, r2, r3
	mov	r0, r1
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-328]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-340]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-188]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r4, r2, r3
	mov	r0, r1
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-332]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-336]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-184]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r4, r2, r3
	mov	r0, r1
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-332]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-340]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r4, r2, r3
	mov	r0, r1
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-336]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-340]
	ldr	r2, [r3]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r4, r2, r3
	mov	r0, r1
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r2, [fp, #-196]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-328]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-332]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-344]
	str	r3, [sp]
	ldr	r3, [fp, #-264]
	ldr	r2, [fp, #-268]
	bl	ProfileDistPiece
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-220]
	ldr	r1, [fp, #-320]
	lsl	r1, r1, #3
	add	r6, r0, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r2, [fp, #-192]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-328]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-336]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-344]
	str	r3, [sp]
	ldr	r3, [fp, #-260]
	ldr	r2, [fp, #-268]
	bl	ProfileDistPiece
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-216]
	ldr	r1, [fp, #-320]
	lsl	r1, r1, #3
	add	r6, r0, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r2, [fp, #-188]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-328]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-340]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-344]
	str	r3, [sp]
	ldr	r3, [fp, #-256]
	ldr	r2, [fp, #-268]
	bl	ProfileDistPiece
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-212]
	ldr	r1, [fp, #-320]
	lsl	r1, r1, #3
	add	r6, r0, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r2, [fp, #-184]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-332]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-336]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-344]
	str	r3, [sp]
	ldr	r3, [fp, #-260]
	ldr	r2, [fp, #-264]
	bl	ProfileDistPiece
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-208]
	ldr	r1, [fp, #-320]
	lsl	r1, r1, #3
	add	r6, r0, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-332]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-340]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-344]
	str	r3, [sp]
	ldr	r3, [fp, #-256]
	ldr	r2, [fp, #-264]
	bl	ProfileDistPiece
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-204]
	ldr	r1, [fp, #-320]
	lsl	r1, r1, #3
	add	r6, r0, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-336]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-340]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-344]
	str	r3, [sp]
	ldr	r3, [fp, #-256]
	ldr	r2, [fp, #-260]
	bl	ProfileDistPiece
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-200]
	ldr	r1, [fp, #-320]
	lsl	r1, r1, #3
	add	r6, r0, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r3, [fp, #-320]
	add	r3, r3, #1
	str	r3, [fp, #-320]
.L2597:
	ldr	r2, [fp, #-320]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	blt	.L2610
	ldr	r3, [fp, #-328]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-312]
	cmp	r2, r3
	beq	.L2611
	ldr	r3, .L2654+4
	ldr	r2, .L2654+8
	ldr	r1, .L2654+12
	ldr	r0, .L2654+16
	bl	__assert_fail
.L2611:
	ldr	r3, [fp, #-332]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-308]
	cmp	r2, r3
	beq	.L2612
	ldr	r3, .L2654+4
	mov	r2, #7360
	ldr	r1, .L2654+12
	ldr	r0, .L2654+20
	bl	__assert_fail
.L2612:
	ldr	r3, [fp, #-336]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-304]
	cmp	r2, r3
	beq	.L2613
	ldr	r3, .L2654+4
	ldr	r2, .L2654+24
	ldr	r1, .L2654+12
	ldr	r0, .L2654+28
	bl	__assert_fail
.L2613:
	ldr	r3, [fp, #-340]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-300]
	cmp	r2, r3
	beq	.L2614
	ldr	r3, .L2654+4
	ldr	r2, .L2654+32
	ldr	r1, .L2654+12
	ldr	r0, .L2654+36
	bl	__assert_fail
.L2614:
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L2615
.L2622:
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r1, r3, #152
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r1, r3, #104
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	mov	r3, #0
	str	r3, [fp, #-320]
	b	.L2616
.L2617:
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #152
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-200]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-316]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #152
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #104
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-176]
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-316]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #104
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-320]
	add	r3, r3, #1
	str	r3, [fp, #-320]
.L2616:
	ldr	r2, [fp, #-320]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	blt	.L2617
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #104
	ldmia	r3, {r0-r1}
	ldr	r2, .L2654+40
	ldr	r3, .L2654+44
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2652
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #152
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #104
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	b	.L2620
.L2652:
	mov	r2, #0
	ldr	r3, .L2654+60
.L2620:
	ldr	r1, [fp, #-316]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #56
	stm	r1, {r2-r3}
	ldr	r3, .L2654+64
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2621
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #56
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	LogCorrect
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-316]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #56
	stm	r1, {r2-r3}
.L2621:
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L2615:
	ldr	r3, [fp, #-316]
	cmp	r3, #5
	ble	.L2622
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-236]
	str	r3, [fp, #-232]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-228]
	str	r3, [fp, #-224]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L2623
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #228
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2624
.L2623:
	ldr	r3, .L2654+48
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L2654+48
	str	r3, [r2]
.L2624:
	ldr	r3, [fp, #12]
	cmp	r3, #0
	bgt	.L2626
	ldr	r3, .L2654+4
	ldr	r2, .L2654+52
	ldr	r1, .L2654+12
	ldr	r0, .L2654+56
	bl	__assert_fail
.L2626:
	mov	r3, #0
	str	r3, [fp, #-296]
	mov	r3, #0
	str	r3, [fp, #-292]
	b	.L2627
.L2639:
	ldr	r3, [fp, #-288]
	ldr	r2, [fp, #-292]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-348]
	add	r3, r2, r3
	str	r3, [fp, #-284]
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L2628
.L2635:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-252]
	str	r3, [fp, #-248]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-244]
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-200]
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-176]
	str	r3, [fp, #-276]
	mov	r3, #0
	str	r3, [fp, #-320]
	b	.L2629
.L2630:
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-284]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-280]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-252]
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-272]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-276]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #244
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-244]
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-320]
	add	r3, r3, #1
	str	r3, [fp, #-320]
.L2629:
	ldr	r2, [fp, #-320]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	blt	.L2630
	ldr	r2, .L2654+40
	ldr	r3, .L2654+44
	sub	r1, fp, #244
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2653
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	b	.L2633
.L2655:
	.align	2
.L2654:
	.word	nCodes
	.word	__PRETTY_FUNCTION__.10367
	.word	7359
	.word	.LC134
	.word	.LC518
	.word	.LC519
	.word	7361
	.word	.LC520
	.word	7362
	.word	.LC521
	.word	1202590843
	.word	1065646817
	.word	nSuboptimalSplits
	.word	7389
	.word	.LC522
	.word	1074266112
	.word	logdist
	.word	.LC523
.L2653:
	mov	r2, #0
	ldr	r3, .L2654+60
.L2633:
	ldr	r1, [fp, #-316]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #56
	stm	r1, {r2-r3}
	ldr	r3, .L2654+64
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2634
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #56
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	LogCorrect
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-316]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #56
	stm	r1, {r2-r3}
.L2634:
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L2628:
	ldr	r3, [fp, #-316]
	cmp	r3, #5
	ble	.L2635
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-236]
	str	r3, [fp, #-232]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-228]
	str	r3, [fp, #-224]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2636
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #228
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2636
	ldr	r3, [fp, #-296]
	add	r3, r3, #1
	str	r3, [fp, #-296]
.L2636:
	ldr	r3, [fp, #-292]
	add	r3, r3, #1
	str	r3, [fp, #-292]
.L2627:
	ldr	r2, [fp, #-292]
	ldr	r3, [fp, #12]
	cmp	r2, r3
	blt	.L2639
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L2640
.L2641:
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-200]
	ldr	r3, [fp, #8]
	lsl	r3, r3, #3
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-200]
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-176]
	ldr	r3, [fp, #8]
	lsl	r3, r3, #3
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-176]
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L2640:
	ldr	r3, [fp, #-316]
	cmp	r3, #5
	ble	.L2641
	ldr	r0, [fp, #-296]
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #12]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L2654+68
	ldr	r0, [r1]
	ldr	r1, [fp, #-24]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L2643
	bl	__stack_chk_fail
.L2643:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
	.size	SplitSupport, .-SplitSupport
	.section	.rodata
	.align	2
.LC524:
	.ascii	"nBootstrap>0\000"
	.align	2
.LC525:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	SHSupport
	.syntax unified
	.arm
	.fpu softvfp
	.type	SHSupport, %function
SHSupport:
	@ args = 4, pretend = 0, frame = 152
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #152
	str	r0, [fp, #-152]
	str	r1, [fp, #-156]
	str	r2, [fp, #-160]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-168]
	ldr	r3, .L2692
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, [fp, #-152]
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-156]
	cmp	r3, #0
	bgt	.L2657
	ldr	r3, .L2692+4
	ldr	r2, .L2692+8
	ldr	r1, .L2692+12
	ldr	r0, .L2692+16
	bl	__assert_fail
.L2657:
	ldr	r3, [fp, #-164]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-164]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-164]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-164]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2690
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	b	.L2660
.L2690:
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
.L2660:
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L2661
.L2664:
	ldr	r3, [fp, #-152]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-44]
	mov	r3, #0
	str	r3, [fp, #-140]
	b	.L2662
.L2663:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-168]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-44]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #3
	add	r6, r2, r3
	bl	log
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r3, [fp, #-140]
	add	r3, r3, #1
	str	r3, [fp, #-140]
.L2662:
	ldr	r2, [fp, #-140]
	ldr	r3, [fp, #-152]
	cmp	r2, r3
	blt	.L2663
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L2661:
	ldr	r3, [fp, #-144]
	cmp	r3, #2
	ble	.L2664
	mov	r3, #0
	str	r3, [fp, #-136]
	mov	r3, #0
	str	r3, [fp, #-132]
	b	.L2665
.L2681:
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L2666
.L2667:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-164]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r4, r2
	eor	r5, r3, #-2147483648
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #32
	stm	r3, {r4-r5}
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L2666:
	ldr	r3, [fp, #-144]
	cmp	r3, #2
	ble	.L2667
	mov	r3, #0
	str	r3, [fp, #-140]
	b	.L2668
.L2671:
	ldr	r3, [fp, #-132]
	ldr	r2, [fp, #-124]
	mul	r2, r3, r2
	ldr	r3, [fp, #-140]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-120]
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L2669
.L2670:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #32
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-44]
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-144]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #32
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L2669:
	ldr	r3, [fp, #-144]
	cmp	r3, #2
	ble	.L2670
	ldr	r3, [fp, #-140]
	add	r3, r3, #1
	str	r3, [fp, #-140]
.L2668:
	ldr	r2, [fp, #-140]
	ldr	r3, [fp, #-152]
	cmp	r2, r3
	blt	.L2671
	mov	r3, #0
	str	r3, [fp, #-128]
	mov	r3, #1
	str	r3, [fp, #-144]
	b	.L2672
.L2675:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #32
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #32
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2673
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-128]
.L2673:
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L2672:
	ldr	r3, [fp, #-144]
	cmp	r3, #2
	ble	.L2675
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #32
	ldmia	r3, {r6-r7}
	ldr	r3, [fp, #-128]
	add	r1, r3, #1
	ldr	r3, .L2692+20
	smull	r0, r2, r3, r1
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	sub	r2, r1, r3
	lsl	r3, r2, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #32
	ldmia	r3, {r2-r3}
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #32
	ldmia	r3, {r6-r7}
	ldr	r3, [fp, #-128]
	add	r1, r3, #2
	ldr	r3, .L2692+20
	smull	r0, r2, r3, r1
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	sub	r2, r1, r3
	lsl	r3, r2, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #32
	ldmia	r3, {r2-r3}
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2691
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	b	.L2678
.L2691:
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
.L2678:
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2679
	ldr	r3, [fp, #-136]
	add	r3, r3, #1
	str	r3, [fp, #-136]
.L2679:
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	str	r3, [fp, #-132]
.L2665:
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-156]
	cmp	r2, r3
	blt	.L2681
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L2682
.L2683:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-44]
	ldr	r3, [fp, #-152]
	lsl	r3, r3, #3
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-44]
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L2682:
	ldr	r3, [fp, #-144]
	cmp	r3, #2
	ble	.L2683
	ldr	r0, [fp, #-136]
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-156]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L2692
	ldr	r0, [r1]
	ldr	r1, [fp, #-24]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L2685
	bl	__stack_chk_fail
.L2685:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L2693:
	.align	2
.L2692:
	.word	.LC525
	.word	__PRETTY_FUNCTION__.10407
	.word	7425
	.word	.LC134
	.word	.LC524
	.word	1431655766
	.size	SHSupport, .-SHSupport
	.align	2
	.global	SetDistCriterion
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetDistCriterion, %function
SetDistCriterion:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r2, r3
	bge	.L2695
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r2, r3
	bge	.L2695
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	ip, [r3, #12]
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	mov	r3, ip
	bl	SeqDist
	b	.L2696
.L2695:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	ip, [r3, #12]
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, [fp, #-24]
	ldr	r4, [r3, #12]	@ float
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]	@ float
.L2696:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r0, [fp, #-16]
	bl	JoinConstraintPenalty
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, .L2697
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]	@ float
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	SetCriterion
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L2698:
	.align	2
.L2697:
	.word	constraintWeight
	.size	SetDistCriterion, .-SetDistCriterion
	.section	.rodata
	.align	2
.LC526:
	.ascii	"NJ->nOutDistActive[join->i] >= nActive\000"
	.align	2
.LC527:
	.ascii	"NJ->nOutDistActive[join->j] >= nActive\000"
	.align	2
.LC528:
	.ascii	"Set Criterion to join %d %d with nActive=%d dist+pe"
	.ascii	"nalty %.3f criterion %.3f\012\000"
	.text
	.align	2
	.global	SetCriterion
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetCriterion, %function
SetCriterion:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #68
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L2714
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	blt	.L2714
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L2714
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L2714
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	ble	.L2703
	ldr	r3, .L2715
	ldr	r2, .L2715+4
	ldr	r1, .L2715+8
	ldr	r0, .L2715+12
	bl	__assert_fail
.L2703:
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	ble	.L2704
	ldr	r3, .L2715
	mov	r2, #7488
	ldr	r1, .L2715+8
	ldr	r0, .L2715+16
	bl	__assert_fail
.L2704:
	ldr	r3, .L2715+20
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2713
	ldr	r0, [fp, #-60]
	bl	__aeabi_i2d
	ldr	r3, .L2715+24
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L2707
.L2713:
	mov	r3, #0
.L2707:
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-60]
	sub	r3, r2, r3
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	bge	.L2708
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	mov	r1, r3
	ldr	r0, [fp, #-56]
	bl	SetOutDistance
.L2708:
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-60]
	sub	r3, r2, r3
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	bge	.L2709
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-60]
	mov	r1, r3
	ldr	r0, [fp, #-56]
	bl	SetOutDistance
.L2709:
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	beq	.L2710
	ldr	r3, [fp, #-60]
	sub	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	sub	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
.L2710:
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	beq	.L2711
	ldr	r3, [fp, #-60]
	sub	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	sub	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
.L2711:
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #12]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-60]
	sub	r3, r3, #2
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-64]
	str	r2, [r3, #16]	@ float
	ldr	r3, .L2715+28
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2699
	ldr	r3, [fp, #-60]
	cmp	r3, #5
	bgt	.L2699
	ldr	r3, .L2715+32
	ldr	r6, [r3]
	ldr	r3, [fp, #-64]
	ldr	r7, [r3]
	ldr	r3, [fp, #-64]
	ldr	r8, [r3, #4]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #12]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	ldr	r3, [fp, #-60]
	str	r3, [sp]
	mov	r3, r8
	mov	r2, r7
	ldr	r1, .L2715+36
	mov	r0, r6
	bl	fprintf
	b	.L2699
.L2714:
	nop
.L2699:
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L2716:
	.align	2
.L2715:
	.word	__PRETTY_FUNCTION__.10456
	.word	7487
	.word	.LC134
	.word	.LC526
	.word	.LC527
	.word	tophitsMult
	.word	staleOutLimit
	.word	verbose
	.word	stderr
	.word	.LC528
	.size	SetCriterion, .-SetCriterion
	.section	.rodata
	.align	2
.LC529:
	.ascii	"iNode>=0 && (NJ->parent == NULL || NJ->parent[iNode"
	.ascii	"]<0)\000"
	.align	2
.LC530:
	.ascii	"NewOutDist for %d %f from dist %f selfd %f diam %f "
	.ascii	"totdiam %f newActive %d\012\000"
	.align	2
.LC531:
	.ascii	"OutDist for Node %d %f truth %f profiled %f truth %"
	.ascii	"f pd_err %f\012\000"
	.align	2
.LC532:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	SetOutDistance
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetOutDistance, %function
SetOutDistance:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #172
	str	r0, [fp, #-136]
	str	r1, [fp, #-140]
	str	r2, [fp, #-144]
	ldr	r3, .L2737
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-144]
	cmp	r2, r3
	beq	.L2735
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	blt	.L2720
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #84]
	cmp	r3, #0
	beq	.L2736
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L2736
.L2720:
	ldr	r3, .L2737+4
	ldr	r2, .L2737+8
	ldr	r1, .L2737+12
	ldr	r0, .L2737+16
	bl	__assert_fail
.L2736:
	nop
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-136]
	ldr	r1, [r3, #56]
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-136]
	ldr	ip, [r3, #12]
	sub	r3, fp, #80
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, .L2737+20
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L2737+20
	str	r3, [r2]
	ldr	r3, [fp, #-144]
	sub	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r4, r0
	ldr	r3, [fp, #-68]	@ float
	ldr	r2, [fp, #-72]	@ float
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r0, [fp, #-144]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r5
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	ldr	r4, [fp, #-72]	@ float
	ldr	r0, [fp, #-144]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r2, .L2737+24
	ldr	r3, .L2737+28
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2734
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r4, [r3]	@ float
	ldr	r3, [fp, #-144]
	sub	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r8, r2
	mov	r9, r3
	ldr	r3, [fp, #-136]
	add	r5, r3, #64
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	b	.L2725
.L2734:
	ldr	r3, .L2737+32
.L2725:
	ldr	r2, [fp, #-136]
	ldr	r1, [r2, #72]
	ldr	r2, [fp, #-140]
	lsl	r2, r2, #2
	add	r2, r1, r2
	str	r3, [r2]	@ float
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-144]
	str	r2, [r3]
	ldr	r3, .L2737+36
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L2726
	ldr	r3, [fp, #-140]
	cmp	r3, #4
	bgt	.L2726
	ldr	r3, .L2737+40
	ldr	r10, [r3]
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-68]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r8, r0
	mov	r9, r1
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	str	r0, [fp, #-156]
	str	r1, [fp, #-152]
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r3, [fp, #-136]
	add	r3, r3, #64
	ldmia	r3, {r2-r3}
	ldr	ip, [fp, #-144]
	str	ip, [sp, #40]
	str	r2, [sp, #32]
	str	r3, [sp, #36]
	str	r0, [sp, #24]
	str	r1, [sp, #28]
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r8, [sp, #8]
	str	r9, [sp, #12]
	stm	sp, {r4-r5}
	ldr	r2, [fp, #-140]
	ldr	r1, .L2737+44
	mov	r0, r10
	bl	fprintf
.L2726:
	ldr	r3, .L2737+36
	ldr	r3, [r3]
	cmp	r3, #6
	ble	.L2717
	ldr	r1, [fp, #-140]
	ldr	r3, .L2737+48
	smull	r2, r3, r1, r3
	asr	r2, r3, #2
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L2717
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	mov	r3, #0
	str	r3, [fp, #-128]
	b	.L2728
.L2731:
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-140]
	cmp	r2, r3
	beq	.L2729
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #84]
	cmp	r3, #0
	beq	.L2730
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L2729
.L2730:
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-136]
	ldr	ip, [r3, #12]
	sub	r3, fp, #60
	str	r3, [sp]
	mov	r3, ip
	bl	ProfileDist
	ldr	r3, [fp, #-48]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	ldr	r4, [fp, #-48]	@ float
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
.L2729:
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
.L2728:
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-128]
	cmp	r2, r3
	blt	.L2731
	ldr	r3, .L2737+40
	ldr	r8, [r3]
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	bic	r7, r3, #-2147483648
	str	r6, [sp, #32]
	str	r7, [sp, #36]
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	str	r2, [sp, #24]
	str	r3, [sp, #28]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	ldr	r2, [fp, #-140]
	ldr	r1, .L2737+52
	mov	r0, r8
	bl	fprintf
	b	.L2717
.L2735:
	nop
.L2717:
	ldr	r3, .L2737
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2732
	bl	__stack_chk_fail
.L2732:
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2738:
	.align	2
.L2737:
	.word	.LC532
	.word	__PRETTY_FUNCTION__.10465
	.word	7513
	.word	.LC134
	.word	.LC529
	.word	outprofileOps
	.word	1202590843
	.word	1065646817
	.word	1077936128
	.word	verbose
	.word	stderr
	.word	.LC530
	.word	1717986919
	.word	.LC531
	.size	SetOutDistance, .-SetOutDistance
	.align	2
	.global	FreeTopHits
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreeTopHits, %function
FreeTopHits:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L2740
	mov	r3, #0
	b	.L2741
.L2740:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L2742
.L2744:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L2743
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	lsl	r3, r3, #3
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
.L2743:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L2742:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L2744
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #4
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	mov	r1, #32
	ldr	r0, [fp, #-16]
	bl	myfree
	mov	r3, r0
.L2741:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	FreeTopHits, .-FreeTopHits
	.section	.rodata
	.align	2
.LC533:
	.ascii	"m > 0\000"
	.text
	.align	2
	.global	InitTopHits
	.syntax unified
	.arm
	.fpu softvfp
	.type	InitTopHits, %function
InitTopHits:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bgt	.L2746
	ldr	r3, .L2754
	ldr	r2, .L2754+4
	ldr	r1, .L2754+8
	ldr	r0, .L2754+12
	bl	__assert_fail
.L2746:
	mov	r0, #32
	bl	mymalloc
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sqrt
	ldr	r3, .L2754+16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2754+20
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, .L2754+24
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L2747
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L2748
.L2747:
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #4]
.L2748:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #4
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	ldr	r0, [fp, #-36]
	bl	__aeabi_i2d
	ldr	r3, .L2754+28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2754+20
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L2749
.L2750:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L2749:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L2750
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #28]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L2751
.L2752:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	mvn	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, .L2754+32
	str	r2, [r3, #4]	@ float
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L2751:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L2752
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2755:
	.align	2
.L2754:
	.word	__PRETTY_FUNCTION__.10490
	.word	7594
	.word	.LC134
	.word	.LC533
	.word	tophits2Mult
	.word	1071644672
	.word	useTopHits2nd
	.word	topvisibleMult
	.word	1621981420
	.size	InitTopHits, .-InitTopHits
	.global	CompareSeedNJ
	.bss
	.align	2
	.type	CompareSeedNJ, %object
	.size	CompareSeedNJ, 4
CompareSeedNJ:
	.space	4
	.global	CompareSeedGaps
	.align	2
	.type	CompareSeedGaps, %object
	.size	CompareSeedGaps, 4
CompareSeedGaps:
	.space	4
	.text
	.align	2
	.global	CompareSeeds
	.syntax unified
	.arm
	.fpu softvfp
	.type	CompareSeeds, %function
CompareSeeds:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, .L2767
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, .L2767
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L2757
	ldr	r3, [fp, #-16]
	b	.L2758
.L2757:
	ldr	r3, .L2767+4
	ldr	r3, [r3]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, .L2767+4
	ldr	r3, [r3]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2765
	mvn	r3, #0
	b	.L2758
.L2765:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2766
	mov	r3, #1
	b	.L2758
.L2766:
	mov	r3, #0
.L2758:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2768:
	.align	2
.L2767:
	.word	CompareSeedGaps
	.word	CompareSeedNJ
	.size	CompareSeeds, .-CompareSeeds
	.section	.rodata
	.align	2
.LC534:
	.ascii	"2 * tophits->m <= NJ->nSeq\000"
	.align	2
.LC535:
	.ascii	"Top hits for %6d of %6d seqs (at seed %6d)\000"
	.align	2
.LC536:
	.ascii	"Skipping seed %d\012\000"
	.align	2
.LC537:
	.ascii	"Trying seed %d\012\000"
	.align	2
.LC538:
	.ascii	"Distance limit for close neighbors %f weight %f ung"
	.ascii	"apped %d\012\000"
	.align	2
.LC539:
	.ascii	"Near neighbor %d (rank %d weight %f ungapped %d %d)"
	.ascii	"\012\000"
	.align	2
.LC540:
	.ascii	"closeNode2 >= 0\000"
	.align	2
.LC541:
	.ascii	"l->hits != NULL\000"
	.align	2
.LC542:
	.ascii	"l->hits[0].j >= 0\000"
	.align	2
.LC543:
	.ascii	"l->hits[0].j < NJ->nSeq\000"
	.align	2
.LC544:
	.ascii	"l->hits[0].j != iNode\000"
	.align	2
.LC545:
	.ascii	"#Close neighbors among leaves: 1st-level %ld 2nd-le"
	.ascii	"vel %ld seeds %ld\012\000"
	.align	2
.LC546:
	.ascii	"Checking top hits for %6d of %6d seqs\000"
	.align	2
.LC547:
	.ascii	"nCheck > 0\000"
	.align	2
.LC548:
	.ascii	"nCheck <= lTarget->nHits\000"
	.align	2
.LC549:
	.ascii	"iWorst >= 0\000"
	.align	2
.LC550:
	.ascii	"bSuccess\000"
	.align	2
.LC551:
	.ascii	"Replaced %ld top hit entries\012\000"
	.align	2
.LC552:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	SetAllLeafTopHits
	.syntax unified
	.arm
	.fpu softvfp
	.type	SetAllLeafTopHits, %function
SetAllLeafTopHits:
	@ args = 0, pretend = 0, frame = 224
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #240
	str	r0, [fp, #-232]
	str	r1, [fp, #-236]
	ldr	r3, .L2858
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L2858+4
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2770
	ldr	r3, .L2858+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2772
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldr	r2, .L2858+12
	cmp	r3, r2
	ble	.L2772
	ldr	r2, .L2858+16
	ldr	r3, .L2858+20
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	b	.L2770
.L2772:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	ldr	r2, .L2858+24
	ldr	r3, .L2858+28
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	mov	r2, #0
	mov	r3, #1073741824
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
.L2770:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-188]
	mov	r3, #0
	str	r3, [fp, #-224]
	b	.L2773
.L2774:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L2858+156
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-232]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-224]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-224]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-188]
	add	r4, r2, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-224]
	add	r3, r3, #1
	str	r3, [fp, #-224]
.L2773:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldr	r2, [fp, #-224]
	cmp	r2, r3
	blt	.L2774
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-184]
	mov	r3, #0
	str	r3, [fp, #-224]
	b	.L2775
.L2776:
	ldr	r3, [fp, #-224]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-184]
	add	r3, r2, r3
	ldr	r2, [fp, #-224]
	str	r2, [r3]
	ldr	r3, [fp, #-224]
	add	r3, r3, #1
	str	r3, [fp, #-224]
.L2775:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldr	r2, [fp, #-224]
	cmp	r2, r3
	blt	.L2776
	ldr	r2, .L2858+32
	ldr	r3, [fp, #-232]
	str	r3, [r2]
	ldr	r2, .L2858+36
	ldr	r3, [fp, #-188]
	str	r3, [r2]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r3, .L2858+40
	mov	r2, #4
	ldr	r0, [fp, #-184]
	bl	qsort
	ldr	r3, .L2858+32
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L2858+36
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	cmp	r2, r3
	ble	.L2777
	ldr	r3, .L2858+200
	ldr	r2, .L2858+44
	ldr	r1, .L2858+212
	ldr	r0, .L2858+48
	bl	__assert_fail
.L2777:
	mov	r3, #0
	str	r3, [fp, #-216]
	mov	r3, #0
	str	r3, [fp, #-220]
	b	.L2778
.L2809:
	ldr	r3, [fp, #-220]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-184]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-220]
	cmp	r3, #0
	ble	.L2779
	ldr	r1, [fp, #-220]
	ldr	r3, .L2858+160
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L2779
	ldr	r3, [fp, #-232]
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-220]
	ldr	r1, [fp, #-216]
	ldr	r0, .L2858+52
	bl	ProgressReport
.L2779:
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L2780
	ldr	r3, .L2858+216
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2854
	ldr	r3, .L2858+220
	ldr	r3, [r3]
	ldr	r2, [fp, #-164]
	ldr	r1, .L2858+56
	mov	r0, r3
	bl	fprintf
	b	.L2782
.L2780:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-160]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-156]
	ldr	r3, .L2858+216
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2783
	ldr	r3, .L2858+220
	ldr	r3, [r3]
	ldr	r2, [fp, #-164]
	ldr	r1, .L2858+60
	mov	r0, r3
	bl	fprintf
.L2783:
	ldr	r3, [fp, #-232]
	ldr	r2, [r3]
	sub	r1, fp, #36
	ldr	r3, [fp, #-160]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-232]
	ldr	r0, [fp, #-164]
	bl	SetBestHit
	ldr	r3, [fp, #-232]
	ldr	r2, [r3]
	ldr	r3, [fp, #-236]
	ldr	r1, [r3]
	ldr	r3, [fp, #-236]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-160]
	ldr	r0, [fp, #-164]
	bl	SortSaveBestHits
	ldr	r3, [fp, #-216]
	add	r3, r3, #1
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, #20
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	ldr	r3, [r3, #12]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	mov	r3, #0
	str	r3, [fp, #-212]
	b	.L2784
.L2785:
	ldr	r2, [fp, #-212]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-160]
	add	r3, r3, r2
	ldr	r3, [r3, #8]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	str	r3, [fp, #-212]
.L2784:
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-212]
	cmp	r2, r3
	blt	.L2785
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2858+64
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L2858+68
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	mov	r2, #0
	mov	r3, #1073741824
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L2858+68
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, .L2858+216
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2786
	ldr	r3, .L2858+220
	ldr	r0, [r3]
	ldr	r3, [fp, #-232]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-188]
	add	r3, r1, r3
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [sp, #8]
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	ldr	r1, .L2858+72
	bl	fprintf
.L2786:
	mov	r3, #0
	str	r3, [fp, #-212]
	b	.L2787
.L2808:
	ldr	r2, [fp, #-212]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-160]
	add	r3, r3, r2
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L2855
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #12]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L2790
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #8]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L2792
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #8]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-232]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-188]
	add	r3, r1, r3
	ldr	r3, [r3]
	sub	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2d
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L2790
.L2792:
	mov	r3, #1
	b	.L2794
.L2790:
	mov	r3, #0
.L2794:
	strb	r3, [fp, #-226]
	ldrb	r3, [fp, #-226]
	and	r3, r3, #1
	strb	r3, [fp, #-226]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #12]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, .L2858+76
	ldr	r3, .L2858+80
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2795
	ldr	r3, [fp, #-152]
	ldr	r4, [r3, #8]	@ float
	ldr	r3, [fp, #-232]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-188]
	add	r3, r1, r3
	ldr	r3, [r3]
	sub	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	bic	r3, r3, #-2147483648
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, .L2858+84
	ldr	r3, .L2858+88
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2795
	ldr	r3, [fp, #-152]
	ldr	r4, [r3, #8]	@ float
	ldr	r3, [fp, #-232]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-188]
	add	r3, r1, r3
	ldr	r3, [r3]
	sub	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	bic	r3, r3, #-2147483648
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, .L2858+84
	ldr	r3, .L2858+88
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2795
	mov	r3, #1
	b	.L2799
.L2795:
	mov	r3, #0
.L2799:
	strb	r3, [fp, #-225]
	ldrb	r3, [fp, #-225]
	and	r3, r3, #1
	strb	r3, [fp, #-225]
	ldr	r3, .L2858+92
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2800
	ldr	r3, [fp, #-236]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-212]
	cmp	r2, r3
	bge	.L2800
	ldrb	r3, [fp, #-226]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L2801
	ldrb	r3, [fp, #-225]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2800
.L2801:
	ldr	r3, [fp, #-216]
	add	r3, r3, #1
	str	r3, [fp, #-216]
	ldr	r3, .L2858+96
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L2858+96
	str	r3, [r2]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-236]
	ldr	r3, [r3, #4]
	ldr	r1, .L2858+100
	ldr	r1, [r1]
	mul	r3, r1, r3
	cmp	r2, r3
	movlt	r3, r2
	movge	r3, r3
	str	r3, [fp, #-144]
	ldr	r2, [fp, #-144]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-140]
	ldr	r3, [fp, #-232]
	ldr	r1, [r3]
	mov	r3, #1
	str	r3, [sp, #8]
	ldr	r3, [fp, #-140]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-144]
	str	r3, [sp]
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-148]
	ldr	r0, [fp, #-232]
	bl	TransferBestHits
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-236]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-144]
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-148]
	bl	SortSaveBestHits
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-164]
	str	r2, [r3, #8]
	ldr	r2, [fp, #-144]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-140]
	bl	myfree
	str	r0, [fp, #-140]
	b	.L2789
.L2800:
	ldrb	r3, [fp, #-226]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L2802
	ldrb	r3, [fp, #-225]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L2802
	ldr	r3, .L2858+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2789
	ldr	r3, [fp, #-236]
	ldr	r3, [r3, #4]
	add	r3, r3, #1
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-212]
	cmp	r3, r2
	bge	.L2789
.L2802:
	ldr	r3, [fp, #-216]
	add	r3, r3, #1
	str	r3, [fp, #-216]
	ldr	r3, .L2858+104
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L2858+104
	str	r3, [r2]
	ldr	r3, .L2858+216
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2803
	ldr	r3, .L2858+220
	ldr	r4, [r3]
	ldr	r2, [fp, #-212]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-160]
	add	r3, r3, r2
	ldr	r3, [r3, #8]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-232]
	ldr	r0, [r1, #4]
	ldr	r1, [fp, #-164]
	lsl	r1, r1, #2
	ldr	ip, [fp, #-188]
	add	r1, ip, r1
	ldr	r1, [r1]
	sub	r1, r0, r1
	ldr	r0, [fp, #-232]
	ldr	ip, [r0, #4]
	ldr	r0, [fp, #-148]
	lsl	r0, r0, #2
	ldr	lr, [fp, #-188]
	add	r0, lr, r0
	ldr	r0, [r0]
	sub	r0, ip, r0
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	stm	sp, {r2-r3}
	ldr	r3, [fp, #-212]
	ldr	r2, [fp, #-148]
	ldr	r1, .L2858+108
	mov	r0, r4
	bl	fprintf
.L2803:
	ldr	r3, [fp, #-232]
	ldr	r1, [r3]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r2, #1
	str	r2, [sp, #8]
	ldr	r2, [fp, #-156]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-148]
	ldr	r0, [fp, #-232]
	bl	TransferBestHits
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-236]
	ldr	r1, [r3]
	ldr	r3, [fp, #-236]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-156]
	ldr	r0, [fp, #-148]
	bl	SortSaveBestHits
	mov	r3, #0
	str	r3, [fp, #-208]
	b	.L2804
.L2807:
	ldr	r2, [fp, #-208]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-156]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	bge	.L2805
	ldr	r3, .L2858+200
	ldr	r2, .L2858+112
	ldr	r1, .L2858+212
	ldr	r0, .L2858+116
	bl	__assert_fail
.L2805:
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L2806
	ldr	r3, .L2858+96
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L2858+96
	str	r3, [r2]
	ldr	r3, [fp, #-216]
	add	r3, r3, #1
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-236]
	ldr	r3, [r3, #4]
	ldr	r1, .L2858+100
	ldr	r1, [r1]
	mul	r3, r1, r3
	cmp	r2, r3
	movlt	r3, r2
	movge	r3, r3
	str	r3, [fp, #-132]
	ldr	r2, [fp, #-132]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-128]
	ldr	r3, [fp, #-232]
	ldr	r1, [r3]
	mov	r3, #1
	str	r3, [sp, #8]
	ldr	r3, [fp, #-128]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-132]
	str	r3, [sp]
	ldr	r3, [fp, #-156]
	ldr	r2, [fp, #-136]
	ldr	r0, [fp, #-232]
	bl	TransferBestHits
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-236]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-132]
	ldr	r1, [fp, #-128]
	ldr	r0, [fp, #-136]
	bl	SortSaveBestHits
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-148]
	str	r2, [r3, #8]
	ldr	r2, [fp, #-132]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	myfree
	str	r0, [fp, #-128]
.L2806:
	ldr	r3, [fp, #-208]
	add	r3, r3, #1
	str	r3, [fp, #-208]
.L2804:
	ldr	r3, [fp, #-236]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-208]
	cmp	r2, r3
	bge	.L2789
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-208]
	cmp	r2, r3
	blt	.L2807
	b	.L2789
.L2855:
	nop
.L2789:
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	str	r3, [fp, #-212]
.L2787:
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	ldr	r2, [fp, #-212]
	cmp	r2, r3
	blt	.L2808
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-160]
	bl	myfree
	str	r0, [fp, #-160]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-156]
	bl	myfree
	str	r0, [fp, #-156]
	b	.L2782
.L2854:
	nop
.L2782:
	ldr	r3, [fp, #-220]
	add	r3, r3, #1
	str	r3, [fp, #-220]
.L2778:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldr	r2, [fp, #-220]
	cmp	r2, r3
	blt	.L2809
	mov	r3, #0
	str	r3, [fp, #-224]
	b	.L2810
.L2815:
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-224]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L2811
	ldr	r3, .L2858+200
	ldr	r2, .L2858+120
	ldr	r1, .L2858+212
	ldr	r0, .L2858+124
	bl	__assert_fail
.L2811:
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #4]
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L2812
	ldr	r3, .L2858+200
	ldr	r2, .L2858+128
	ldr	r1, .L2858+212
	ldr	r0, .L2858+132
	bl	__assert_fail
.L2812:
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #4]
	ldr	r2, [r3]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L2813
	ldr	r3, .L2858+200
	ldr	r2, .L2858+136
	ldr	r1, .L2858+212
	ldr	r0, .L2858+140
	bl	__assert_fail
.L2813:
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #4]
	ldr	r3, [r3]
	ldr	r2, [fp, #-224]
	cmp	r2, r3
	bne	.L2814
	ldr	r3, .L2858+200
	ldr	r2, .L2858+144
	ldr	r1, .L2858+212
	ldr	r0, .L2858+148
	bl	__assert_fail
.L2814:
	ldr	r3, [fp, #-168]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-224]
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r2, r1
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-224]
	add	r3, r3, #1
	str	r3, [fp, #-224]
.L2810:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldr	r2, [fp, #-224]
	cmp	r2, r3
	blt	.L2815
	ldr	r3, .L2858+216
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L2816
	ldr	r3, .L2858+220
	ldr	r0, [r3]
	ldr	r3, .L2858+104
	ldr	r1, [r3]
	ldr	r3, .L2858+96
	ldr	ip, [r3]
	ldr	r3, [fp, #-232]
	ldr	r2, [r3]
	ldr	r3, .L2858+104
	ldr	r3, [r3]
	sub	r2, r2, r3
	ldr	r3, .L2858+96
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [sp]
	mov	r3, ip
	mov	r2, r1
	ldr	r1, .L2858+152
	bl	fprintf
.L2816:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-188]
	bl	myfree
	str	r0, [fp, #-188]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-184]
	bl	myfree
	str	r0, [fp, #-184]
	mov	r3, #0
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	ble	.L2817
	ldr	r3, [fp, #-236]
	ldr	r3, [r3, #4]
	b	.L2818
.L2859:
	.align	2
.L2858:
	.word	.LC552
	.word	tophitsClose
	.word	fastest
	.word	49999
	.word	2061584302
	.word	1072672276
	.word	-17155601
	.word	1072049730
	.word	CompareSeedNJ
	.word	CompareSeedGaps
	.word	CompareSeeds
	.word	7672
	.word	.LC534
	.word	.LC535
	.word	.LC536
	.word	.LC537
	.word	1074266112
	.word	1072693248
	.word	.LC538
	.word	-1598689907
	.word	1051772663
	.word	-1998362383
	.word	1055193269
	.word	useTopHits2nd
	.word	nClose2Used
	.word	tophits2Safety
	.word	nCloseUsed
	.word	.LC539
	.word	7777
	.word	.LC540
	.word	7803
	.word	.LC541
	.word	7804
	.word	.LC542
	.word	7805
	.word	.LC543
	.word	7806
	.word	.LC544
	.word	.LC545
	.word	1071644672
	.word	1374389535
	.word	.LC546
	.word	7837
	.word	.LC547
	.word	7838
	.word	.LC548
	.word	2025163840
	.word	-1005211875
	.word	7863
	.word	.LC549
	.word	__PRETTY_FUNCTION__.10526
	.word	7870
	.word	.LC550
	.word	.LC134
	.word	verbose
	.word	stderr
	.word	.LC551
	.word	.LC552
.L2817:
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sqrt
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2858+156
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
.L2818:
	str	r3, [fp, #-180]
	mov	r3, #0
	str	r3, [fp, #-224]
	b	.L2819
.L2843:
	ldr	r1, [fp, #-224]
	ldr	r3, .L2858+160
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L2820
	ldr	r3, [fp, #-224]
	add	r1, r3, #1
	ldr	r3, [fp, #-232]
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, .L2858+164
	bl	ProgressReport
.L2820:
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-224]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-176]
	mov	r3, #0
	str	r3, [fp, #-200]
	b	.L2821
.L2842:
	ldr	r3, [fp, #-176]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-200]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r0, fp, #76
	ldm	r3, {r2, r3}
	ldr	r1, [fp, #-224]
	bl	HitToBestHit
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	sub	r2, fp, #76
	mov	r1, r3
	ldr	r0, [fp, #-232]
	bl	SetCriterion
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-180]
	cmp	r3, #0
	bgt	.L2822
	ldr	r3, .L2858+200
	ldr	r2, .L2858+168
	ldr	r1, .L2858+212
	ldr	r0, .L2858+172
	bl	__assert_fail
.L2822:
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	ldr	r2, [fp, #-180]
	cmp	r2, r3
	ble	.L2823
	ldr	r3, .L2858+200
	ldr	r2, .L2858+176
	ldr	r1, .L2858+212
	ldr	r0, .L2858+180
	bl	__assert_fail
.L2823:
	ldr	r1, [fp, #-72]
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-180]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r0, fp, #56
	ldm	r3, {r2, r3}
	bl	HitToBestHit
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	sub	r2, fp, #56
	mov	r1, r3
	ldr	r0, [fp, #-232]
	bl	SetCriterion
	ldr	r3, [fp, #-40]	@ float
	ldr	r2, [fp, #-60]	@ float
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L2856
	mov	r3, #0
	strb	r3, [fp, #-228]
	mov	r3, #0
	str	r3, [fp, #-196]
	b	.L2827
.L2830:
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-196]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-224]
	cmp	r2, r3
	bne	.L2828
	mov	r3, #1
	strb	r3, [fp, #-228]
.L2828:
	ldr	r3, [fp, #-196]
	add	r3, r3, #1
	str	r3, [fp, #-196]
.L2827:
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	ldr	r2, [fp, #-196]
	cmp	r2, r3
	bge	.L2829
	ldrb	r3, [fp, #-228]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L2830
.L2829:
	ldrb	r3, [fp, #-228]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L2826
	mvn	r3, #0
	str	r3, [fp, #-192]
	ldr	r2, .L2858+184
	ldr	r3, .L2858+188
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	mov	r3, #0
	str	r3, [fp, #-196]
	b	.L2832
.L2835:
	ldr	r1, [fp, #-72]
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-196]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r0, fp, #36
	ldm	r3, {r2, r3}
	bl	HitToBestHit
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	sub	r2, fp, #36
	mov	r1, r3
	ldr	r0, [fp, #-232]
	bl	SetCriterion
	ldr	r3, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2833
	ldr	r3, [fp, #-196]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
.L2833:
	ldr	r3, [fp, #-196]
	add	r3, r3, #1
	str	r3, [fp, #-196]
.L2832:
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	ldr	r2, [fp, #-196]
	cmp	r2, r3
	blt	.L2835
	ldr	r3, [fp, #-60]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2826
	ldr	r3, [fp, #-192]
	cmp	r3, #0
	bge	.L2837
	ldr	r3, .L2858+200
	ldr	r2, .L2858+192
	ldr	r1, .L2858+212
	ldr	r0, .L2858+196
	bl	__assert_fail
.L2837:
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r2, [fp, #-224]
	str	r2, [r3]
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r2, [fp, #-64]	@ float
	str	r2, [r3, #4]	@ float
	ldr	r3, [fp, #-204]
	add	r3, r3, #1
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-232]
	ldr	r1, [r3]
	ldr	r2, [fp, #-72]
	sub	r3, fp, #36
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-236]
	ldr	r0, [fp, #-232]
	bl	GetVisible
	mov	r3, r0
	strb	r3, [fp, #-227]
	ldrb	r3, [fp, #-227]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L2838
	ldr	r3, .L2858+200
	ldr	r2, .L2858+204
	ldr	r1, .L2858+212
	ldr	r0, .L2858+208
	bl	__assert_fail
.L2838:
	ldr	r3, [fp, #-60]	@ float
	ldr	r2, [fp, #-20]	@ float
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2826
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #3
	add	r1, r2, r3
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r2, r1
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	b	.L2826
.L2856:
	nop
.L2826:
	ldr	r3, [fp, #-200]
	add	r3, r3, #1
	str	r3, [fp, #-200]
.L2821:
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-180]
	cmp	r2, r3
	bge	.L2841
	ldr	r3, [fp, #-176]
	ldr	r3, [r3]
	ldr	r2, [fp, #-200]
	cmp	r2, r3
	blt	.L2842
.L2841:
	ldr	r3, [fp, #-224]
	add	r3, r3, #1
	str	r3, [fp, #-224]
.L2819:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldr	r2, [fp, #-224]
	cmp	r2, r3
	blt	.L2843
	ldr	r3, .L2858+216
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L2857
	ldr	r3, .L2858+220
	ldr	r3, [r3]
	ldr	r2, [fp, #-204]
	ldr	r1, .L2858+224
	mov	r0, r3
	bl	fprintf
.L2857:
	nop
	ldr	r3, .L2858+228
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2845
	bl	__stack_chk_fail
.L2845:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	SetAllLeafTopHits, .-SetAllLeafTopHits
	.section	.rodata
	.align	2
.LC553:
	.ascii	"iNode >= 0\000"
	.align	2
.LC554:
	.ascii	"NJ->parent[iNode] < 0\000"
	.align	2
.LC555:
	.ascii	"l->nHits > 0\000"
	.align	2
.LC556:
	.ascii	"bestjoin->j >= 0\000"
	.align	2
.LC557:
	.ascii	"bestjoin->i == iNode\000"
	.align	2
.LC558:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	GetBestFromTopHits
	.syntax unified
	.arm
	.fpu softvfp
	.type	GetBestFromTopHits, %function
GetBestFromTopHits:
	@ args = 4, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-56]
	ldr	r3, .L2875
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bge	.L2861
	ldr	r3, .L2875+4
	ldr	r2, .L2875+8
	ldr	r1, .L2875+12
	ldr	r0, .L2875+16
	bl	__assert_fail
.L2861:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L2862
	ldr	r3, .L2875+4
	ldr	r2, .L2875+20
	ldr	r1, .L2875+12
	ldr	r0, .L2875+24
	bl	__assert_fail
.L2862:
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L2863
	ldr	r3, .L2875+4
	ldr	r2, .L2875+28
	ldr	r1, .L2875+12
	ldr	r0, .L2875+32
	bl	__assert_fail
.L2863:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L2864
	ldr	r3, .L2875+4
	ldr	r2, .L2875+36
	ldr	r1, .L2875+12
	ldr	r0, .L2875+40
	bl	__assert_fail
.L2864:
	ldr	r3, .L2875+44
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2865
	ldr	r2, [fp, #-48]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-44]
	bl	SetOutDistance
.L2865:
	ldr	r3, [fp, #-56]
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	mvn	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-56]
	ldr	r2, .L2875+48
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-56]
	ldr	r2, .L2875+48
	str	r2, [r3, #16]	@ float
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L2866
.L2869:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r0, fp, #28
	ldm	r3, {r2, r3}
	ldr	r1, [fp, #-40]
	bl	HitToBestHit
	sub	r2, fp, #28
	mov	r3, #1
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-44]
	bl	UpdateBestHit
	mov	r3, r0
	cmp	r3, #0
	beq	.L2867
	sub	r3, fp, #28
	mov	r2, r3
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-44]
	bl	SetCriterion
	ldr	r2, [fp, #-12]	@ float
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2867
	ldr	r3, [fp, #-56]
	mov	lr, r3
	sub	ip, fp, #28
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldr	r3, [ip]
	str	r3, [lr]
.L2867:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L2866:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L2869
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bge	.L2870
	ldr	r3, .L2875+4
	ldr	r2, .L2875+52
	ldr	r1, .L2875+12
	ldr	r0, .L2875+56
	bl	__assert_fail
.L2870:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	beq	.L2874
	ldr	r3, .L2875+4
	ldr	r2, .L2875+60
	ldr	r1, .L2875+12
	ldr	r0, .L2875+64
	bl	__assert_fail
.L2874:
	nop
	ldr	r3, .L2875
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2872
	bl	__stack_chk_fail
.L2872:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2876:
	.align	2
.L2875:
	.word	.LC558
	.word	__PRETTY_FUNCTION__.10599
	.word	7888
	.word	.LC134
	.word	.LC553
	.word	7889
	.word	.LC554
	.word	7891
	.word	.LC555
	.word	7892
	.word	.LC541
	.word	fastest
	.word	1621981420
	.word	7911
	.word	.LC556
	.word	7912
	.word	.LC557
	.size	GetBestFromTopHits, .-GetBestFromTopHits
	.align	2
	.global	ActiveAncestor
	.syntax unified
	.arm
	.fpu softvfp
	.type	ActiveAncestor, %function
ActiveAncestor:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L2880
	ldr	r3, [fp, #-12]
	b	.L2879
.L2881:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L2880:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L2881
	ldr	r3, [fp, #-12]
.L2879:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ActiveAncestor, .-ActiveAncestor
	.align	2
	.global	UpdateBestHit
	.syntax unified
	.arm
	.fpu softvfp
	.type	UpdateBestHit, %function
UpdateBestHit:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	strb	r3, [fp, #-25]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	ActiveAncestor
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	ActiveAncestor
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	blt	.L2883
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	blt	.L2883
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bne	.L2884
.L2883:
	ldr	r3, [fp, #-24]
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	mvn	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-24]
	ldr	r2, .L2889
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-24]
	ldr	r2, .L2889
	str	r2, [r3, #16]	@ float
	mov	r3, #0
	b	.L2885
.L2884:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bne	.L2886
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	beq	.L2887
.L2886:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2888
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	SetDistCriterion
	b	.L2887
.L2888:
	ldr	r3, [fp, #-24]
	ldr	r2, .L2889+4
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-24]
	ldr	r2, .L2889
	str	r2, [r3, #16]	@ float
.L2887:
	mov	r3, #1
.L2885:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2890:
	.align	2
.L2889:
	.word	1621981420
	.word	-525502228
	.size	UpdateBestHit, .-UpdateBestHit
	.section	.rodata
	.align	2
.LC559:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	GetVisible
	.syntax unified
	.arm
	.fpu softvfp
	.type	GetVisible, %function
GetVisible:
	@ args = 4, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #60
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-40]
	ldr	r3, .L2898
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	blt	.L2892
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L2893
.L2892:
	mov	r3, #0
	b	.L2894
.L2893:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #3
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L2895
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L2896
.L2895:
	mov	r3, #0
	b	.L2894
.L2896:
	ldr	r4, [fp, #-40]
	sub	r0, fp, #68
	ldr	r3, [fp, #-20]
	ldm	r3, {r2, r3}
	ldr	r1, [fp, #-36]
	bl	HitToBestHit
	mov	lr, r4
	sub	ip, fp, #68
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldr	r3, [ip]
	str	r3, [lr]
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	SetCriterion
	mov	r3, #1
.L2894:
	ldr	r2, .L2898
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L2897
	bl	__stack_chk_fail
.L2897:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L2899:
	.align	2
.L2898:
	.word	.LC559
	.size	GetVisible, .-GetVisible
	.section	.rodata
	.align	2
.LC560:
	.ascii	"nUnique < nCombined\000"
	.align	2
.LC561:
	.ascii	"hit->j >= 0 && NJ->parent[hit->j] < 0\000"
	.text
	.align	2
	.global	UniqueBestHits
	.syntax unified
	.arm
	.fpu softvfp
	.type	UniqueBestHits, %function
UniqueBestHits:
	@ args = 4, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L2901
.L2902:
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	mov	r3, #0
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	UpdateBestHit
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L2901:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	blt	.L2902
	ldr	r1, [fp, #-52]
	ldr	r3, .L2923
	mov	r2, #20
	ldr	r0, [fp, #-48]
	bl	qsort
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-32]
	mvn	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L2903
.L2911:
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L2921
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	blt	.L2921
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	blt	.L2907
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L2907
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	beq	.L2922
.L2907:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	blt	.L2908
	ldr	r3, .L2923+4
	ldr	r2, .L2923+8
	ldr	r1, .L2923+12
	ldr	r0, .L2923+16
	bl	__assert_fail
.L2908:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	blt	.L2909
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L2919
.L2909:
	ldr	r3, .L2923+4
	ldr	r2, .L2923+20
	ldr	r1, .L2923+12
	ldr	r0, .L2923+24
	bl	__assert_fail
.L2919:
	ldr	r3, [fp, #-32]
	add	r2, r3, #1
	str	r2, [fp, #-32]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r2, r3, r2
	ldr	r3, [fp, #-16]
	mov	ip, r2
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-28]
	b	.L2906
.L2921:
	nop
	b	.L2906
.L2922:
	nop
.L2906:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L2903:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	blt	.L2911
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L2912
.L2916:
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2920
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	SetDistCriterion
	b	.L2915
.L2920:
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	SetCriterion
.L2915:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L2912:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L2916
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2924:
	.align	2
.L2923:
	.word	CompareHitsByIJ
	.word	__PRETTY_FUNCTION__.10647
	.word	7986
	.word	.LC134
	.word	.LC560
	.word	7987
	.word	.LC561
	.size	UniqueBestHits, .-UniqueBestHits
	.section	.rodata
	.align	2
.LC562:
	.ascii	"NJ->child[newnode].nChild == 2\000"
	.align	2
.LC563:
	.ascii	"lNew->hits == NULL\000"
	.align	2
.LC564:
	.ascii	"lChild[i]->hits != NULL && lChild[i]->nHits > 0\000"
	.align	2
.LC565:
	.ascii	"2ndlevel\000"
	.align	2
.LC566:
	.ascii	"1stlevel\000"
	.align	2
.LC567:
	.ascii	"Top hits for %d from combined %d nActive=%d tophits"
	.ascii	"age %d %s\012\000"
	.align	2
.LC568:
	.ascii	"lSource->hitSource < 0\000"
	.align	2
.LC569:
	.ascii	"lSource->nHits > 0\000"
	.align	2
.LC570:
	.ascii	"iMerge == nMerge\000"
	.align	2
.LC571:
	.ascii	"nUnique > 0\000"
	.align	2
.LC572:
	.ascii	"Top hits for %d from children and source %d's %d hi"
	.ascii	"ts, nUnique %d\012\000"
	.align	2
.LC573:
	.ascii	"nSave>0\000"
	.align	2
.LC574:
	.ascii	"Combined %d ops so far %ld\012\000"
	.align	2
.LC575:
	.ascii	"lNew->hits != NULL\000"
	.align	2
.LC576:
	.ascii	"Top hits for %d by refresh (%d unique age %d) nActi"
	.ascii	"ve=%d\012\000"
	.align	2
.LC577:
	.ascii	"2 * tophits->m <= NJ->maxnode\000"
	.align	2
.LC578:
	.ascii	"iNode>=0\000"
	.align	2
.LC579:
	.ascii	"nHitsOld <= tophits->m\000"
	.align	2
.LC580:
	.ascii	"nNewHits > 0\000"
	.align	2
.LC581:
	.ascii	"nUnique2 > 0\000"
	.align	2
.LC582:
	.ascii	"New top-hit list for %d profile-ops %ld (out-ops %l"
	.ascii	"d): source %d age %d members \000"
	.align	2
.LC583:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	TopHitJoin
	.syntax unified
	.arm
	.fpu softvfp
	.type	TopHitJoin, %function
TopHitJoin:
	@ args = 0, pretend = 0, frame = 160
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #180
	str	r0, [fp, #-160]
	str	r1, [fp, #-164]
	str	r2, [fp, #-168]
	str	r3, [fp, #-172]
	ldr	r3, .L2991
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L2991+4
	ldr	r3, [r3]
	str	r3, [fp, #-112]
	ldr	r3, .L2991+8
	ldr	r3, [r3]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-164]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L2926
	ldr	r3, .L2991+12
	ldr	r2, .L2991+16
	ldr	r1, .L2991+20
	ldr	r0, .L2991+24
	bl	__assert_fail
.L2926:
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L2927
	ldr	r3, .L2991+12
	ldr	r2, .L2991+28
	ldr	r1, .L2991+20
	ldr	r0, .L2991+32
	bl	__assert_fail
.L2927:
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L2928
.L2931:
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-164]
	ldr	r1, [r3, #88]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #4
	add	r1, r1, r3
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-12]
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-12]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L2929
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-12]
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L2987
.L2929:
	ldr	r3, .L2991+12
	ldr	r2, .L2991+36
	ldr	r1, .L2991+20
	ldr	r0, .L2991+40
	bl	__assert_fail
.L2987:
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L2928:
	ldr	r3, [fp, #-144]
	cmp	r3, #1
	ble	.L2931
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-100]
	ldr	r2, [fp, #-100]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-24]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3]
	ldr	r3, [fp, #-164]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-96]
	bl	HitsToBestHits
	ldr	r3, [fp, #-20]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r1, [r3]
	ldr	r3, [fp, #-164]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	ip, r3
	mov	r3, ip
	lsl	r3, r3, #2
	add	r3, r3, ip
	lsl	r3, r3, #2
	mov	ip, r3
	ldr	r3, [fp, #-96]
	add	r3, r3, ip
	bl	HitsToBestHits
	sub	r3, fp, #152
	str	r3, [sp]
	ldr	r3, [fp, #-100]
	ldr	r2, [fp, #-96]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	UniqueBestHits
	str	r0, [fp, #-140]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-136]
	ldr	r2, [fp, #-100]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-96]
	bl	myfree
	str	r0, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L2932
.L2933:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r3, [r3, #-12]
	ldr	r3, [r3]
	lsl	r1, r3, #3
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r0, fp, #12
	add	r3, r0, r3
	ldr	r4, [r3, #-12]
	mov	r0, r2
	bl	myfree
	mov	r3, r0
	str	r3, [r4, #4]
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-12]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L2932:
	ldr	r3, [fp, #-144]
	cmp	r3, #1
	ble	.L2933
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	add	r3, r2, r3
	add	r3, r3, #1
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	add	r2, r3, #1
	ldr	r3, [fp, #-104]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	ldr	r2, .L2991+44
	ldr	r3, .L2991+48
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2991+52
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	cmp	r3, #0
	ble	.L2934
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	ldr	r2, .L2991+44
	ldr	r3, .L2991+48
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2991+52
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L2935
.L2934:
	mov	r3, #1
.L2935:
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	blt	.L2936
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	blt	.L2936
	mov	r3, #1
	b	.L2937
.L2936:
	mov	r3, #0
.L2937:
	strb	r3, [fp, #-154]
	ldrb	r3, [fp, #-154]
	and	r3, r3, #1
	strb	r3, [fp, #-154]
	ldr	r3, [fp, #-168]
	sub	r2, r3, #1
	ldr	r3, [fp, #-152]
	cmp	r2, r3
	beq	.L2938
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	blt	.L2939
	ldrb	r3, [fp, #-154]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2940
	ldr	r3, [fp, #-172]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, .L2991+56
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2991+52
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L2941
.L2940:
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, .L2991+60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2991+52
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
.L2941:
	ldr	r2, [fp, #-152]
	cmp	r3, r2
	bgt	.L2939
.L2938:
	mov	r3, #1
	b	.L2942
.L2939:
	mov	r3, #0
.L2942:
	strb	r3, [fp, #-153]
	ldrb	r3, [fp, #-153]
	and	r3, r3, #1
	strb	r3, [fp, #-153]
	ldrb	r3, [fp, #-153]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2943
	ldr	r3, .L2991+188
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2943
	ldr	r3, .L2991+208
	ldr	r0, [r3]
	ldr	r1, [fp, #-152]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #12]
	ldrb	r2, [fp, #-154]	@ zero_extendqisi2
	cmp	r2, #0
	beq	.L2944
	ldr	r2, .L2991+64
	b	.L2945
.L2944:
	ldr	r2, .L2991+68
.L2945:
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-168]
	str	r3, [sp]
	mov	r3, r1
	ldr	r2, [fp, #-160]
	ldr	r1, .L2991+72
	bl	fprintf
.L2943:
	ldrb	r3, [fp, #-153]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L2946
	ldrb	r3, [fp, #-154]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2946
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	blt	.L2946
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, [fp, #-164]
	bl	ActiveAncestor
	str	r0, [fp, #-132]
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-160]
	cmp	r2, r3
	bne	.L2947
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, [fp, #-164]
	bl	ActiveAncestor
	str	r0, [fp, #-132]
.L2947:
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-160]
	cmp	r2, r3
	beq	.L2946
	ldr	r3, [fp, #-132]
	cmp	r3, #0
	blt	.L2946
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bge	.L2946
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	blt	.L2948
	ldr	r3, .L2991+12
	ldr	r2, .L2991+76
	ldr	r1, .L2991+20
	ldr	r0, .L2991+80
	bl	__assert_fail
.L2948:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L2949
	ldr	r3, .L2991+12
	ldr	r2, .L2991+84
	ldr	r1, .L2991+20
	ldr	r0, .L2991+88
	bl	__assert_fail
.L2949:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-152]
	add	r3, r2, r3
	str	r3, [fp, #-84]
	ldr	r2, [fp, #-84]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-80]
	ldr	r3, [fp, #-152]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-80]
	bl	memcpy
	ldr	r3, [fp, #-152]
	str	r3, [fp, #-128]
	ldr	r2, [fp, #-128]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	ldr	r2, [fp, #-160]
	str	r2, [r3]
	ldr	r2, [fp, #-128]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	ldr	r2, [fp, #-132]
	str	r2, [r3, #4]
	ldr	r2, [fp, #-128]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	mov	r2, r3
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	SetDistCriterion
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-88]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-88]
	ldr	r1, [r3]
	ldr	r2, [fp, #-128]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	ldr	r2, [fp, #-160]
	bl	HitsToBestHits
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L2950
.L2951:
	ldr	r2, [fp, #-128]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	mov	r2, r3
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	SetDistCriterion
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L2950:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	ldr	r2, [fp, #-144]
	cmp	r2, r3
	blt	.L2951
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	beq	.L2952
	ldr	r3, .L2991+12
	ldr	r2, .L2991+92
	ldr	r1, .L2991+20
	ldr	r0, .L2991+96
	bl	__assert_fail
.L2952:
	ldr	r2, [fp, #-136]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-140]
	bl	myfree
	str	r0, [fp, #-140]
	sub	r3, fp, #152
	str	r3, [sp]
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-80]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	UniqueBestHits
	str	r0, [fp, #-140]
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-136]
	ldr	r2, [fp, #-84]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	myfree
	str	r0, [fp, #-80]
	ldr	r3, [fp, #-152]
	cmp	r3, #0
	bgt	.L2953
	ldr	r3, .L2991+12
	ldr	r2, .L2991+100
	ldr	r1, .L2991+20
	ldr	r0, .L2991+104
	bl	__assert_fail
.L2953:
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, .L2991+60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L2991+52
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r2, r0
	ldr	r3, [fp, #-152]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	strb	r3, [fp, #-153]
	mov	r3, #0
	strb	r3, [fp, #-154]
	ldrb	r3, [fp, #-153]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2946
	ldr	r3, .L2991+188
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2946
	ldr	r3, .L2991+208
	ldr	r0, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	ldr	r2, [fp, #-152]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-132]
	ldr	r2, [fp, #-160]
	ldr	r1, .L2991+108
	bl	fprintf
.L2946:
	ldrb	r3, [fp, #-153]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2954
	ldrb	r3, [fp, #-154]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2955
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-104]
	str	r2, [r3, #8]
.L2955:
	ldrb	r3, [fp, #-154]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2956
	ldr	r3, [fp, #-172]
	ldr	r3, [r3, #4]
	b	.L2957
.L2956:
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
.L2957:
	ldr	r2, [fp, #-152]
	cmp	r3, r2
	movlt	r3, r3
	movge	r3, r2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bgt	.L2958
	ldr	r3, .L2991+12
	ldr	r2, .L2991+112
	ldr	r1, .L2991+20
	ldr	r0, .L2991+116
	bl	__assert_fail
.L2958:
	ldr	r3, .L2991+188
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2959
	ldr	r3, .L2991+208
	ldr	r0, [r3]
	ldr	r1, [fp, #-152]
	ldr	r3, .L2991+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-112]
	sub	r3, r2, r3
	mov	r2, r1
	ldr	r1, .L2991+120
	bl	fprintf
.L2959:
	ldr	r2, [fp, #-152]
	ldr	r3, [fp, #-172]
	str	r3, [sp]
	ldr	r3, [fp, #-48]
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-160]
	bl	SortSaveBestHits
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L2960
	ldr	r3, .L2991+12
	ldr	r2, .L2991+124
	ldr	r1, .L2991+20
	ldr	r0, .L2991+128
	bl	__assert_fail
.L2960:
	ldr	r3, [fp, #-104]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r2, r1
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #3
	add	r2, r2, r3
	ldr	r3, [fp, #-172]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-160]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	UpdateTopVisible
	ldr	r3, [fp, #-172]
	str	r3, [sp]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-140]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	UpdateVisible
	b	.L2961
.L2954:
	ldr	r3, .L2991+188
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2962
	ldr	r3, .L2991+208
	ldr	r0, [r3]
	ldr	r1, [fp, #-152]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-168]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r1
	ldr	r2, [fp, #-160]
	ldr	r1, .L2991+132
	bl	fprintf
.L2962:
	ldr	r3, .L2991+136
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L2991+136
	str	r3, [r2]
	ldr	r3, [fp, #-104]
	mov	r2, #0
	str	r2, [r3, #12]
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L2963
.L2966:
	ldr	r3, [fp, #-164]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L2964
	ldr	r3, .L2991+140
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2965
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-32]	@ float
	sub	r3, fp, #44
	mov	r2, r3
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	SetCriterion
	b	.L2964
.L2965:
	ldr	r2, [fp, #-168]
	ldr	r1, [fp, #-124]
	ldr	r0, [fp, #-164]
	bl	SetOutDistance
.L2964:
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L2963:
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-124]
	cmp	r2, r3
	blt	.L2966
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #28]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #28]
	cmp	r2, r3
	ble	.L2967
	ldr	r3, .L2991+12
	ldr	r2, .L2991+144
	ldr	r1, .L2991+20
	ldr	r0, .L2991+148
	bl	__assert_fail
.L2967:
	sub	r2, fp, #44
	ldr	r3, [fp, #-76]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-168]
	ldr	r1, [fp, #-164]
	ldr	r0, [fp, #-160]
	bl	SetBestHit
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #28]
	mov	r1, r3
	ldr	r3, .L2991+152
	mov	r2, #20
	ldr	r0, [fp, #-76]
	bl	qsort
	ldr	r3, [fp, #-164]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-172]
	ldr	r1, [r3]
	ldr	r3, [fp, #-172]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-76]
	ldr	r0, [fp, #-160]
	bl	SortSaveBestHits
	mov	r3, #0
	str	r3, [fp, #-120]
	b	.L2968
.L2982:
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-76]
	add	r3, r3, r2
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L2988
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-76]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bge	.L2971
	ldr	r3, .L2991+12
	ldr	r2, .L2991+156
	ldr	r1, .L2991+20
	ldr	r0, .L2991+160
	bl	__assert_fail
.L2971:
	ldr	r3, [fp, #-164]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L2989
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	ldr	r2, [fp, #-64]
	cmp	r2, r3
	ble	.L2973
	ldr	r3, .L2991+12
	ldr	r2, .L2991+164
	ldr	r1, .L2991+20
	ldr	r0, .L2991+168
	bl	__assert_fail
.L2973:
	ldr	r3, [fp, #-68]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-72]
	ldr	r1, [fp, #-64]
	bl	HitsToBestHits
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L2974
.L2975:
	ldr	r2, [fp, #-144]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	mov	r2, r3
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	SetCriterion
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L2974:
	ldr	r2, [fp, #-144]
	ldr	r3, [fp, #-64]
	cmp	r2, r3
	blt	.L2975
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-168]
	cmp	r2, r3
	bgt	.L2976
	ldr	r3, [fp, #-68]
	mvn	r2, #0
	str	r2, [r3, #8]
.L2976:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	blt	.L2977
	ldr	r3, [fp, #-172]
	ldr	r3, [r3, #4]
	b	.L2978
.L2977:
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
.L2978:
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	bgt	.L2979
	ldr	r3, .L2991+12
	ldr	r2, .L2991+172
	ldr	r1, .L2991+20
	ldr	r0, .L2991+176
	bl	__assert_fail
.L2979:
	ldr	r3, [fp, #-56]
	lsl	r1, r3, #1
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	str	r1, [sp]
	ldr	r3, [fp, #-76]
	ldr	r2, [fp, #-72]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	TransferBestHits
	ldr	r3, [fp, #-56]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-64]
	add	r2, r2, r3
	sub	r3, fp, #148
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-60]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	UniqueBestHits
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-148]
	cmp	r3, #0
	bgt	.L2980
	ldr	r3, .L2991+12
	ldr	r2, .L2991+180
	ldr	r1, .L2991+20
	ldr	r0, .L2991+184
	bl	__assert_fail
.L2992:
	.align	2
.L2991:
	.word	.LC583
	.word	profileOps
	.word	outprofileOps
	.word	__PRETTY_FUNCTION__.10663
	.word	8020
	.word	.LC134
	.word	.LC562
	.word	8022
	.word	.LC563
	.word	8029
	.word	.LC564
	.word	-17155601
	.word	1072049730
	.word	1071644672
	.word	tophits2Refresh
	.word	tophitsRefresh
	.word	.LC565
	.word	.LC566
	.word	.LC567
	.word	8101
	.word	.LC568
	.word	8102
	.word	.LC569
	.word	8117
	.word	.LC570
	.word	8127
	.word	.LC571
	.word	.LC572
	.word	8143
	.word	.LC573
	.word	.LC574
	.word	8148
	.word	.LC575
	.word	.LC576
	.word	nRefreshTopHits
	.word	fastest
	.word	8183
	.word	.LC577
	.word	CompareHitsByCriterion
	.word	8200
	.word	.LC578
	.word	8204
	.word	.LC579
	.word	8215
	.word	.LC580
	.word	8225
	.word	.LC581
	.word	verbose
	.word	profileOps
	.word	outprofileOps
	.word	.LC582
	.word	.LC193
	.word	stderr
	.word	.LC583
.L2980:
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-60]
	bl	myfree
	str	r0, [fp, #-60]
	ldr	r2, [fp, #-148]
	ldr	r3, [fp, #-172]
	str	r3, [sp]
	ldr	r3, [fp, #-56]
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-72]
	bl	SortSaveBestHits
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r2, r1
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-52]
	bl	myfree
	str	r0, [fp, #-52]
	b	.L2981
.L2988:
	nop
	b	.L2981
.L2989:
	nop
.L2981:
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
.L2968:
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	ldr	r2, [fp, #-120]
	cmp	r2, r3
	blt	.L2982
	ldr	r2, [fp, #-172]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	bl	ResetTopVisible
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #28]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-76]
	bl	myfree
	str	r0, [fp, #-76]
.L2961:
	ldr	r2, [fp, #-136]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-140]
	bl	myfree
	str	r0, [fp, #-140]
	ldr	r3, .L2991+188
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L2990
	ldr	r3, .L2991+208
	ldr	r0, [r3]
	ldr	r3, .L2991+192
	ldr	r2, [r3]
	ldr	r3, [fp, #-112]
	sub	ip, r2, r3
	ldr	r3, .L2991+196
	ldr	r2, [r3]
	ldr	r3, [fp, #-108]
	sub	r3, r2, r3
	ldr	r2, [fp, #-104]
	ldr	r2, [r2, #8]
	ldr	r1, [fp, #-104]
	ldr	r1, [r1, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, ip
	ldr	r2, [fp, #-160]
	ldr	r1, .L2991+200
	bl	fprintf
	mov	r3, #0
	str	r3, [fp, #-116]
	b	.L2984
.L2985:
	ldr	r3, .L2991+208
	ldr	r0, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L2991+204
	bl	fprintf
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	str	r3, [fp, #-116]
.L2984:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	ldr	r2, [fp, #-116]
	cmp	r2, r3
	blt	.L2985
	ldr	r3, .L2991+208
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L2990:
	nop
	ldr	r3, .L2991+212
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2986
	bl	__stack_chk_fail
.L2986:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	TopHitJoin, .-TopHitJoin
	.section	.rodata
	.align	2
.LC584:
	.ascii	"NJ->parent[hit->i] < 0\000"
	.align	2
.LC585:
	.ascii	"NewVisible %d %d %f\012\000"
	.align	2
.LC586:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	UpdateVisible
	.syntax unified
	.arm
	.fpu softvfp
	.type	UpdateVisible, %function
UpdateVisible:
	@ args = 4, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #76
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-80]
	ldr	r3, .L3008
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L2994
.L3004:
	ldr	r2, [fp, #-56]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3007
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L2997
	ldr	r3, .L3008+4
	ldr	r2, .L3008+8
	ldr	r1, .L3008+12
	ldr	r0, .L3008+16
	bl	__assert_fail
.L2997:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	blt	.L2998
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3006
.L2998:
	ldr	r3, .L3008+4
	ldr	r2, .L3008+20
	ldr	r1, .L3008+12
	ldr	r0, .L3008+24
	bl	__assert_fail
.L3006:
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #4]
	sub	r3, fp, #44
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-80]
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	GetVisible
	mov	r3, r0
	strb	r3, [fp, #-57]
	ldrb	r3, [fp, #-57]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L3000
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]	@ float
	ldr	r2, [fp, #-28]	@ float
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L2996
.L3000:
	ldrb	r3, [fp, #-57]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3003
	ldr	r3, .L3008+28
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L3008+28
	str	r3, [r2]
.L3003:
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #3
	add	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-52]
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	str	r2, [r3]
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-48]
	str	r2, [r3, #4]	@ float
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-80]
	str	r3, [sp]
	ldr	r3, [fp, #-48]
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	UpdateTopVisible
	ldr	r3, .L3008+32
	ldr	r3, [r3]
	cmp	r3, #5
	ble	.L2996
	ldr	r3, .L3008+36
	ldr	r4, [r3]
	ldr	r3, [fp, #-52]
	ldr	r5, [r3, #4]
	ldr	r3, [fp, #-48]
	ldr	r6, [r3]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r3, r6
	mov	r2, r5
	ldr	r1, .L3008+40
	mov	r0, r4
	bl	fprintf
	b	.L2996
.L3007:
	nop
.L2996:
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L2994:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	blt	.L3004
	nop
	ldr	r3, .L3008
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3005
	bl	__stack_chk_fail
.L3005:
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L3009:
	.align	2
.L3008:
	.word	.LC586
	.word	__PRETTY_FUNCTION__.10726
	.word	8263
	.word	.LC134
	.word	.LC584
	.word	8264
	.word	.LC561
	.word	nVisibleUpdate
	.word	verbose
	.word	stderr
	.word	.LC585
	.size	UpdateVisible, .-UpdateVisible
	.section	.rodata
	.align	2
.LC587:
	.ascii	"tophits != NULL\000"
	.align	2
.LC588:
	.ascii	"iNode >= 0 && NJ->parent[iNode] < 0 && iNode != iIn"
	.ascii	"\000"
	.align	2
.LC589:
	.ascii	"TopVisible replace %d=>%d with %d=>%d\012\000"
	.align	2
.LC590:
	.ascii	"Updated TopVisible: \000"
	.align	2
.LC591:
	.ascii	" %d=>%d:%.4f\000"
	.align	2
.LC592:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	UpdateTopVisible
	.syntax unified
	.arm
	.fpu softvfp
	.type	UpdateTopVisible, %function
UpdateTopVisible:
	@ args = 4, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #100
	str	r0, [fp, #-88]
	str	r1, [fp, #-92]
	str	r2, [fp, #-96]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-104]
	ldr	r3, .L3040
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	bne	.L3011
	ldr	r3, .L3040+4
	ldr	r2, .L3040+8
	ldr	r1, .L3040+12
	ldr	r0, .L3040+16
	bl	__assert_fail
.L3011:
	mov	r3, #0
	strb	r3, [fp, #-77]
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L3012
.L3017:
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	bne	.L3013
	mov	r3, #1
	strb	r3, [fp, #-77]
	b	.L3014
.L3013:
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	blt	.L3015
	ldr	r3, [fp, #-88]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3014
.L3015:
	mov	r3, #1
	strb	r3, [fp, #-77]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-96]
	str	r2, [r3]
.L3014:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L3012:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-76]
	cmp	r2, r3
	bge	.L3016
	ldrb	r3, [fp, #-77]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L3017
.L3016:
	mvn	r3, #0
	str	r3, [fp, #-72]
	ldr	r2, .L3040+20
	ldr	r3, .L3040+24
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldrb	r3, [fp, #-77]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L3018
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L3019
.L3026:
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	blt	.L3020
	ldr	r3, [fp, #-88]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L3020
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	bne	.L3038
.L3020:
	ldr	r3, .L3040+4
	ldr	r2, .L3040+28
	ldr	r1, .L3040+12
	ldr	r0, .L3040+32
	bl	__assert_fail
.L3038:
	sub	r3, fp, #44
	str	r3, [sp]
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-104]
	ldr	r1, [fp, #-92]
	ldr	r0, [fp, #-88]
	bl	GetVisible
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L3022
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-96]
	str	r2, [r3]
	mov	r3, #1
	strb	r3, [fp, #-77]
	b	.L3023
.L3022:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L3024
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-96]
	cmp	r2, r3
	bne	.L3024
	mov	r3, #1
	strb	r3, [fp, #-77]
	b	.L3023
.L3024:
	ldr	r3, [fp, #-28]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L3023
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-28]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
.L3023:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L3019:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-76]
	cmp	r2, r3
	bge	.L3018
	ldrb	r3, [fp, #-77]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L3026
.L3018:
	ldrb	r3, [fp, #-77]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L3027
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	blt	.L3027
	sub	r0, fp, #44
	ldr	r3, [fp, #-100]
	ldm	r3, {r2, r3}
	ldr	r1, [fp, #-96]
	bl	HitToBestHit
	sub	r3, fp, #44
	mov	r2, r3
	ldr	r1, [fp, #-92]
	ldr	r0, [fp, #-88]
	bl	SetCriterion
	ldr	r3, [fp, #-28]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3027
	ldr	r3, .L3040+36
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L3030
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	ldr	r3, .L3040+40
	ldr	r0, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r1
	ldr	r2, [fp, #-60]
	ldr	r1, .L3040+44
	bl	fprintf
.L3030:
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-96]
	str	r2, [r3]
.L3027:
	ldr	r3, .L3040+36
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L3039
	ldr	r3, .L3040+40
	ldr	r3, [r3]
	mov	r2, #20
	mov	r1, #1
	ldr	r0, .L3040+48
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L3032
.L3034:
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	blt	.L3033
	ldr	r3, [fp, #-88]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L3033
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r0, fp, #44
	ldm	r3, {r2, r3}
	ldr	r1, [fp, #-56]
	bl	HitToBestHit
	sub	r3, fp, #44
	mov	r2, r3
	ldr	r1, [fp, #-92]
	ldr	r0, [fp, #-88]
	bl	SetDistCriterion
	ldr	r3, .L3040+40
	ldr	r4, [r3]
	ldr	r5, [fp, #-44]
	ldr	r6, [fp, #-40]
	ldr	r3, [fp, #-28]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r3, r6
	mov	r2, r5
	ldr	r1, .L3040+52
	mov	r0, r4
	bl	fprintf
.L3033:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L3032:
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-76]
	cmp	r2, r3
	blt	.L3034
	ldr	r3, .L3040+40
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L3039:
	nop
	ldr	r3, .L3040
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3035
	bl	__stack_chk_fail
.L3035:
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L3041:
	.align	2
.L3040:
	.word	.LC592
	.word	__PRETTY_FUNCTION__.10740
	.word	8284
	.word	.LC134
	.word	.LC587
	.word	2025163840
	.word	-1005211875
	.word	8307
	.word	.LC588
	.word	verbose
	.word	stderr
	.word	.LC589
	.word	.LC590
	.word	.LC591
	.size	UpdateTopVisible, .-UpdateTopVisible
	.section	.rodata
	.align	2
.LC593:
	.ascii	"nVisible < nActive\000"
	.align	2
.LC594:
	.ascii	"nVisible > 0\000"
	.align	2
.LC595:
	.ascii	"top-hit search: nActive %d nVisible %d considering "
	.ascii	"up to %d items\012\000"
	.align	2
.LC596:
	.ascii	"Reset TopVisible: \000"
	.align	2
.LC597:
	.ascii	" %d=>%d\000"
	.align	2
.LC598:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ResetTopVisible
	.syntax unified
	.arm
	.fpu softvfp
	.type	ResetTopVisible, %function
ResetTopVisible:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	ldr	r3, .L3068
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r2, [fp, #-68]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L3043
.L3048:
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L3065
	sub	r3, fp, #28
	str	r3, [sp]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-72]
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	GetVisible
	mov	r3, r0
	cmp	r3, #0
	beq	.L3045
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	blt	.L3047
	ldr	r3, .L3068+4
	ldr	r2, .L3068+8
	ldr	r1, .L3068+12
	ldr	r0, .L3068+16
	bl	__assert_fail
.L3047:
	ldr	r3, [fp, #-60]
	add	r2, r3, #1
	str	r2, [fp, #-60]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r3, r2
	mov	lr, r3
	sub	ip, fp, #28
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldr	r3, [ip]
	str	r3, [lr]
	b	.L3045
.L3065:
	nop
.L3045:
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L3043:
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L3048
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	bgt	.L3049
	ldr	r3, .L3068+4
	ldr	r2, .L3068+20
	ldr	r1, .L3068+12
	ldr	r0, .L3068+24
	bl	__assert_fail
.L3049:
	ldr	r1, [fp, #-60]
	ldr	r3, .L3068+28
	mov	r2, #20
	ldr	r0, [fp, #-44]
	bl	qsort
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L3050
.L3051:
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L3050:
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	blt	.L3051
	ldr	r3, .L3068+32
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L3052
	ldr	r3, .L3068+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	str	r3, [sp]
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-68]
	ldr	r1, .L3068+40
	bl	fprintf
.L3052:
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L3053
.L3056:
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r3, r2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	beq	.L3054
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-48]
	add	r1, r3, #1
	str	r1, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-36]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r2, [fp, #-36]
	ldr	r2, [r2, #4]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r2, [fp, #-36]
	ldr	r2, [r2]
	str	r2, [r3]
.L3054:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L3053:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	bge	.L3057
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L3056
	b	.L3057
.L3058:
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-48]
	add	r1, r3, #1
	str	r1, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
.L3057:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L3058
	ldr	r2, [fp, #-68]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-44]
	bl	myfree
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	myfree
	ldr	r3, [fp, #-72]
	mov	r2, #0
	str	r2, [r3, #28]
	ldr	r3, .L3068+32
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L3066
	ldr	r3, .L3068+36
	ldr	r3, [r3]
	mov	r2, #18
	mov	r1, #1
	ldr	r0, .L3068+44
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L3060
.L3063:
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	blt	.L3067
	ldr	r3, .L3068+36
	ldr	r0, [r3]
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	ldr	r1, .L3068+48
	bl	fprintf
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L3060:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	blt	.L3063
	b	.L3062
.L3067:
	nop
.L3062:
	ldr	r3, .L3068+36
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L3066:
	nop
	ldr	r3, .L3068
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3064
	bl	__stack_chk_fail
.L3064:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3069:
	.align	2
.L3068:
	.word	.LC598
	.word	__PRETTY_FUNCTION__.10771
	.word	8363
	.word	.LC134
	.word	.LC593
	.word	8367
	.word	.LC594
	.word	CompareHitsByCriterion
	.word	verbose
	.word	stderr
	.word	.LC595
	.word	.LC596
	.word	.LC597
	.size	ResetTopVisible, .-ResetTopVisible
	.section	.rodata
	.align	2
.LC599:
	.ascii	"Resetting the top-visible list at nActive=%d\012\000"
	.align	2
.LC600:
	.ascii	"Expanding visible set by walking up to active nodes"
	.ascii	" at nActive=%d\012\000"
	.align	2
.LC601:
	.ascii	"newj >= 0 && newj < NJ->maxnodes && newj != iNode &"
	.ascii	"& NJ->parent[newj] < 0\000"
	.align	2
.LC602:
	.ascii	"Top-visible list size %d (nActive %d m %d)\012\000"
	.align	2
.LC603:
	.ascii	"iNodeBestCandidate >= 0 && NJ->parent[iNodeBestCand"
	.ascii	"idate] < 0\000"
	.align	2
.LC604:
	.ascii	"join->i >= 0 && NJ->parent[join->i] < 0\000"
	.align	2
.LC605:
	.ascii	"join->j >= 0 && NJ->parent[join->j] < 0\000"
	.align	2
.LC606:
	.ascii	"bestI.i == join->i\000"
	.align	2
.LC607:
	.ascii	"bestJ.i == join->j\000"
	.align	2
.LC608:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	TopHitNJSearch
	.syntax unified
	.arm
	.fpu softvfp
	.type	TopHitNJSearch, %function
TopHitNJSearch:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #140
	str	r0, [fp, #-136]
	str	r1, [fp, #-140]
	str	r2, [fp, #-144]
	str	r3, [fp, #-148]
	ldr	r3, .L3118
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-124]
	mvn	r3, #0
	str	r3, [fp, #-120]
	ldr	r2, .L3118+4
	ldr	r3, .L3118+8
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	mov	r3, #0
	str	r3, [fp, #-116]
	b	.L3071
.L3075:
	ldr	r3, [fp, #-144]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-96]
	sub	r3, fp, #60
	str	r3, [sp]
	ldr	r3, [fp, #-96]
	ldr	r2, [fp, #-144]
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-136]
	bl	GetVisible
	mov	r3, r0
	cmp	r3, #0
	beq	.L3072
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-120]
	cmp	r3, #0
	blt	.L3073
	ldr	r3, [fp, #-44]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3072
.L3073:
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-44]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
.L3072:
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	str	r3, [fp, #-116]
.L3071:
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-116]
	cmp	r2, r3
	blt	.L3075
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #28]
	add	r2, r3, #1
	ldr	r3, [fp, #-144]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #28]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-144]
	ldr	r3, [r3]
	cmp	r2, r3
	bgt	.L3076
	ldr	r2, [fp, #-124]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #20]
	cmp	r2, r3
	bge	.L3077
	ldr	r2, [fp, #-124]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-140]
	cmp	r2, r3
	ble	.L3077
.L3076:
	ldr	r3, .L3118+12
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L3078
	ldr	r3, .L3118+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-140]
	ldr	r1, .L3118+20
	mov	r0, r3
	bl	fprintf
.L3078:
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #28]
	cmp	r3, #2
	bgt	.L3079
	ldr	r3, .L3118+12
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L3080
	ldr	r3, .L3118+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-140]
	ldr	r1, .L3118+24
	mov	r0, r3
	bl	fprintf
.L3080:
	mov	r3, #0
	str	r3, [fp, #-112]
	b	.L3081
.L3089:
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L3116
	ldr	r3, [fp, #-144]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #3
	add	r3, r2, r3
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-136]
	bl	ActiveAncestor
	str	r0, [fp, #-108]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	blt	.L3083
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	ldr	r2, [fp, #-108]
	cmp	r2, r3
	beq	.L3083
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	bne	.L3084
	mov	r3, #0
	str	r3, [fp, #-108]
	b	.L3085
.L3086:
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
.L3085:
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L3086
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	beq	.L3086
.L3084:
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	blt	.L3087
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-108]
	cmp	r2, r3
	bge	.L3087
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	beq	.L3087
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3112
.L3087:
	ldr	r3, .L3118+28
	ldr	r2, .L3118+32
	ldr	r1, .L3118+36
	ldr	r0, .L3118+40
	bl	__assert_fail
.L3112:
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-56]
	ldr	r3, .L3118+44
	str	r3, [fp, #-52]	@ float
	ldr	r3, .L3118+44
	str	r3, [fp, #-48]	@ float
	ldr	r3, .L3118+44
	str	r3, [fp, #-44]	@ float
	sub	r3, fp, #60
	mov	r2, r3
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-136]
	bl	SetDistCriterion
	ldr	r3, [fp, #-100]
	ldr	r2, [fp, #-108]
	str	r2, [r3]
	ldr	r2, [fp, #-48]	@ float
	ldr	r3, [fp, #-100]
	str	r2, [r3, #4]	@ float
	b	.L3083
.L3116:
	nop
.L3083:
	ldr	r3, [fp, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-112]
.L3081:
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-112]
	cmp	r2, r3
	blt	.L3089
.L3079:
	ldr	r2, [fp, #-144]
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-136]
	bl	ResetTopVisible
	ldr	r3, [fp, #-148]
	ldr	r2, [fp, #-144]
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-136]
	bl	TopHitNJSearch
	b	.L3070
.L3077:
	ldr	r3, .L3118+12
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L3091
	ldr	r3, .L3118+16
	ldr	r0, [r3]
	ldr	r3, [fp, #-144]
	ldr	r3, [r3]
	str	r3, [sp]
	ldr	r3, [fp, #-140]
	ldr	r2, [fp, #-124]
	ldr	r1, .L3118+48
	bl	fprintf
.L3091:
	ldr	r3, [fp, #-120]
	cmp	r3, #0
	blt	.L3092
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3113
.L3092:
	ldr	r3, .L3118+28
	ldr	r2, .L3118+52
	ldr	r1, .L3118+36
	ldr	r0, .L3118+56
	bl	__assert_fail
.L3113:
	ldr	r3, [fp, #-148]
	str	r3, [sp]
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-144]
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-136]
	bl	GetVisible
	mov	r3, r0
	strb	r3, [fp, #-125]
	ldrb	r3, [fp, #-125]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L3094
	ldr	r3, .L3118+28
	ldr	r2, .L3118+60
	ldr	r1, .L3118+36
	ldr	r0, .L3118+64
	bl	__assert_fail
.L3094:
	ldr	r3, [fp, #-148]
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3095
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3114
.L3095:
	ldr	r3, .L3118+28
	ldr	r2, .L3118+68
	ldr	r1, .L3118+36
	ldr	r0, .L3118+72
	bl	__assert_fail
.L3114:
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	blt	.L3097
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3115
.L3097:
	ldr	r3, .L3118+28
	ldr	r2, .L3118+76
	ldr	r1, .L3118+36
	ldr	r0, .L3118+80
	bl	__assert_fail
.L3115:
	ldr	r3, .L3118+84
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3117
.L3099:
	mov	r3, #0
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-148]
	ldr	r0, [r3]
	sub	r3, fp, #80
	str	r3, [sp]
	ldr	r3, [fp, #-144]
	ldr	r2, [fp, #-140]
	ldr	r1, [fp, #-136]
	bl	GetBestFromTopHits
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L3100
	ldr	r3, .L3118+28
	ldr	r2, .L3118+88
	ldr	r1, .L3118+36
	ldr	r0, .L3118+92
	bl	__assert_fail
.L3100:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	beq	.L3101
	ldr	r2, [fp, #-64]	@ float
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3101
	mov	r3, #1
	str	r3, [fp, #-104]
	ldr	r3, .L3118+12
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L3103
	ldr	r3, .L3118+16
	ldr	r8, [r3]
	ldr	r3, [fp, #-148]
	ldr	r9, [r3]
	ldr	r3, [fp, #-148]
	ldr	r10, [r3, #4]
	ldr	r6, [fp, #-80]
	ldr	r7, [fp, #-76]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-64]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	str	r7, [sp, #4]
	str	r6, [sp]
	mov	r3, r10
	mov	r2, r9
	ldr	r1, .L3118+96
	mov	r0, r8
	bl	fprintf
.L3103:
	ldr	r3, [fp, #-148]
	mov	lr, r3
	sub	ip, fp, #80
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldr	r3, [ip]
	str	r3, [lr]
.L3101:
	ldr	r3, [fp, #-148]
	ldr	r0, [r3, #4]
	sub	r3, fp, #60
	str	r3, [sp]
	ldr	r3, [fp, #-144]
	ldr	r2, [fp, #-140]
	ldr	r1, [fp, #-136]
	bl	GetBestFromTopHits
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	beq	.L3104
	ldr	r3, .L3118+28
	ldr	r2, .L3118+100
	ldr	r1, .L3118+36
	ldr	r0, .L3118+104
	bl	__assert_fail
.L3104:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L3105
	ldr	r2, [fp, #-44]	@ float
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3105
	mov	r3, #1
	str	r3, [fp, #-104]
	ldr	r3, .L3118+12
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L3107
	ldr	r3, .L3118+16
	ldr	r8, [r3]
	ldr	r3, [fp, #-148]
	ldr	r9, [r3]
	ldr	r3, [fp, #-148]
	ldr	r10, [r3, #4]
	ldr	r6, [fp, #-60]
	ldr	r7, [fp, #-56]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-44]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r4, [sp, #8]
	str	r5, [sp, #12]
	str	r7, [sp, #4]
	str	r6, [sp]
	mov	r3, r10
	mov	r2, r9
	ldr	r1, .L3118+108
	mov	r0, r8
	bl	fprintf
.L3107:
	ldr	r3, [fp, #-148]
	mov	lr, r3
	sub	ip, fp, #60
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldr	r3, [ip]
	str	r3, [lr]
.L3105:
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	beq	.L3108
	ldr	r3, .L3118+112
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L3118+112
	str	r3, [r2]
.L3108:
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	bne	.L3099
	b	.L3070
.L3117:
	nop
.L3070:
	ldr	r3, .L3118
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3109
	bl	__stack_chk_fail
.L3109:
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3119:
	.align	2
.L3118:
	.word	.LC608
	.word	2025163840
	.word	1142271773
	.word	verbose
	.word	stderr
	.word	.LC599
	.word	.LC600
	.word	__PRETTY_FUNCTION__.10814
	.word	8473
	.word	.LC134
	.word	.LC601
	.word	-525502228
	.word	.LC602
	.word	8493
	.word	.LC603
	.word	8495
	.word	.LC550
	.word	8496
	.word	.LC604
	.word	8497
	.word	.LC605
	.word	fastest
	.word	8508
	.word	.LC606
	.word	.LC228
	.word	8520
	.word	.LC607
	.word	.LC229
	.word	nHillBetter
	.size	TopHitNJSearch, .-TopHitNJSearch
	.section	.rodata
	.align	2
.LC609:
	.ascii	"iNode < NJ->nSeq\000"
	.text
	.align	2
	.global	NGaps
	.syntax unified
	.arm
	.fpu softvfp
	.type	NGaps, %function
NGaps:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L3121
	ldr	r3, .L3126
	ldr	r2, .L3126+4
	ldr	r1, .L3126+8
	ldr	r0, .L3126+12
	bl	__assert_fail
.L3121:
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L3122
.L3124:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L3123
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L3123:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L3122:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L3124
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3127:
	.align	2
.L3126:
	.word	__PRETTY_FUNCTION__.10829
	.word	8534
	.word	.LC134
	.word	.LC609
	.size	NGaps, .-NGaps
	.align	2
	.global	CompareHitsByCriterion
	.syntax unified
	.arm
	.fpu softvfp
	.type	CompareHitsByCriterion, %function
CompareHitsByCriterion:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]	@ float
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3136
	mvn	r3, #0
	b	.L3131
.L3136:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]	@ float
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3137
	mov	r3, #1
	b	.L3131
.L3137:
	mov	r3, #0
.L3131:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	CompareHitsByCriterion, .-CompareHitsByCriterion
	.align	2
	.global	CompareHitsByIJ
	.syntax unified
	.arm
	.fpu softvfp
	.type	CompareHitsByIJ, %function
CompareHitsByIJ:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L3139
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	sub	r3, r2, r3
	b	.L3141
.L3139:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	sub	r3, r2, r3
.L3141:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	CompareHitsByIJ, .-CompareHitsByIJ
	.section	.rodata
	.align	2
.LC610:
	.ascii	"nIn > 0\000"
	.align	2
.LC611:
	.ascii	"nOut > 0\000"
	.align	2
.LC612:
	.ascii	"besthits[iBest].i == iNode\000"
	.align	2
.LC613:
	.ascii	"nSave > 0\000"
	.align	2
.LC614:
	.ascii	"iSave == nSave\000"
	.text
	.align	2
	.global	SortSaveBestHits
	.syntax unified
	.arm
	.fpu softvfp
	.type	SortSaveBestHits, %function
SortSaveBestHits:
	@ args = 4, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bgt	.L3143
	ldr	r3, .L3160
	ldr	r2, .L3160+4
	ldr	r1, .L3160+8
	ldr	r0, .L3160+12
	bl	__assert_fail
.L3143:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bgt	.L3144
	ldr	r3, .L3160
	ldr	r2, .L3160+16
	ldr	r1, .L3160+8
	ldr	r0, .L3160+20
	bl	__assert_fail
.L3144:
	ldr	r3, [fp, #4]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r1, [fp, #-48]
	ldr	r3, .L3160+24
	mov	r2, #20
	ldr	r0, [fp, #-44]
	bl	qsort
	mov	r3, #0
	str	r3, [fp, #-32]
	mvn	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L3145
.L3150:
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r3, r2
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3158
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r3, r2
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	beq	.L3148
	ldr	r3, .L3160
	mov	r2, #8576
	ldr	r1, .L3160+8
	ldr	r0, .L3160+28
	bl	__assert_fail
.L3148:
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	beq	.L3147
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	beq	.L3147
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	blt	.L3147
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-28]
	b	.L3147
.L3158:
	nop
.L3147:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L3145:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	bge	.L3149
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	blt	.L3150
.L3149:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bgt	.L3151
	ldr	r3, .L3160
	ldr	r2, .L3160+32
	ldr	r1, .L3160+8
	ldr	r0, .L3160+36
	bl	__assert_fail
.L3151:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3152
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	lsl	r3, r3, #3
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3]
.L3152:
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-20]
	mvn	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L3153
.L3156:
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	beq	.L3154
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	beq	.L3154
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	blt	.L3154
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-44]
	add	r2, r3, r2
	ldr	r3, [fp, #-16]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r2, [r2, #12]	@ float
	str	r2, [r3, #4]	@ float
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-28]
.L3154:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L3153:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	bge	.L3155
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L3156
.L3155:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	beq	.L3159
	ldr	r3, .L3160
	ldr	r2, .L3160+40
	ldr	r1, .L3160+8
	ldr	r0, .L3160+44
	bl	__assert_fail
.L3159:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3161:
	.align	2
.L3160:
	.word	__PRETTY_FUNCTION__.10854
	.word	8561
	.word	.LC134
	.word	.LC610
	.word	8562
	.word	.LC611
	.word	CompareHitsByCriterion
	.word	.LC612
	.word	8584
	.word	.LC613
	.word	8609
	.word	.LC614
	.size	SortSaveBestHits, .-SortSaveBestHits
	.align	2
	.global	TransferBestHits
	.syntax unified
	.arm
	.fpu softvfp
	.type	TransferBestHits, %function
TransferBestHits:
	@ args = 12, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bge	.L3163
	ldr	r3, .L3175
	ldr	r2, .L3175+4
	ldr	r1, .L3175+8
	ldr	r0, .L3175+12
	bl	__assert_fail
.L3163:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3164
	ldr	r3, .L3175
	ldr	r2, .L3175+16
	ldr	r1, .L3175+8
	ldr	r0, .L3175+20
	bl	__assert_fail
.L3164:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3165
.L3174:
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #8]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	ActiveAncestor
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]	@ float
	ldr	r3, [fp, #-8]
	str	r2, [r3, #16]	@ float
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	blt	.L3166
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bne	.L3167
.L3166:
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-8]
	ldr	r2, .L3175+24
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-8]
	ldr	r2, .L3175+28
	str	r2, [r3, #16]	@ float
	b	.L3168
.L3167:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L3169
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	beq	.L3170
.L3169:
	ldrb	r3, [fp, #12]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3171
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	SetDistCriterion
	b	.L3168
.L3171:
	ldr	r3, [fp, #-8]
	ldr	r2, .L3175+24
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-8]
	ldr	r2, .L3175+28
	str	r2, [r3, #16]	@ float
	b	.L3168
.L3170:
	ldrb	r3, [fp, #12]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3173
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	SetCriterion
	b	.L3168
.L3173:
	ldr	r3, [fp, #-8]
	ldr	r2, .L3175+28
	str	r2, [r3, #16]	@ float
.L3168:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3165:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L3174
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3176:
	.align	2
.L3175:
	.word	__PRETTY_FUNCTION__.10878
	.word	8619
	.word	.LC134
	.word	.LC553
	.word	8620
	.word	.LC554
	.word	-525502228
	.word	1621981420
	.size	TransferBestHits, .-TransferBestHits
	.align	2
	.global	HitsToBestHits
	.syntax unified
	.arm
	.fpu softvfp
	.type	HitsToBestHits, %function
HitsToBestHits:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3178
.L3179:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]	@ float
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]	@ float
	ldr	r3, [fp, #-8]
	ldr	r2, .L3180
	str	r2, [r3, #16]	@ float
	ldr	r3, [fp, #-8]
	ldr	r2, .L3180+4
	str	r2, [r3, #8]	@ float
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3178:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L3179
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L3181:
	.align	2
.L3180:
	.word	1621981420
	.word	-1082130432
	.size	HitsToBestHits, .-HitsToBestHits
	.align	2
	.global	HitToBestHit
	.syntax unified
	.arm
	.fpu softvfp
	.type	HitToBestHit, %function
HitToBestHit:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	sub	r1, fp, #44
	stm	r1, {r2, r3}
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-40]	@ float
	str	r3, [fp, #-12]	@ float
	ldr	r3, .L3184
	str	r3, [fp, #-8]	@ float
	ldr	r3, .L3184+4
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-32]
	mov	lr, r3
	sub	ip, fp, #24
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldr	r3, [ip]
	str	r3, [lr]
	ldr	r0, [fp, #-32]
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3185:
	.align	2
.L3184:
	.word	1621981420
	.word	-1082130432
	.size	HitToBestHit, .-HitToBestHit
	.align	2
	.global	OpenMPString
	.syntax unified
	.arm
	.fpu softvfp
	.type	OpenMPString, %function
OpenMPString:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L3188
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L3189:
	.align	2
.L3188:
	.word	.LC120
	.size	OpenMPString, .-OpenMPString
	.align	2
	.global	pnorm
	.syntax unified
	.arm
	.fpu softvfp
	.type	pnorm, %function
pnorm:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #80
	str	r0, [fp, #-100]
	str	r1, [fp, #-96]
	ldr	r2, .L3196
	ldr	r3, .L3196+4
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r2, .L3196+8
	ldr	r3, .L3196+12
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r2, .L3196+16
	ldr	r3, .L3196+20
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r2, .L3196+24
	ldr	r3, .L3196+28
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r2, .L3196+32
	ldr	r3, .L3196+36
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r2, .L3196+40
	ldr	r3, .L3196+44
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r2, .L3196+48
	ldr	r3, .L3196+52
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L3195
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L3196+56
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L3196+56
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r6, [fp, #-100]
	ldr	r3, [fp, #-96]
	eor	r7, r3, #-2147483648
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L3196+56
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	b	.L3193
.L3195:
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L3196+56
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L3196+56
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r4, [fp, #-100]
	ldr	r3, [fp, #-96]
	eor	r5, r3, #-2147483648
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
.L3193:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L3197:
	.align	2
.L3196:
	.word	982710508
	.word	1070887103
	.word	-441961893
	.word	-1076440592
	.word	39804520
	.word	1073512687
	.word	1324513488
	.word	-1073929251
	.word	-688641725
	.word	1073039565
	.word	410062862
	.word	1070442097
	.word	862313984
	.word	1071220805
	.word	1072693248
	.size	pnorm, .-pnorm
	.section	.rodata
	.align	2
.LC615:
	.ascii	"Out of memory\012\000"
	.text
	.align	2
	.global	mymalloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	mymalloc, %function
mymalloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L3199
	mov	r3, #0
	b	.L3200
.L3199:
	ldr	r0, [fp, #-16]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L3201
	ldr	r3, .L3202
	ldr	r3, [r3]
	mov	r2, #14
	mov	r1, #1
	ldr	r0, .L3202+4
	bl	fwrite
	mov	r0, #1
	bl	exit
.L3201:
	ldr	r3, .L3202+8
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, .L3202+8
	str	r2, [r3]
	ldr	r3, .L3202+12
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, .L3202+12
	str	r2, [r3]
	ldr	r3, [fp, #-8]
.L3200:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3203:
	.align	2
.L3202:
	.word	stderr
	.word	.LC615
	.word	szAllAlloc
	.word	mymallocUsed
	.size	mymalloc, .-mymalloc
	.align	2
	.global	mymemdup
	.syntax unified
	.arm
	.fpu softvfp
	.type	mymemdup, %function
mymemdup:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L3205
	mov	r3, #0
	b	.L3206
.L3205:
	ldr	r0, [fp, #-20]
	bl	mymalloc
	str	r0, [fp, #-8]
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	memcpy
	ldr	r3, [fp, #-8]
.L3206:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	mymemdup, .-mymemdup
	.section	.rodata
	.align	2
.LC616:
	.ascii	"Empty myrealloc\012\000"
	.text
	.align	2
	.global	myrealloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	myrealloc, %function
myrealloc:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	strb	r3, [fp, #-25]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L3208
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L3208
	ldr	r0, [fp, #-24]
	bl	mymalloc
	mov	r3, r0
	b	.L3209
.L3208:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L3210
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L3210
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L3211
.L3210:
	ldr	r3, .L3216
	ldr	r3, [r3]
	mov	r2, #16
	mov	r1, #1
	ldr	r0, .L3216+4
	bl	fwrite
	mov	r0, #1
	bl	exit
.L3211:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bne	.L3212
	ldr	r3, [fp, #-16]
	b	.L3209
.L3212:
	mov	r3, #0
	str	r3, [fp, #-8]
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3213
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-16]
	bl	mymemdup
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	myfree
	b	.L3214
.L3213:
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-16]
	bl	realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L3215
	ldr	r3, .L3216
	ldr	r3, [r3]
	mov	r2, #14
	mov	r1, #1
	ldr	r0, .L3216+8
	bl	fwrite
	mov	r0, #1
	bl	exit
.L3215:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	ldr	r2, .L3216+12
	ldr	r2, [r2]
	add	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L3216+12
	str	r2, [r3]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	ldr	r2, .L3216+16
	ldr	r2, [r2]
	add	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L3216+16
	str	r2, [r3]
.L3214:
	ldr	r3, [fp, #-8]
.L3209:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3217:
	.align	2
.L3216:
	.word	stderr
	.word	.LC616
	.word	.LC615
	.word	szAllAlloc
	.word	mymallocUsed
	.size	myrealloc, .-myrealloc
	.align	2
	.global	myfree
	.syntax unified
	.arm
	.fpu softvfp
	.type	myfree, %function
myfree:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L3219
	mov	r3, #0
	b	.L3220
.L3219:
	ldr	r0, [fp, #-8]
	bl	free
	ldr	r3, .L3221
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, .L3221
	str	r2, [r3]
	mov	r3, #0
.L3220:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3222:
	.align	2
.L3221:
	.word	mymallocUsed
	.size	myfree, .-myfree
	.align	2
	.global	brent
	.syntax unified
	.arm
	.fpu softvfp
	.type	brent, %function
brent:
	@ args = 64, pretend = 0, frame = 288
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #288
	str	r0, [fp, #-220]
	str	r1, [fp, #-216]
	str	r2, [fp, #-228]
	str	r3, [fp, #-224]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-188]
	str	r3, [fp, #-184]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	ldmib	fp, {r2-r3}
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3292
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	b	.L3226
.L3292:
	ldmib	fp, {r2-r3}
.L3226:
	str	r2, [fp, #-204]
	str	r3, [fp, #-200]
	ldmib	fp, {r2-r3}
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3293
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	b	.L3229
.L3293:
	ldmib	fp, {r2-r3}
.L3229:
	str	r2, [fp, #-196]
	str	r3, [fp, #-192]
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	add	r3, fp, #52
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	add	r3, fp, #60
	ldmia	r3, {r2-r3}
	add	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3294
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	add	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	ldmib	fp, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	add	r3, fp, #60
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	b	.L3232
.L3294:
	ldmib	fp, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	add	r3, fp, #60
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	sub	r3, fp, #220
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	add	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
.L3232:
	mov	r3, #1
	str	r3, [fp, #-208]
	b	.L3233
.L3278:
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L3307
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-132]
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-128]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-232]
	sub	r3, fp, #236
	ldmia	r3, {r2-r3}
	add	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r2, .L3307+4
	ldr	r3, .L3307+8
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-244]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-240]
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L3307
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #244
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L3234
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-252]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-248]
	sub	r3, fp, #252
	ldmia	r3, {r2-r3}
	add	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3295
.L3234:
	ldr	r1, [fp, #36]
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #40]
	stm	r1, {r2-r3}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	b	.L3237
.L3295:
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-120]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-256]
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3296
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3240
	ldr	r3, [fp, #-156]
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-152]
	eor	r3, r3, #-2147483648
	str	r3, [fp, #-304]
	sub	r4, fp, #308
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-156]
	str	r4, [fp, #-152]
.L3240:
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-56]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-312]
	sub	r4, fp, #316
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-60]
	str	r4, [fp, #-56]
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-156]
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-152]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-264]
	mov	r2, #0
	ldr	r3, .L3307
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-276]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-272]
	sub	r3, fp, #276
	ldmia	r3, {r2-r3}
	sub	r1, fp, #268
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	bne	.L3242
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L3242
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L3297
.L3242:
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L3298
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	b	.L3247
.L3298:
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
.L3247:
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r2, .L3307+12
	ldr	r3, .L3307+16
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-188]
	str	r3, [fp, #-184]
	b	.L3254
.L3297:
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-188]
	str	r3, [fp, #-184]
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3249
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3254
.L3249:
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L3299
	ldr	r6, [fp, #-84]
	ldr	r3, [fp, #-80]
	bic	r7, r3, #-2147483648
	b	.L3253
.L3299:
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-80]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-280]
	sub	r4, fp, #284
	ldmia	r4, {r3-r4}
	mov	r6, r3
	mov	r3, r4
	eor	r7, r3, #-2147483648
.L3253:
	str	r6, [fp, #-188]
	str	r7, [fp, #-184]
	b	.L3254
.L3296:
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L3300
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	b	.L3257
.L3300:
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
.L3257:
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r2, .L3307+12
	ldr	r3, .L3307+16
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-188]
	str	r3, [fp, #-184]
.L3254:
	ldr	r3, [fp, #-188]
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-184]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-288]
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L3301
	sub	r3, fp, #188
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	b	.L3260
.L3301:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #188
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L3302
	ldr	r8, [fp, #-84]
	ldr	r3, [fp, #-80]
	bic	r9, r3, #-2147483648
	b	.L3263
.L3302:
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-80]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-296]
	sub	r4, fp, #300
	ldmia	r4, {r3-r4}
	mov	r8, r3
	mov	r3, r4
	eor	r9, r3, #-2147483648
.L3263:
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
.L3260:
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #12]
	ldr	r2, [fp, #16]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	blx	r3
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L3303
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L3304
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-204]
	str	r3, [fp, #-200]
	b	.L3268
.L3304:
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-196]
	str	r3, [fp, #-192]
.L3268:
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	b	.L3269
.L3303:
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3305
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-204]
	str	r3, [fp, #-200]
	b	.L3272
.L3305:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-196]
	str	r3, [fp, #-192]
.L3272:
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L3273
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L3306
.L3273:
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	b	.L3269
.L3306:
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L3276
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	bne	.L3276
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L3269
.L3276:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
.L3269:
	ldr	r3, [fp, #-208]
	add	r3, r3, #1
	str	r3, [fp, #-208]
.L3233:
	ldr	r3, [fp, #-208]
	cmp	r3, #100
	ble	.L3278
	ldr	r1, [fp, #36]
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	sub	r1, fp, #132
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #40]
	stm	r1, {r2-r3}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
.L3237:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L3308:
	.align	2
.L3307:
	.word	1071644672
	.word	-640172613
	.word	1037794527
	.word	-2054437476
	.word	1071149601
	.size	brent, .-brent
	.section	.rodata
	.align	2
.LC617:
	.ascii	"onedimenmin lo %.4f guess %.4f hi %.4f range %.4f %"
	.ascii	".4f\012\000"
	.align	2
.LC618:
	.ascii	"onedimenmin reaches optimum f(%.4f) = %.4f f2x %.4f"
	.ascii	"\012\000"
	.text
	.align	2
	.global	onedimenmin
	.syntax unified
	.arm
	.fpu softvfp
	.type	onedimenmin, %function
onedimenmin:
	@ args = 40, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #136
	str	r0, [fp, #-68]
	str	r1, [fp, #-64]
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L3342
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	mov	r2, #0
	ldr	r3, .L3344
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	b	.L3312
.L3342:
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L3343
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	mov	r2, #0
	ldr	r3, .L3344+4
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	b	.L3312
.L3343:
	mov	r2, #0
	ldr	r3, .L3344+8
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
.L3312:
	ldmib	fp, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3315
	ldmib	fp, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
.L3315:
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L3317
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L3344+8
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
.L3317:
	ldr	r3, .L3344+12
	ldr	r3, [r3]
	cmp	r3, #4
	ble	.L3319
	ldr	r3, .L3344+16
	ldr	r0, [r3]
	ldmib	fp, {r2-r3}
	str	r2, [sp, #24]
	str	r3, [sp, #28]
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	ldr	r1, .L3344+20
	bl	fprintf
.L3319:
	ldr	r3, [fp, #12]
	ldr	r2, [fp, #16]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	blx	r3
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	ldr	r3, [fp, #12]
	ldr	r2, [fp, #16]
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	blx	r3
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	ldr	r3, [fp, #12]
	ldr	r2, [fp, #16]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	blx	r3
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	b	.L3320
.L3325:
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3321
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
.L3321:
	ldr	r3, [fp, #12]
	ldr	r2, [fp, #16]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	blx	r3
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
.L3320:
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3323
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3325
.L3323:
	b	.L3326
.L3331:
	ldmib	fp, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, .L3344+24
	ldr	r3, .L3344+28
	ldmib	fp, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3327
	ldmib	fp, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
.L3327:
	ldr	r3, [fp, #12]
	ldr	r2, [fp, #16]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	blx	r3
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
.L3326:
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3329
	ldmib	fp, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3331
.L3329:
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	str	r2, [sp, #56]
	str	r3, [sp, #60]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	str	r2, [sp, #48]
	str	r3, [sp, #52]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	str	r2, [sp, #40]
	str	r3, [sp, #44]
	ldr	r3, [fp, #40]
	str	r3, [sp, #36]
	ldr	r3, [fp, #36]
	str	r3, [sp, #32]
	add	r3, fp, #28
	ldmia	r3, {r2-r3}
	str	r2, [sp, #24]
	str	r3, [sp, #28]
	add	r3, fp, #20
	ldmia	r3, {r2-r3}
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	ldr	r3, [fp, #16]
	str	r3, [sp, #12]
	ldr	r3, [fp, #12]
	str	r3, [sp, #8]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	brent
	str	r0, [fp, #-12]
	str	r1, [fp, #-8]
	ldr	r3, .L3344+12
	ldr	r3, [r3]
	cmp	r3, #4
	ble	.L3332
	ldr	r3, .L3344+16
	ldr	ip, [r3]
	ldr	r3, [fp, #36]
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #40]
	ldmia	r1, {r0-r1}
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	ldr	r1, .L3344+32
	mov	r0, ip
	bl	fprintf
.L3332:
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3345:
	.align	2
.L3344:
	.word	1076101120
	.word	1075052544
	.word	1071644672
	.word	verbose
	.word	stderr
	.word	.LC617
	.word	1717986918
	.word	1072588390
	.word	.LC618
	.size	onedimenmin, .-onedimenmin
	.align	2
	.global	LnGamma
	.syntax unified
	.arm
	.fpu softvfp
	.type	LnGamma, %function
LnGamma:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	mov	r2, #0
	ldr	r3, .L3353
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3347
	mov	r2, #0
	ldr	r3, .L3353+4
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	mov	r2, #0
	ldr	r3, .L3353+4
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	b	.L3349
.L3350:
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
.L3349:
	mov	r2, #0
	ldr	r3, .L3353+4
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r2, #0
	ldr	r3, .L3353
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3350
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	log
	mov	r2, r0
	mov	r3, r1
	mov	r1, r2
	str	r1, [fp, #-28]
	eor	r3, r3, #-2147483648
	str	r3, [fp, #-24]
.L3347:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L3353+4
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r2, #0
	ldr	r3, .L3353+8
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	log
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L3353+12
	ldr	r3, .L3353+16
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r2, .L3353+20
	ldr	r3, .L3353+24
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L3353+28
	ldr	r3, .L3353+32
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L3353+36
	ldr	r3, .L3353+40
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L3353+44
	ldr	r3, .L3353+48
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L3354:
	.align	2
.L3353:
	.word	1075576832
	.word	1072693248
	.word	1071644672
	.word	-932921673
	.word	1072523249
	.word	327234725
	.word	-1086095048
	.word	436316041
	.word	1061814688
	.word	381775383
	.word	1063698796
	.word	1431655741
	.word	1068848469
	.size	LnGamma, .-LnGamma
	.section	.rodata
	.align	2
.LC619:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	IncompleteGamma
	.syntax unified
	.arm
	.fpu softvfp
	.type	IncompleteGamma, %function
IncompleteGamma:
	@ args = 8, pretend = 0, frame = 176
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r8, r9, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #180
	str	r0, [fp, #-196]
	str	r1, [fp, #-192]
	str	r2, [fp, #-204]
	str	r3, [fp, #-200]
	ldr	r3, .L3401
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	sub	r3, fp, #204
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	ldmib	fp, {r2-r3}
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	ldr	r2, .L3401+4
	ldr	r3, .L3401+8
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r2, .L3401+12
	ldr	r3, .L3401+16
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L3393
	mov	r2, #0
	mov	r3, #0
	b	.L3387
.L3393:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3359
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L3394
.L3359:
	mov	r2, #0
	ldr	r3, .L3401+20
	b	.L3387
.L3394:
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	log
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	str	r0, [fp, #-92]
	str	r1, [fp, #-88]
	mov	r2, #0
	ldr	r3, .L3401+24
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3362
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	bne	.L3397
.L3362:
	mov	r2, #0
	ldr	r3, .L3401+24
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	mov	r2, #0
	ldr	r3, .L3401+24
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
.L3366:
	mov	r2, #0
	ldr	r3, .L3401+24
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3395
	b	.L3366
.L3395:
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	b	.L3369
.L3397:
	nop
.L3365:
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L3401+24
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L3401+24
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	mov	r2, #0
	ldr	r3, .L3401+24
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	mov	r2, #0
	ldr	r3, .L3401+24
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	sub	r1, fp, #196
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
.L3370:
	mov	r2, #0
	ldr	r3, .L3401+24
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	mov	r2, #0
	mov	r3, #1073741824
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	mov	r2, #0
	ldr	r3, .L3401+24
	sub	r1, fp, #148
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L3371
.L3372:
	ldr	r3, [fp, #-184]
	add	r3, r3, #2
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #56
	ldmia	r3, {r0-r1}
	sub	r3, fp, #156
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r8, r2
	mov	r9, r3
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #56
	ldmia	r3, {r0-r1}
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-184]
	add	r6, r3, #4
	mov	r2, r0
	mov	r3, r1
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	lsl	r1, r6, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #56
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L3371:
	ldr	r3, [fp, #-184]
	cmp	r3, #1
	ble	.L3372
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	bne	.L3398
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	sub	r1, fp, #180
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r1, r2
	str	r1, [fp, #-100]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-96]
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3399
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L3400
	b	.L3378
.L3399:
	nop
.L3378:
	sub	r3, fp, #172
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	b	.L3375
.L3398:
	nop
.L3375:
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L3381
.L3382:
	ldr	r3, [fp, #-184]
	add	r3, r3, #2
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #56
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-184]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #56
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L3381:
	ldr	r3, [fp, #-184]
	cmp	r3, #3
	ble	.L3382
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	mov	r4, r2
	bic	r5, r3, #-2147483648
	mov	r2, r4
	mov	r3, r5
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3396
	b	.L3370
.L3396:
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L3385
.L3386:
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #56
	ldmia	r3, {r0-r1}
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-184]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #56
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L3385:
	ldr	r3, [fp, #-184]
	cmp	r3, #3
	ble	.L3386
	b	.L3370
.L3400:
	nop
.L3380:
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L3401+24
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
.L3369:
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
.L3387:
	ldr	r1, .L3401
	ldr	r0, [r1]
	ldr	r1, [fp, #-32]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L3388
	bl	__stack_chk_fail
.L3388:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r8, r9, fp, pc}
.L3402:
	.align	2
.L3401:
	.word	.LC619
	.word	-500134854
	.word	1044740494
	.word	966823146
	.word	1177108057
	.word	-1074790400
	.word	1072693248
	.size	IncompleteGamma, .-IncompleteGamma
	.align	2
	.global	PGamma
	.syntax unified
	.arm
	.fpu softvfp
	.type	PGamma, %function
PGamma:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	LnGamma
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	mov	r0, r4
	mov	r1, r5
	bl	IncompleteGamma
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	PGamma, .-PGamma
	.align	2
	.global	timeval_subtract
	.syntax unified
	.arm
	.fpu softvfp
	.type	timeval_subtract, %function
timeval_subtract:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bge	.L3406
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	sub	r3, r2, r3
	ldr	r2, .L3409
	smull	r1, r2, r3, r2
	asr	r2, r2, #18
	asr	r3, r3, #31
	sub	r3, r2, r3
	add	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r0, [r3, #4]
	ldr	r1, [fp, #-12]
	mov	r2, r1
	lsl	r2, r2, #5
	sub	r2, r2, r1
	lsl	r3, r2, #6
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r1
	lsl	r3, r3, #6
	rsb	r3, r3, #0
	add	r2, r0, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
.L3406:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	sub	r3, r2, r3
	ldr	r2, .L3409+4
	cmp	r3, r2
	ble	.L3407
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	sub	r3, r2, r3
	ldr	r2, .L3409
	smull	r1, r2, r3, r2
	asr	r2, r2, #18
	asr	r3, r3, #31
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r0, [r3, #4]
	ldr	r1, [fp, #-8]
	mov	r2, r1
	lsl	r2, r2, #5
	sub	r2, r2, r1
	lsl	r3, r2, #6
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r1
	lsl	r3, r3, #6
	add	r2, r0, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	sub	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
.L3407:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L3410:
	.align	2
.L3409:
	.word	1125899907
	.word	1000000
	.size	timeval_subtract, .-timeval_subtract
	.section	.rodata
	.align	2
.LC620:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	clockDiff
	.syntax unified
	.arm
	.fpu softvfp
	.type	clockDiff, %function
clockDiff:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-40]
	ldr	r3, .L3414
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #32
	mov	r1, #0
	mov	r0, r3
	bl	gettimeofday
	sub	r1, fp, #32
	sub	r3, fp, #24
	ldr	r2, [fp, #-40]
	mov	r0, r3
	bl	timeval_subtract
	ldr	r3, [fp, #-24]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-20]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, .L3414+4
	ldr	r3, .L3414+8
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L3414
	ldr	r0, [r1]
	ldr	r1, [fp, #-16]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L3413
	bl	__stack_chk_fail
.L3413:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L3415:
	.align	2
.L3414:
	.word	.LC620
	.word	-1598689907
	.word	1051772663
	.size	clockDiff, .-clockDiff
	.comm	ran_x,400,4
	.align	2
	.global	ran_array
	.syntax unified
	.arm
	.fpu softvfp
	.type	ran_array, %function
ran_array:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r4, #0
	b	.L3417
.L3418:
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, .L3425
	ldr	r2, [r2, r4, lsl #2]
	str	r2, [r3]
	add	r4, r4, #1
.L3417:
	cmp	r4, #99
	ble	.L3418
	b	.L3419
.L3420:
	mov	r3, r4
	add	r3, r3, #1073741824
	sub	r3, r3, #100
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [r3]
	mov	r3, r4
	sub	r3, r3, #-1073741787
	lsl	r3, r3, #2
	ldr	r1, [fp, #-16]
	add	r3, r1, r3
	ldr	r3, [r3]
	sub	r2, r2, r3
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r1, [fp, #-16]
	add	r3, r1, r3
	bic	r2, r2, #-1073741824
	str	r2, [r3]
	add	r4, r4, #1
.L3419:
	ldr	r3, [fp, #-20]
	cmp	r4, r3
	blt	.L3420
	mov	r5, #0
	b	.L3421
.L3422:
	mov	r3, r4
	add	r3, r3, #1073741824
	sub	r3, r3, #100
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [r3]
	mov	r3, r4
	sub	r3, r3, #-1073741787
	lsl	r3, r3, #2
	ldr	r1, [fp, #-16]
	add	r3, r1, r3
	ldr	r3, [r3]
	sub	r3, r2, r3
	bic	r3, r3, #-1073741824
	ldr	r2, .L3425
	str	r3, [r2, r5, lsl #2]
	add	r5, r5, #1
	add	r4, r4, #1
.L3421:
	cmp	r5, #36
	ble	.L3422
	b	.L3423
.L3424:
	mov	r3, r4
	add	r3, r3, #1073741824
	sub	r3, r3, #100
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r3, r5, #37
	ldr	r1, .L3425
	ldr	r3, [r1, r3, lsl #2]
	sub	r3, r2, r3
	bic	r3, r3, #-1073741824
	ldr	r2, .L3425
	str	r3, [r2, r5, lsl #2]
	add	r5, r5, #1
	add	r4, r4, #1
.L3423:
	cmp	r5, #99
	ble	.L3424
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
.L3426:
	.align	2
.L3425:
	.word	ran_x
	.size	ran_array, .-ran_array
	.comm	ran_arr_buf,4036,4
	.global	ran_arr_dummy
	.data
	.align	2
	.type	ran_arr_dummy, %object
	.size	ran_arr_dummy, 4
ran_arr_dummy:
	.word	-1
	.global	ran_arr_started
	.align	2
	.type	ran_arr_started, %object
	.size	ran_arr_started, 4
ran_arr_started:
	.word	-1
	.global	ran_arr_ptr
	.align	2
	.type	ran_arr_ptr, %object
	.size	ran_arr_ptr, 4
ran_arr_ptr:
	.word	ran_arr_dummy
	.section	.rodata
	.align	2
.LC621:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ran_start
	.syntax unified
	.arm
	.fpu softvfp
	.type	ran_start, %function
ran_start:
	@ args = 0, pretend = 0, frame = 808
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #812
	str	r0, [fp, #-824]
	ldr	r3, .L3448
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, [fp, #-824]
	add	r3, r3, #2
	bic	r5, r3, #-1073741823
	mov	r4, #0
	b	.L3428
.L3430:
	lsl	r3, r4, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	str	r5, [r3, #-800]
	lsl	r5, r5, #1
	cmn	r5, #-1073741823
	ble	.L3429
	add	r5, r5, #-1073741822
.L3429:
	add	r4, r4, #1
.L3428:
	cmp	r4, #99
	ble	.L3430
	ldr	r3, [fp, #-816]
	add	r3, r3, #1
	str	r3, [fp, #-816]
	ldr	r3, [fp, #-824]
	bic	r5, r3, #-1073741824
	mov	r6, #69
	b	.L3431
.L3440:
	mov	r4, #99
	b	.L3432
.L3433:
	lsl	r1, r4, #1
	lsl	r3, r4, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-800]
	lsl	r3, r1, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-800]
	lsl	r3, r4, #1
	sub	r3, r3, #1
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-800]
	sub	r4, r4, #1
.L3432:
	cmp	r4, #0
	bgt	.L3433
	mov	r4, #198
	b	.L3434
.L3435:
	sub	r3, r4, #63
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-800]
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-800]
	sub	r2, r2, r3
	sub	r3, r4, #63
	bic	r2, r2, #-1073741824
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-800]
	sub	r3, r4, #100
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-800]
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-800]
	sub	r2, r2, r3
	sub	r3, r4, #100
	bic	r2, r2, #-1073741824
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-800]
	sub	r4, r4, #1
.L3434:
	cmp	r4, #99
	bgt	.L3435
	and	r3, r5, #1
	cmp	r3, #0
	beq	.L3436
	mov	r4, #100
	b	.L3437
.L3438:
	sub	r3, r4, #1
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-800]
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-800]
	sub	r4, r4, #1
.L3437:
	cmp	r4, #0
	bgt	.L3438
	ldr	r3, [fp, #-420]
	str	r3, [fp, #-820]
	ldr	r2, [fp, #-672]
	ldr	r3, [fp, #-420]
	sub	r3, r2, r3
	bic	r3, r3, #-1073741824
	str	r3, [fp, #-672]
.L3436:
	cmp	r5, #0
	beq	.L3439
	asr	r5, r5, #1
	b	.L3431
.L3439:
	sub	r6, r6, #1
.L3431:
	cmp	r6, #0
	bne	.L3440
	mov	r4, #0
	b	.L3441
.L3442:
	add	r2, r4, #63
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-800]
	ldr	r1, .L3448+4
	str	r3, [r1, r2, lsl #2]
	add	r4, r4, #1
.L3441:
	cmp	r4, #36
	ble	.L3442
	b	.L3443
.L3444:
	sub	r2, r4, #37
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-800]
	ldr	r1, .L3448+4
	str	r3, [r1, r2, lsl #2]
	add	r4, r4, #1
.L3443:
	cmp	r4, #99
	ble	.L3444
	mov	r4, #0
	b	.L3445
.L3446:
	sub	r3, fp, #820
	mov	r1, #199
	mov	r0, r3
	bl	ran_array
	add	r4, r4, #1
.L3445:
	cmp	r4, #9
	ble	.L3446
	ldr	r3, .L3448+8
	ldr	r2, .L3448+12
	str	r2, [r3]
	nop
	ldr	r3, .L3448
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3447
	bl	__stack_chk_fail
.L3447:
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L3449:
	.align	2
.L3448:
	.word	.LC621
	.word	ran_x
	.word	ran_arr_ptr
	.word	ran_arr_started
	.size	ran_start, .-ran_start
	.align	2
	.global	ran_arr_cycle
	.syntax unified
	.arm
	.fpu softvfp
	.type	ran_arr_cycle, %function
ran_arr_cycle:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L3453
	ldr	r3, [r3]
	ldr	r2, .L3453+4
	cmp	r3, r2
	bne	.L3451
	ldr	r0, .L3453+8
	bl	ran_start
.L3451:
	ldr	r1, .L3453+12
	ldr	r0, .L3453+16
	bl	ran_array
	ldr	r3, .L3453+16
	mvn	r2, #0
	str	r2, [r3, #400]
	ldr	r2, .L3453+20
	ldr	r3, .L3453
	str	r2, [r3]
	ldr	r3, .L3453+16
	ldr	r3, [r3]
	mov	r0, r3
	pop	{fp, pc}
.L3454:
	.align	2
.L3453:
	.word	ran_arr_ptr
	.word	ran_arr_dummy
	.word	314159
	.word	1009
	.word	ran_arr_buf
	.word	ran_arr_buf+4
	.size	ran_arr_cycle, .-ran_arr_cycle
	.align	2
	.global	knuth_rand
	.syntax unified
	.arm
	.fpu softvfp
	.type	knuth_rand, %function
knuth_rand:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L3459
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3456
	ldr	r3, .L3459
	ldr	r3, [r3]
	add	r2, r3, #4
	ldr	r1, .L3459
	str	r2, [r1]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	b	.L3457
.L3456:
	bl	ran_arr_cycle
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_i2d
.L3457:
	mov	r2, #2
	ldr	r3, .L3459+4
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	pop	{fp, pc}
.L3460:
	.align	2
.L3459:
	.word	ran_arr_ptr
	.word	1041235968
	.size	knuth_rand, .-knuth_rand
	.section	.rodata
	.align	2
.LC622:
	.ascii	"hash->buckets[hi].nCount == 0\000"
	.align	2
.LC623:
	.ascii	"hash->buckets[hi].string != NULL\000"
	.align	2
.LC624:
	.ascii	"strcmp(hash->buckets[hi].string, strings[i]) == 0\000"
	.align	2
.LC625:
	.ascii	"hash->buckets[hi].first >= 0\000"
	.text
	.align	2
	.global	MakeHashtable
	.syntax unified
	.arm
	.fpu softvfp
	.type	MakeHashtable, %function
MakeHashtable:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r0, #8
	bl	mymalloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-28]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	mov	r2, r0
	ldr	r3, [fp, #-12]
	str	r2, [r3, #4]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3462
.L3463:
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	mvn	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3462:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L3463
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3464
.L3471:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	FindMatch
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3465
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3466
	ldr	r3, .L3473
	ldr	r2, .L3473+4
	ldr	r1, .L3473+8
	ldr	r0, .L3473+12
	bl	__assert_fail
.L3466:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r1, r2, r3
	ldr	r3, [fp, #-12]
	ldr	r0, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r0, r3
	ldr	r2, [r1]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	mov	r2, #1
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [fp, #-16]
	str	r2, [r3, #8]
	b	.L3467
.L3465:
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3468
	ldr	r3, .L3473
	ldr	r2, .L3473+16
	ldr	r1, .L3473+8
	ldr	r0, .L3473+20
	bl	__assert_fail
.L3468:
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L3469
	ldr	r3, .L3473
	ldr	r2, .L3473+24
	ldr	r1, .L3473+8
	ldr	r0, .L3473+28
	bl	__assert_fail
.L3469:
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bge	.L3470
	ldr	r3, .L3473
	ldr	r2, .L3473+32
	ldr	r1, .L3473+8
	ldr	r0, .L3473+36
	bl	__assert_fail
.L3470:
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r3, #4]
	add	r2, r2, #1
	str	r2, [r3, #4]
.L3467:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3464:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L3471
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3474:
	.align	2
.L3473:
	.word	__PRETTY_FUNCTION__.11135
	.word	9183
	.word	.LC134
	.word	.LC622
	.word	9189
	.word	.LC623
	.word	9190
	.word	.LC624
	.word	9191
	.word	.LC625
	.size	MakeHashtable, .-MakeHashtable
	.align	2
	.global	FreeHashtable
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreeHashtable, %function
FreeHashtable:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L3476
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r1, #8
	ldr	r0, [fp, #-8]
	bl	myfree
.L3476:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	FreeHashtable, .-FreeHashtable
	.global	__aeabi_uidivmod
	.align	2
	.global	FindMatch
	.syntax unified
	.arm
	.fpu softvfp
	.type	FindMatch, %function
FindMatch:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r3, #1
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	b	.L3479
.L3480:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L3479:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L3480
	ldr	r1, [fp, #-20]
	ldr	r3, .L3485
	umull	r2, r3, r1, r3
	lsr	r2, r3, #15
	mov	r3, r2
	lsl	r3, r3, #12
	sub	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, r2
	sub	r3, r1, r3
	str	r3, [fp, #-20]
	ldr	r1, [fp, #-16]
	ldr	r3, .L3485
	umull	r2, r3, r1, r3
	lsr	r2, r3, #15
	mov	r3, r2
	lsl	r3, r3, #12
	sub	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, r2
	sub	r3, r1, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsl	r2, r3, #16
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	str	r3, [fp, #-8]
	b	.L3481
.L3483:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L3481
	mov	r3, #0
	str	r3, [fp, #-8]
.L3481:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L3482
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L3483
.L3482:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3486:
	.align	2
.L3485:
	.word	-2146992015
	.size	FindMatch, .-FindMatch
	.align	2
	.global	GetHashString
	.syntax unified
	.arm
	.fpu softvfp
	.type	GetHashString, %function
GetHashString:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	GetHashString, .-GetHashString
	.align	2
	.global	HashCount
	.syntax unified
	.arm
	.fpu softvfp
	.type	HashCount, %function
HashCount:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	HashCount, .-HashCount
	.align	2
	.global	HashFirst
	.syntax unified
	.arm
	.fpu softvfp
	.type	HashFirst, %function
HashFirst:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	HashFirst, .-HashFirst
	.section	.rodata
	.align	2
.LC626:
	.ascii	"last>=0\000"
	.align	2
.LC627:
	.ascii	"alnToUniq[last] >= 0 && alnToUniq[last] < nUniqueSe"
	.ascii	"q\000"
	.align	2
.LC628:
	.ascii	"nUniqueSeq>0\000"
	.text
	.align	2
	.global	UniquifyAln
	.syntax unified
	.arm
	.fpu softvfp
	.type	UniquifyAln, %function
UniquifyAln:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L3494
.L3495:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L3494:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	blt	.L3495
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r2
	bl	MakeHashtable
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L3496
.L3504:
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-20]
	bl	FindMatch
	str	r0, [fp, #-12]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-20]
	bl	HashFirst
	str	r0, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	bne	.L3497
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [fp, #-48]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L3498
.L3497:
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-40]
	b	.L3499
.L3500:
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-40]
.L3499:
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L3500
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bge	.L3501
	ldr	r3, .L3508
	ldr	r2, .L3508+4
	ldr	r1, .L3508+8
	ldr	r0, .L3508+12
	bl	__assert_fail
.L3501:
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L3502
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	bgt	.L3507
.L3502:
	ldr	r3, .L3508
	ldr	r2, .L3508+16
	ldr	r1, .L3508+8
	ldr	r0, .L3508+20
	bl	__assert_fail
.L3507:
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
.L3498:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L3496:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	blt	.L3504
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bgt	.L3505
	ldr	r3, .L3508
	ldr	r2, .L3508+24
	ldr	r1, .L3508+8
	ldr	r0, .L3508+28
	bl	__assert_fail
.L3505:
	ldr	r0, [fp, #-20]
	bl	FreeHashtable
	str	r0, [fp, #-20]
	mov	r0, #24
	bl	mymalloc
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-48]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3509:
	.align	2
.L3508:
	.word	__PRETTY_FUNCTION__.11187
	.word	9267
	.word	.LC134
	.word	.LC626
	.word	9269
	.word	.LC627
	.word	9273
	.word	.LC628
	.size	UniquifyAln, .-UniquifyAln
	.align	2
	.global	FreeUniquify
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreeUniquify, %function
FreeUniquify:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L3511
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	myfree
	mov	r1, #24
	ldr	r0, [fp, #-8]
	bl	myfree
	mov	r3, #0
	str	r3, [fp, #-8]
.L3511:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	FreeUniquify, .-FreeUniquify
	.align	2
	.global	InitTraversal
	.syntax unified
	.arm
	.fpu softvfp
	.type	InitTraversal, %function
InitTraversal:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L3514
.L3515:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L3514:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L3515
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	InitTraversal, .-InitTraversal
	.align	2
	.global	SkipTraversalInto
	.syntax unified
	.arm
	.fpu softvfp
	.type	SkipTraversalInto, %function
SkipTraversalInto:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #1
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	SkipTraversalInto, .-SkipTraversalInto
	.section	.rodata
	.align	2
.LC629:
	.ascii	"node >= 0\000"
	.text
	.align	2
	.global	TraversePostorder
	.syntax unified
	.arm
	.fpu softvfp
	.type	TraversePostorder, %function
TraversePostorder:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L3530
	ldr	r3, [fp, #-36]
	mov	r2, #0
	strb	r2, [r3]
.L3530:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L3520
	ldr	r3, .L3532
	ldr	r2, .L3532+4
	ldr	r1, .L3532+8
	ldr	r0, .L3532+12
	bl	__assert_fail
.L3520:
	mov	r3, #0
	strb	r3, [fp, #-13]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L3521
.L3524:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L3522
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-24]
	mov	r3, #1
	strb	r3, [fp, #-13]
	b	.L3523
.L3522:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L3521:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L3524
.L3523:
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L3531
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L3527
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	b	.L3528
.L3527:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L3529
	mvn	r3, #0
	b	.L3528
.L3529:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L3530
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3530
	ldr	r3, [fp, #-36]
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	b	.L3528
.L3531:
	nop
	b	.L3530
.L3528:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3533:
	.align	2
.L3532:
	.word	__PRETTY_FUNCTION__.11213
	.word	9315
	.word	.LC134
	.word	.LC629
	.size	TraversePostorder, .-TraversePostorder
	.align	2
	.global	FreeTraversal
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreeTraversal, %function
FreeTraversal:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #32]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	myfree
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	FreeTraversal, .-FreeTraversal
	.align	2
	.global	UpProfiles
	.syntax unified
	.arm
	.fpu softvfp
	.type	UpProfiles, %function
UpProfiles:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L3537
.L3538:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L3537:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L3538
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	UpProfiles, .-UpProfiles
	.section	.rodata
	.align	2
.LC630:
	.ascii	"outnode != NJ->root && outnode >= NJ->nSeq\000"
	.align	2
.LC631:
	.ascii	"Computing UpProfile for node %d with lenC %.4f lenD"
	.ascii	" %.4f pair-loglk %.3f\012\000"
	.align	2
.LC632:
	.ascii	"Compute upprofile of %d from %d and parents (vs. ch"
	.ascii	"ildren %d %d) with weight %.3f\012\000"
	.align	2
.LC633:
	.ascii	"upProfiles[outnode] != NULL\000"
	.align	2
.LC634:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	GetUpProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	GetUpProfile, %function
GetUpProfile:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r8, r9, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #140
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	str	r2, [fp, #-136]
	strb	r3, [fp, #-137]
	ldr	r3, .L3556
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-136]
	cmp	r2, r3
	beq	.L3541
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	ldr	r2, [fp, #-136]
	cmp	r2, r3
	bge	.L3555
.L3541:
	ldr	r3, .L3556+4
	ldr	r2, .L3556+8
	ldr	r1, .L3556+12
	ldr	r0, .L3556+16
	bl	__assert_fail
.L3555:
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L3543
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	ldr	r3, [r3]
	b	.L3553
.L3543:
	sub	r3, fp, #124
	mov	r2, r3
	ldr	r1, [fp, #-136]
	ldr	r0, [fp, #-132]
	bl	PathToRoot
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-124]
	sub	r3, r3, #2
	str	r3, [fp, #-120]
	b	.L3545
.L3551:
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-116]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3546
	sub	r2, fp, #80
	ldrb	r3, [fp, #-137]	@ zero_extendqisi2
	str	r3, [sp, #4]
	sub	r3, fp, #64
	str	r3, [sp]
	ldr	r3, [fp, #-128]
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-132]
	bl	SetupABCD
	ldrb	r3, [fp, #-137]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3547
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, .L3556+20
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L3548
	ldr	r3, .L3556+24
	ldr	r4, [r3]
	ldr	r5, [fp, #-72]
	ldr	r6, [fp, #-68]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r8, r2
	mov	r9, r3
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-132]
	ldr	r2, [r2, #16]
	ldr	r1, [fp, #-132]
	add	r1, r1, #100
	mov	r0, #0
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r2, r8
	mov	r3, r9
	mov	r1, r6
	mov	r0, r5
	bl	PairLogLk
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-112]
	ldr	r1, .L3556+28
	mov	r0, r4
	bl	fprintf
	ldr	r3, .L3556+24
	ldr	r3, [r3]
	mov	r2, #1
	ldr	r1, [fp, #-132]
	mov	r0, r3
	bl	PrintNJInternal
.L3548:
	ldr	r5, [fp, #-72]
	ldr	r6, [fp, #-68]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-132]
	add	r2, r2, #100
	ldr	r1, [fp, #-132]
	ldr	r1, [r1, #4]
	ldr	r0, [fp, #-132]
	ldr	r0, [r0, #20]
	ldr	ip, [fp, #-112]
	lsl	ip, ip, #2
	ldr	lr, [fp, #-128]
	add	r4, lr, ip
	str	r0, [sp, #20]
	str	r1, [sp, #16]
	str	r2, [sp, #12]
	str	r3, [sp, #8]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	mov	r1, r6
	mov	r0, r5
	bl	PosteriorProfile
	mov	r3, r0
	str	r3, [r4]
	b	.L3546
.L3547:
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-132]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #4]
	sub	r3, fp, #48
	mov	r0, r3
	bl	QuartetWeight
	str	r0, [fp, #-108]
	str	r1, [fp, #-104]
	ldr	r3, .L3556+20
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L3550
	ldr	r3, .L3556+24
	ldr	ip, [r3]
	ldr	lr, [fp, #-56]
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-60]
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	str	r0, [sp, #4]
	str	r1, [sp]
	mov	r3, lr
	ldr	r2, [fp, #-112]
	ldr	r1, .L3556+32
	mov	r0, ip
	bl	fprintf
.L3550:
	ldr	r0, [fp, #-72]
	ldr	ip, [fp, #-68]
	ldr	r3, [fp, #-132]
	ldr	lr, [r3, #4]
	ldr	r3, [fp, #-132]
	ldr	r5, [r3, #20]
	ldr	r3, [fp, #-132]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-128]
	add	r4, r2, r3
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	str	r1, [sp]
	mov	r3, r5
	mov	r2, lr
	mov	r1, ip
	bl	AverageProfile
	mov	r3, r0
	str	r3, [r4]
.L3546:
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	str	r3, [fp, #-120]
.L3545:
	ldr	r3, [fp, #-120]
	cmp	r3, #0
	bge	.L3551
	ldr	r1, [fp, #-132]
	ldr	r0, [fp, #-116]
	bl	FreePath
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3552
	ldr	r3, .L3556+4
	mov	r2, #9408
	ldr	r1, .L3556+12
	ldr	r0, .L3556+36
	bl	__assert_fail
.L3552:
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	ldr	r3, [r3]
.L3553:
	ldr	r2, .L3556
	ldr	r1, [r2]
	ldr	r2, [fp, #-32]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L3554
	bl	__stack_chk_fail
.L3554:
	mov	r0, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r8, r9, fp, pc}
.L3557:
	.align	2
.L3556:
	.word	.LC634
	.word	__PRETTY_FUNCTION__.11240
	.word	9360
	.word	.LC134
	.word	.LC630
	.word	verbose
	.word	stderr
	.word	.LC631
	.word	.LC632
	.word	.LC633
	.size	GetUpProfile, .-GetUpProfile
	.section	.rodata
	.align	2
.LC635:
	.ascii	"node>=0 && node < NJ->maxnodes\000"
	.text
	.align	2
	.global	DeleteUpProfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	DeleteUpProfile, %function
DeleteUpProfile:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	blt	.L3559
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L3563
.L3559:
	ldr	r3, .L3564
	ldr	r2, .L3564+4
	ldr	r1, .L3564+8
	ldr	r0, .L3564+12
	bl	__assert_fail
.L3563:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L3561
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-20]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	ip, [r3, #20]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r4, r2, r3
	mov	r2, ip
	bl	FreeProfile
	mov	r3, r0
	str	r3, [r4]
.L3561:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L3565:
	.align	2
.L3564:
	.word	__PRETTY_FUNCTION__.11259
	.word	9413
	.word	.LC134
	.word	.LC635
	.size	DeleteUpProfile, .-DeleteUpProfile
	.section	.rodata
	.align	2
.LC636:
	.ascii	"FreeUpProfiles -- freed %d\012\000"
	.text
	.align	2
	.global	FreeUpProfiles
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreeUpProfiles, %function
FreeUpProfiles:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L3567
.L3569:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L3568
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L3568:
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	DeleteUpProfile
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L3567:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L3569
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	myfree
	ldr	r3, .L3572
	ldr	r3, [r3]
	cmp	r3, #2
	ble	.L3570
	ldr	r3, .L3572+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	ldr	r1, .L3572+8
	mov	r0, r3
	bl	fprintf
.L3570:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3573:
	.align	2
.L3572:
	.word	verbose
	.word	stderr
	.word	.LC636
	.size	FreeUpProfiles, .-FreeUpProfiles
	.align	2
	.global	PathToRoot
	.syntax unified
	.arm
	.fpu softvfp
	.type	PathToRoot, %function
PathToRoot:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	mymalloc
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	b	.L3575
.L3576:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3575:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L3576
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	PathToRoot, .-PathToRoot
	.align	2
	.global	FreePath
	.syntax unified
	.arm
	.fpu softvfp
	.type	FreePath, %function
FreePath:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #32]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	myfree
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	FreePath, .-FreePath
	.section	.rodata
	.align	2
.LC637:
	.ascii	"rate > 0\000"
	.align	2
.LC638:
	.ascii	"total_rate > 1e-6\000"
	.align	2
.LC639:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	CreateGTR
	.syntax unified
	.arm
	.fpu softvfp
	.type	CreateGTR, %function
CreateGTR:
	@ args = 0, pretend = 0, frame = 696
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #696
	str	r0, [fp, #-696]
	str	r1, [fp, #-700]
	ldr	r3, .L3598
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L3598+4
	ldr	r3, [r3]
	cmp	r3, #4
	beq	.L3581
	ldr	r3, .L3598+8
	ldr	r2, .L3598+12
	ldr	r1, .L3598+16
	ldr	r0, .L3598+20
	bl	__assert_fail
.L3581:
	mov	r3, #0
	str	r3, [fp, #-680]
	mov	r3, #0
	str	r3, [fp, #-688]
	b	.L3582
.L3586:
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #3
	mov	r2, r3
	sub	r3, fp, #4
	add	r3, r3, r2
	sub	r1, r3, #648
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-688]
	add	r3, r3, #1
	str	r3, [fp, #-684]
	b	.L3583
.L3585:
	ldr	r3, [fp, #-680]
	add	r2, r3, #1
	str	r2, [fp, #-680]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-696]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-660]
	str	r3, [fp, #-656]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #660
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3584
	ldr	r3, .L3598+8
	ldr	r2, .L3598+24
	ldr	r1, .L3598+16
	ldr	r0, .L3598+28
	bl	__assert_fail
.L3584:
	ldr	r3, [fp, #-688]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-700]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-684]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #4
	add	r3, r2, r3
	sub	r3, r3, #648
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-684]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-700]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-684]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-688]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #4
	add	r3, r2, r3
	sub	r3, r3, #648
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-684]
	add	r3, r3, #1
	str	r3, [fp, #-684]
.L3583:
	ldr	r3, .L3598+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-684]
	cmp	r2, r3
	blt	.L3585
	ldr	r3, [fp, #-688]
	add	r3, r3, #1
	str	r3, [fp, #-688]
.L3582:
	ldr	r3, .L3598+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-688]
	cmp	r2, r3
	blt	.L3586
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-676]
	str	r3, [fp, #-672]
	mov	r3, #0
	str	r3, [fp, #-688]
	b	.L3587
.L3590:
	mov	r3, #0
	str	r3, [fp, #-684]
	b	.L3588
.L3589:
	ldr	r3, [fp, #-688]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-700]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-684]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #4
	add	r3, r2, r3
	sub	r3, r3, #648
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #676
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-676]
	str	r3, [fp, #-672]
	ldr	r3, [fp, #-684]
	add	r3, r3, #1
	str	r3, [fp, #-684]
.L3588:
	ldr	r3, .L3598+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-684]
	cmp	r2, r3
	blt	.L3589
	ldr	r3, [fp, #-688]
	add	r3, r3, #1
	str	r3, [fp, #-688]
.L3587:
	ldr	r3, .L3598+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-688]
	cmp	r2, r3
	blt	.L3590
	ldr	r2, .L3598+32
	ldr	r3, .L3598+36
	sub	r1, fp, #676
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3591
	ldr	r3, .L3598+8
	ldr	r2, .L3598+40
	ldr	r1, .L3598+16
	ldr	r0, .L3598+44
	bl	__assert_fail
.L3591:
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L3598+48
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-668]
	str	r3, [fp, #-664]
	mov	r3, #0
	str	r3, [fp, #-688]
	b	.L3592
.L3595:
	mov	r3, #0
	str	r3, [fp, #-684]
	b	.L3593
.L3594:
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-684]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #4
	add	r3, r2, r3
	sub	r3, r3, #648
	ldmia	r3, {r0-r1}
	sub	r3, fp, #668
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-684]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #4
	add	r3, r2, r3
	sub	r3, r3, #648
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-684]
	add	r3, r3, #1
	str	r3, [fp, #-684]
.L3593:
	ldr	r3, .L3598+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-684]
	cmp	r2, r3
	blt	.L3594
	ldr	r3, [fp, #-688]
	add	r3, r3, #1
	str	r3, [fp, #-688]
.L3592:
	ldr	r3, .L3598+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-688]
	cmp	r2, r3
	blt	.L3595
	sub	r3, fp, #652
	ldr	r1, [fp, #-700]
	mov	r0, r3
	bl	CreateTransitionMatrix
	mov	r3, r0
	ldr	r2, .L3598
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L3597
	bl	__stack_chk_fail
.L3597:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3599:
	.align	2
.L3598:
	.word	.LC639
	.word	nCodes
	.word	__PRETTY_FUNCTION__.11289
	.word	9453
	.word	.LC134
	.word	.LC420
	.word	9464
	.word	.LC637
	.word	-1598689907
	.word	1051772663
	.word	9475
	.word	.LC638
	.word	1072693248
	.size	CreateGTR, .-CreateGTR
	.section	.rodata
	.align	2
.LC640:
	.ascii	"transt[j][i] > 0\000"
	.align	2
.LC641:
	.ascii	"transmat->stat[j] > 0\000"
	.align	2
.LC642:
	.ascii	"tot > 0\000"
	.align	2
.LC643:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	CreateTransitionMatrix
	.syntax unified
	.arm
	.fpu softvfp
	.type	CreateTransitionMatrix, %function
CreateTransitionMatrix:
	@ args = 0, pretend = 0, frame = 13656
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #13632
	sub	sp, sp, #36
	sub	r3, fp, #12288
	sub	r3, r3, #20
	str	r0, [r3, #-1364]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	str	r1, [r3, #-1368]
	ldr	r3, .L3662
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r6, r3
	ldr	r0, .L3662+4
	bl	mymalloc
	str	r0, [r6, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3601
.L3602:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	lsl	r3, r3, #3
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1368]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r1, r0
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1348]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	str	r1, [r3, r2, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	lsl	r3, r3, #3
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1368]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L3662+44
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r1, r0
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1348]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	add	r2, r2, #20
	str	r1, [r3, r2, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	lsl	r3, r3, #3
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1368]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	sqrt
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #1312
	sub	r3, r3, #8
	stm	r3, {r0-r1}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3601:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3602
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3603
.L3606:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3604
.L3605:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #5
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1364]
	add	r2, r3, r2
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r1, fp, #12288
	sub	r1, r1, #20
	ldr	r1, [r1, #-1360]
	mul	r1, r3, r1
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r1, r1, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r0, fp, #12288
	sub	r0, r0, #20
	lsl	r1, r1, #3
	add	r1, r0, r1
	sub	r1, r1, #520
	stm	r1, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3604:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3605
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3603:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3606
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3607
.L3610:
	sub	r3, fp, #13632
	sub	r3, r3, #20
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	mul	r2, r3, r2
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r2, r3
	sub	r2, fp, #12288
	sub	r2, r2, #20
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r1, r3, #520
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3608
.L3609:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	mul	r2, r3, r2
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r2, r3
	sub	r2, fp, #12288
	sub	r2, r2, #20
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #520
	ldmia	r3, {r2-r3}
	sub	r1, fp, #13632
	sub	r1, r1, #20
	mov	r6, r1
	sub	r1, fp, #13632
	sub	r1, r1, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3608:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3609
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	mul	r2, r3, r2
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r2, r2, r3
	sub	r3, fp, #13632
	sub	r3, r3, #20
	ldr	r4, [r3]
	ldr	r3, [r3, #4]
	eor	r5, r3, #-2147483648
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r1, r3
	lsl	r3, r2, #3
	add	r3, r1, r3
	sub	r3, r3, #520
	stm	r3, {r4-r5}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3607:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3610
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3611
.L3614:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3612
.L3613:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	mul	r2, r3, r2
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r2, r3
	sub	r2, fp, #12288
	sub	r2, r2, #20
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #520
	ldmia	r3, {r4-r5}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #1312
	sub	r3, r3, #8
	ldmia	r3, {r0-r1}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #1312
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	mul	r2, r3, r2
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r6, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12288
	sub	r1, r1, #20
	mov	r0, r1
	lsl	r1, r6, #3
	add	r1, r0, r1
	sub	r1, r1, #520
	stm	r1, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3612:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3613
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3611:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3614
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3615
.L3616:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #520
	ldmia	r3, {r0-r1}
	sub	r3, fp, #8192
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #1408
	sub	r3, r3, #8
	stm	r3, {r0-r1}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3615:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	ldr	r2, .L3662+48
	ldr	r2, [r2]
	mul	r3, r2, r3
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3616
	ldr	r3, .L3662+48
	ldr	r1, [r3]
	ldr	r3, .L3662+48
	ldr	ip, [r3]
	sub	r2, fp, #13440
	sub	r2, r2, #20
	sub	r2, r2, #8
	sub	r0, fp, #9600
	sub	r0, r0, #20
	sub	r0, r0, #8
	sub	r3, fp, #13248
	sub	r3, r3, #20
	sub	r3, r3, #40
	str	r3, [sp]
	mov	r3, r2
	mov	r2, ip
	bl	tred2
	ldr	r3, .L3662+48
	ldr	r2, [r3]
	ldr	r3, .L3662+48
	ldr	ip, [r3]
	sub	r1, fp, #13248
	sub	r1, r1, #20
	sub	r1, r1, #40
	sub	r0, fp, #13440
	sub	r0, r0, #20
	sub	r0, r0, #8
	sub	r3, fp, #9600
	sub	r3, r3, #20
	sub	r3, r3, #8
	str	r3, [sp]
	mov	r3, ip
	bl	tqli
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3617
.L3618:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #1152
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r1, r0
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #3392
	add	r3, r3, #8
	str	r1, [r2, r3, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3617:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3618
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3619
.L3622:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3620
.L3621:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	mul	r2, r3, r2
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r2, r3
	sub	r2, fp, #8192
	sub	r2, r2, #20
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #1408
	sub	r3, r3, #8
	ldmia	r3, {r0-r1}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #1312
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r1, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	add	r3, r3, #2592
	add	r3, r3, #8
	str	r0, [r1, r3, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r1, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	add	r3, r3, #2592
	add	r3, r3, #8
	ldr	r0, [r1, r3, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r1, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1356]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	add	r3, r3, r2
	add	r3, r3, #2992
	add	r3, r3, #8
	str	r0, [r1, r3, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3620:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3621
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3619:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3622
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3623
.L3626:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3624
.L3625:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	mul	r2, r3, r2
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r2, r3
	sub	r2, fp, #8192
	sub	r2, r2, #20
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #1408
	sub	r3, r3, #8
	ldmia	r3, {r0-r1}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #1312
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r1, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	add	r3, r3, #40
	str	r0, [r1, r3, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3624:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3625
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3623:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3626
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3627
.L3630:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #2576
	add	r3, r3, #4
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3628
.L3629:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #2576
	add	r3, r3, #4
	ldr	r0, [r2, r3, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r1, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	add	r3, r3, #40
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #2576
	add	r3, r3, #4
	str	r1, [r2, r3, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3628:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3629
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3627:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3630
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3631
.L3632:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #3392
	add	r3, r3, #8
	ldr	r3, [r2, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r3, .L3662+8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12288
	sub	r1, r1, #20
	mov	r0, r1
	sub	r1, fp, #12288
	sub	r1, r1, #20
	ldr	r1, [r1, #-1360]
	lsl	r1, r1, #3
	add	r1, r0, r1
	sub	r1, r1, #840
	stm	r1, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3631:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3632
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3633
.L3636:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3634
.L3635:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r1, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	add	r3, r3, #2592
	add	r3, r3, #8
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #840
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #4096
	sub	r3, r3, #20
	mov	ip, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, ip, r3
	sub	r3, r3, #2304
	sub	r3, r3, #8
	stm	r3, {r0-r1}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3634:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3635
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3633:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3636
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3637
.L3642:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3638
.L3663:
	.align	2
.L3662:
	.word	.LC643
	.word	16880
	.word	approxMLnearT
	.word	9567
	.word	.LC640
	.word	9568
	.word	.LC641
	.word	__PRETTY_FUNCTION__.11396
	.word	9572
	.word	.LC642
	.word	.LC134
	.word	1072693248
	.word	nCodes
	.word	.LC643
.L3641:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #3200
	sub	r3, r3, #8
	mov	r0, #0
	mov	r1, #0
	stm	r3, {r0-r1}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1352]
	b	.L3639
.L3640:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #3200
	sub	r3, r3, #8
	ldmia	r3, {r4-r5}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r1, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1352]
	add	r3, r3, r2
	add	r3, r3, #40
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #4096
	sub	r3, r3, #20
	mov	ip, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1352]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, ip, r3
	sub	r3, r3, #2304
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #3200
	sub	r3, r3, #8
	stm	r3, {r0-r1}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1352]
	add	r3, r3, #1
	str	r3, [r2, #-1352]
.L3639:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1352]
	cmp	r2, r3
	blt	.L3640
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3638:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3641
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3637:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3642
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1360]
	b	.L3643
.L3659:
	sub	r3, fp, #13568
	sub	r3, r3, #20
	sub	r3, r3, #48
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	stmdb	r1, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3644
.L3647:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1356]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #3200
	sub	r3, r3, #8
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3645
	ldr	r3, .L3662+28
	ldr	r2, .L3662+12
	ldr	r1, .L3662+40
	ldr	r0, .L3662+16
	bl	__assert_fail
.L3645:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1348]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	ldr	r3, [r3, r2, lsl #2]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3646
	ldr	r3, .L3662+28
	ldr	r2, .L3662+20
	ldr	r1, .L3662+40
	ldr	r0, .L3662+24
	bl	__assert_fail
.L3646:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1348]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	ldr	r3, [r3, r2, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #3200
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #3200
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12288
	sub	r1, r1, #20
	mov	r0, r1
	sub	r1, fp, #12288
	sub	r1, r1, #20
	ldr	r1, [r1, #-1356]
	lsl	r1, r1, #3
	add	r1, r0, r1
	sub	r1, r1, #680
	stm	r1, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #680
	ldmia	r3, {r0-r1}
	sub	r3, fp, #13568
	sub	r3, r3, #20
	sub	r3, r3, #48
	mov	r4, r3
	sub	r3, fp, #13568
	sub	r3, r3, #20
	sub	r3, r3, #48
	mov	ip, r3
	mov	r2, r0
	mov	r3, r1
	ldmdb	ip, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stmdb	r4, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3644:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3647
	sub	r3, fp, #13568
	sub	r3, r3, #20
	sub	r3, r3, #48
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	ldmdb	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L3648
	ldr	r3, .L3662+28
	ldr	r2, .L3662+32
	ldr	r1, .L3662+40
	ldr	r0, .L3662+36
	bl	__assert_fail
.L3648:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3649
.L3650:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #680
	ldmia	r3, {r4-r5}
	sub	r3, fp, #13568
	sub	r3, r3, #20
	sub	r3, r3, #48
	ldmdb	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L3662+44
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12288
	sub	r1, r1, #20
	mov	r0, r1
	sub	r1, fp, #12288
	sub	r1, r1, #20
	ldr	r1, [r1, #-1356]
	lsl	r1, r1, #3
	add	r1, r0, r1
	sub	r1, r1, #680
	stm	r1, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3649:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3650
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3651
.L3652:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #680
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r1, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	add	r3, r3, #3408
	add	r3, r3, #12
	str	r0, [r1, r3, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3651:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3652
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3653
.L3654:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #680
	ldmia	r3, {r4-r5}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1348]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	ldr	r3, [r3, r2, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12288
	sub	r1, r1, #20
	mov	r0, r1
	sub	r1, fp, #12288
	sub	r1, r1, #20
	ldr	r1, [r1, #-1356]
	lsl	r1, r1, #3
	add	r1, r0, r1
	sub	r1, r1, #680
	stm	r1, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3653:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3654
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1356]
	b	.L3655
.L3658:
	sub	r3, fp, #13568
	sub	r3, r3, #20
	sub	r3, r3, #48
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1352]
	b	.L3656
.L3657:
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1352]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #680
	ldmia	r3, {r4-r5}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r1, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	add	r3, r3, #40
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #13568
	sub	r3, r3, #20
	sub	r3, r3, #48
	mov	r4, r3
	sub	r3, fp, #13568
	sub	r3, r3, #20
	sub	r3, r3, #48
	mov	ip, r3
	mov	r2, r0
	mov	r3, r1
	ldmia	ip, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1352]
	add	r3, r3, #1
	str	r3, [r2, #-1352]
.L3656:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1352]
	cmp	r2, r3
	blt	.L3657
	sub	r3, fp, #13568
	sub	r3, r3, #20
	sub	r3, r3, #48
	ldmia	r3, {r0-r1}
	bl	__aeabi_d2f
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r1, [r3, #-1348]
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r2, [r3, #-1360]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	add	r3, r3, r2
	add	r3, r3, #3808
	add	r3, r3, #12
	str	r0, [r1, r3, lsl #2]	@ float
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1356]
	add	r3, r3, #1
	str	r3, [r2, #-1356]
.L3655:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1356]
	cmp	r2, r3
	blt	.L3658
	sub	r3, fp, #12288
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1360]
	add	r3, r3, #1
	str	r3, [r2, #-1360]
.L3643:
	ldr	r3, .L3662+48
	ldr	r3, [r3]
	sub	r2, fp, #12288
	sub	r2, r2, #20
	ldr	r2, [r2, #-1360]
	cmp	r2, r3
	blt	.L3659
	sub	r3, fp, #12288
	sub	r3, r3, #20
	ldr	r3, [r3, #-1348]
	ldr	r2, .L3662+52
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L3661
	bl	__stack_chk_fail
.L3661:
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
	.size	CreateTransitionMatrix, .-CreateTransitionMatrix
	.align	2
	.global	TransMatToDistanceMat
	.syntax unified
	.arm
	.fpu softvfp
	.type	TransMatToDistanceMat, %function
TransMatToDistanceMat:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L3665
	mov	r3, #0
	b	.L3666
.L3665:
	ldr	r0, .L3675
	bl	mymalloc
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3667
.L3670:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L3668
.L3669:
	ldr	r1, [fp, #-8]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r1, r3, lsl #2]	@ float
	ldr	r1, [fp, #-24]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r3, r2
	add	r3, r3, #2592
	add	r3, r3, #8
	ldr	r0, [r1, r3, lsl #2]	@ float
	ldr	r1, [fp, #-8]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r3, r2
	add	r3, r3, #400
	str	r0, [r1, r3, lsl #2]	@ float
	ldr	r1, [fp, #-24]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r3, r2
	add	r3, r3, #40
	ldr	r0, [r1, r3, lsl #2]	@ float
	ldr	r1, [fp, #-8]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r3, r2
	add	r3, r3, #840
	str	r0, [r1, r3, lsl #2]	@ float
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L3668:
	ldr	r3, .L3675+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L3669
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3667:
	ldr	r3, .L3675+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L3670
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3671
.L3674:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r2, r2, #820
	mov	r1, #0
	str	r1, [r3, r2, lsl #2]	@ float
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L3672
.L3673:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r2, r2, #820
	ldr	r0, [r3, r2, lsl #2]	@ float
	ldr	r1, [fp, #-24]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r3, r2
	add	r3, r3, #2592
	add	r3, r3, #8
	ldr	r3, [r1, r3, lsl #2]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, r3
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r2, r2, #820
	str	r1, [r3, r2, lsl #2]	@ float
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L3672:
	ldr	r3, .L3675+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L3673
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3671:
	ldr	r3, .L3675+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L3674
	ldr	r3, [fp, #-8]
.L3666:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3676:
	.align	2
.L3675:
	.word	5040
	.word	nCodes
	.size	TransMatToDistanceMat, .-TransMatToDistanceMat
	.align	2
	.global	tred2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tred2, %function
tred2:
	@ args = 4, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #84
	str	r0, [fp, #-96]
	str	r1, [fp, #-100]
	str	r2, [fp, #-104]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-92]
	b	.L3678
.L3699:
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	str	r3, [fp, #-80]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-80]
	cmp	r3, #1
	ble	.L3679
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L3680
.L3681:
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r6, r2
	bic	r7, r3, #-2147483648
	mov	r2, r6
	mov	r3, r7
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L3680:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	ble	.L3681
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L3716
	ldr	r3, [fp, #-80]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldr	r2, [fp, #-92]
	sub	r2, r2, #-536870911
	lsl	r2, r2, #3
	ldr	r1, [fp, #4]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	b	.L3684
.L3716:
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L3685
.L3686:
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r8, r2, r3
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	r8, {r2-r3}
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L3685:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	ble	.L3686
	ldr	r3, [fp, #-80]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	sqrt
	mov	r2, r0
	mov	r3, r1
	mov	r1, r2
	str	r1, [fp, #-68]
	eor	r3, r3, #-2147483648
	str	r3, [fp, #-64]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3687
	ldr	r4, [fp, #-68]
	ldr	r3, [fp, #-64]
	eor	r5, r3, #-2147483648
	str	r4, [fp, #-68]
	str	r5, [fp, #-64]
.L3687:
	ldr	r3, [fp, #-92]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r8, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	stm	r8, {r2-r3}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-80]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r8, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r8, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	mov	r3, #1
	str	r3, [fp, #-88]
	b	.L3689
.L3694:
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r8, r2, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	r8, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L3690
.L3691:
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L3690:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	ble	.L3691
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-84]
	b	.L3692
.L3693:
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L3692:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	ble	.L3693
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r8, r2, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	r8, {r2-r3}
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L3689:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	ble	.L3694
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r3, #1
	str	r3, [fp, #-88]
	b	.L3695
.L3698:
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldmia	r3, {r8-r9}
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r1, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L3696
.L3697:
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r8-r9}
	ldr	r3, [fp, #-84]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #116
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r10, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r10, {r2-r3}
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L3696:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	ble	.L3697
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L3695:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	ble	.L3698
	b	.L3684
.L3679:
	ldr	r3, [fp, #-80]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldr	r2, [fp, #-92]
	sub	r2, r2, #-536870911
	lsl	r2, r2, #3
	ldr	r1, [fp, #4]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
.L3684:
	ldr	r3, [fp, #-92]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-108]
	add	r1, r2, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	str	r3, [fp, #-92]
.L3678:
	ldr	r3, [fp, #-92]
	cmp	r3, #1
	bgt	.L3699
	ldr	r1, [fp, #-108]
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r1, [fp, #4]
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	mov	r3, #1
	str	r3, [fp, #-92]
	b	.L3700
.L3711:
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-92]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	bne	.L3701
	mov	r3, #1
	str	r3, [fp, #-88]
	b	.L3703
.L3708:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L3704
.L3705:
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L3704:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	ble	.L3705
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L3706
.L3707:
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r6, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L3706:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	ble	.L3707
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L3703:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	ble	.L3708
.L3701:
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldr	r2, [fp, #-92]
	sub	r2, r2, #-536870911
	lsl	r2, r2, #3
	ldr	r1, [fp, #-108]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r1, r2, r3
	mov	r2, #0
	ldr	r3, .L3717
	stm	r1, {r2-r3}
	mov	r3, #1
	str	r3, [fp, #-88]
	b	.L3709
.L3710:
	ldr	r3, [fp, #-92]
	sub	r3, r3, #1
	ldr	r2, [fp, #-104]
	mul	r2, r3, r2
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	mov	r0, #0
	mov	r1, #0
	stm	r3, {r0-r1}
	ldr	r2, [fp, #-88]
	sub	r2, r2, #1
	ldr	r1, [fp, #-104]
	mul	r1, r2, r1
	ldr	r2, [fp, #-92]
	sub	r2, r2, #1
	add	r2, r1, r2
	lsl	r2, r2, #3
	ldr	r1, [fp, #-96]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L3709:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	ble	.L3710
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L3700:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	ble	.L3711
	nop
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3718:
	.align	2
.L3717:
	.word	1072693248
	.size	tred2, .-tred2
	.align	2
	.global	pythag
	.syntax unified
	.arm
	.fpu softvfp
	.type	pythag, %function
pythag:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #32
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r6, [fp, #-44]
	ldr	r3, [fp, #-40]
	bic	r7, r3, #-2147483648
	str	r6, [fp, #-36]
	str	r7, [fp, #-32]
	ldr	r4, [fp, #-52]
	ldr	r3, [fp, #-48]
	bic	r5, r3, #-2147483648
	str	r4, [fp, #-28]
	str	r5, [fp, #-24]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3729
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L3731
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sqrt
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	b	.L3726
.L3729:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	bne	.L3730
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L3731
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sqrt
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	b	.L3726
.L3730:
	mov	r2, #0
	mov	r3, #0
.L3726:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L3732:
	.align	2
.L3731:
	.word	1072693248
	.size	pythag, .-pythag
	.section	.rodata
	.align	2
.LC644:
	.ascii	"iter < 30\000"
	.text
	.align	2
	.global	tqli
	.syntax unified
	.arm
	.fpu softvfp
	.type	tqli, %function
tqli:
	@ args = 4, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #128
	str	r0, [fp, #-120]
	str	r1, [fp, #-124]
	str	r2, [fp, #-128]
	str	r3, [fp, #-132]
	mov	r3, #0
	str	r3, [fp, #-112]
	mov	r3, #0
	str	r3, [fp, #-108]
	mov	r3, #0
	str	r3, [fp, #-104]
	mov	r3, #0
	str	r3, [fp, #-100]
	mov	r3, #0
	str	r3, [fp, #-96]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r3, #2
	str	r3, [fp, #-112]
	b	.L3734
.L3735:
	ldr	r3, [fp, #-112]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	ldr	r2, [fp, #-112]
	sub	r2, r2, #-536870910
	lsl	r2, r2, #3
	ldr	r1, [fp, #-124]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-112]
.L3734:
	ldr	r2, [fp, #-112]
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	ble	.L3735
	ldr	r3, [fp, #-128]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	mov	r3, #1
	str	r3, [fp, #-100]
	b	.L3736
.L3754:
	mov	r3, #0
	str	r3, [fp, #-108]
.L3737:
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-96]
	b	.L3738
.L3742:
	ldr	r3, [fp, #-96]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-140]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-96]
	add	r3, r3, #536870912
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-144]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-96]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-156]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-152]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	bne	.L3760
	ldr	r3, [fp, #-96]
	add	r3, r3, #1
	str	r3, [fp, #-96]
.L3738:
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	blt	.L3742
	b	.L3741
.L3760:
	nop
.L3741:
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	beq	.L3743
	ldr	r3, [fp, #-108]
	cmp	r3, #29
	ble	.L3744
	ldr	r3, .L3761
	ldr	r2, .L3761+4
	ldr	r1, .L3761+8
	ldr	r0, .L3761+12
	bl	__assert_fail
.L3744:
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-100]
	add	r3, r3, #536870912
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-100]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-100]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	mov	r2, #0
	ldr	r3, .L3761+16
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	pythag
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	ldr	r3, [fp, #-96]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-100]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-100]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L3758
	ldr	r8, [fp, #-36]
	ldr	r3, [fp, #-32]
	eor	r9, r3, #-2147483648
	b	.L3747
.L3758:
	sub	r9, fp, #36
	ldmia	r9, {r8-r9}
.L3747:
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	mov	r2, #0
	ldr	r3, .L3761+16
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r2, #0
	ldr	r3, .L3761+16
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-96]
	sub	r3, r3, #1
	str	r3, [fp, #-112]
	b	.L3748
.L3753:
	ldr	r3, [fp, #-112]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-112]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	pythag
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	ldr	r3, [fp, #-112]
	add	r3, r3, #536870912
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r1, r2, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L3759
	ldr	r3, [fp, #-112]
	add	r3, r3, #536870912
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-112]
	add	r3, r3, #536870912
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r4, r2, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-96]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	b	.L3737
.L3759:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-112]
	add	r3, r3, #536870912
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-112]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-112]
	add	r3, r3, #536870912
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r4, r2, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	mov	r3, #1
	str	r3, [fp, #-104]
	b	.L3751
.L3752:
	ldr	r3, [fp, #-112]
	ldr	r2, [fp, #-132]
	mul	r2, r3, r2
	ldr	r3, [fp, #-104]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-132]
	mul	r2, r3, r2
	ldr	r3, [fp, #-104]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-112]
	ldr	r2, [fp, #-132]
	mul	r2, r3, r2
	ldr	r3, [fp, #-104]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r4, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-132]
	mul	r2, r3, r2
	ldr	r3, [fp, #-104]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-112]
	sub	r3, r3, #1
	ldr	r2, [fp, #-132]
	mul	r2, r3, r2
	ldr	r3, [fp, #-104]
	sub	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r4, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
.L3751:
	ldr	r2, [fp, #-104]
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	ble	.L3752
	ldr	r3, [fp, #-112]
	sub	r3, r3, #1
	str	r3, [fp, #-112]
.L3748:
	ldr	r2, [fp, #-112]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	bge	.L3753
	ldr	r3, [fp, #-100]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-100]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r4, r2, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-100]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r1, r2, r3
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-96]
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-124]
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	b	.L3737
.L3743:
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L3736:
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	ble	.L3754
	nop
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L3762:
	.align	2
.L3761:
	.word	__PRETTY_FUNCTION__.11525
	.word	9732
	.word	.LC134
	.word	.LC644
	.word	1072693248
	.size	tqli, .-tqli
	.align	2
	.global	vector_multiply
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_multiply, %function
vector_multiply:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3764
.L3765:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r4, r2, r3
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3764:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L3765
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	vector_multiply, .-vector_multiply
	.align	2
	.global	vector_multiply_sum
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_multiply_sum, %function
vector_multiply_sum:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-8]	@ float
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L3767
.L3768:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-8]	@ float
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L3767:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	blt	.L3768
	ldr	r3, [fp, #-8]	@ float
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_multiply_sum, .-vector_multiply_sum
	.align	2
	.global	vector_multiply3_sum
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_multiply3_sum, %function
vector_multiply3_sum:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-8]	@ float
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L3771
.L3772:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-8]	@ float
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L3771:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L3772
	ldr	r3, [fp, #-8]	@ float
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_multiply3_sum, .-vector_multiply3_sum
	.align	2
	.global	vector_dot_product_rot
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_dot_product_rot, %function
vector_dot_product_rot:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-12]	@ float
	mov	r3, #0
	str	r3, [fp, #-8]	@ float
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3775
.L3776:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-12]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-12]	@ float
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-8]	@ float
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3775:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	blt	.L3776
	ldr	r1, [fp, #-8]	@ float
	ldr	r0, [fp, #-12]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_dot_product_rot, .-vector_dot_product_rot
	.align	2
	.global	vector_sum
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_sum, %function
vector_sum:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-12]	@ float
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L3779
.L3780:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	ldr	r0, [fp, #-12]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-12]	@ float
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L3779:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L3780
	ldr	r3, [fp, #-12]	@ float
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_sum, .-vector_sum
	.align	2
	.global	vector_multiply_by
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_multiply_by, %function
vector_multiply_by:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]	@ float
	str	r2, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3783
.L3784:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r4, r2, r3
	ldr	r1, [fp, #-28]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3783:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L3784
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	vector_multiply_by, .-vector_multiply_by
	.align	2
	.global	vector_add_mult
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_add_mult, %function
vector_add_mult:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]	@ float
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3786
.L3787:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r5, [r3]	@ float
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-32]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r4, r2, r3
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3786:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	blt	.L3787
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	vector_add_mult, .-vector_add_mult
	.align	2
	.global	matrixt_by_vector4
	.syntax unified
	.arm
	.fpu softvfp
	.type	matrixt_by_vector4, %function
matrixt_by_vector4:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L3789
.L3792:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L3790
.L3791:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	ldr	r3, [r3, r2, lsl #2]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L3790:
	ldr	r3, [fp, #-24]
	cmp	r3, #3
	ble	.L3791
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r4, r2, r3
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L3789:
	ldr	r3, [fp, #-28]
	cmp	r3, #3
	ble	.L3792
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	matrixt_by_vector4, .-matrixt_by_vector4
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.8096, %object
	.size	__PRETTY_FUNCTION__.8096, 5
__PRETTY_FUNCTION__.8096:
	.ascii	"main\000"
	.local	time_now.8200
	.comm	time_now.8200,8,4
	.local	time_set.8197
	.comm	time_set.8197,1,1
	.local	time_last.8198
	.comm	time_last.8198,8,4
	.local	time_begin.8199
	.comm	time_begin.8199,8,4
	.local	elapsed.8201
	.comm	elapsed.8201,8,4
	.align	2
	.type	__PRETTY_FUNCTION__.8207, %object
	.size	__PRETTY_FUNCTION__.8207, 11
__PRETTY_FUNCTION__.8207:
	.ascii	"LogMLRates\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8306, %object
	.size	__PRETTY_FUNCTION__.8306, 20
__PRETTY_FUNCTION__.8306:
	.ascii	"AllocRateCategories\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8318, %object
	.size	__PRETTY_FUNCTION__.8318, 7
__PRETTY_FUNCTION__.8318:
	.ascii	"FastNJ\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8420, %object
	.size	__PRETTY_FUNCTION__.8420, 19
__PRETTY_FUNCTION__.8420:
	.ascii	"ExhaustiveNJSearch\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8433, %object
	.size	__PRETTY_FUNCTION__.8433, 13
__PRETTY_FUNCTION__.8433:
	.ascii	"FastNJSearch\000"
	.local	buf.8439
	.comm	buf.8439,5000,4
	.align	2
	.type	__PRETTY_FUNCTION__.8455, %object
	.size	__PRETTY_FUNCTION__.8455, 17
__PRETTY_FUNCTION__.8455:
	.ascii	"ReadTreeAddChild\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8466, %object
	.size	__PRETTY_FUNCTION__.8466, 21
__PRETTY_FUNCTION__.8466:
	.ascii	"ReadTreeMaybeAddLeaf\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8473, %object
	.size	__PRETTY_FUNCTION__.8473, 15
__PRETTY_FUNCTION__.8473:
	.ascii	"ReadTreeRemove\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8495, %object
	.size	__PRETTY_FUNCTION__.8495, 9
__PRETTY_FUNCTION__.8495:
	.ascii	"ReadTree\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8610, %object
	.size	__PRETTY_FUNCTION__.8610, 8
__PRETTY_FUNCTION__.8610:
	.ascii	"PrintNJ\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8675, %object
	.size	__PRETTY_FUNCTION__.8675, 14
__PRETTY_FUNCTION__.8675:
	.ascii	"ReadAlignment\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8720, %object
	.size	__PRETTY_FUNCTION__.8720, 18
__PRETTY_FUNCTION__.8720:
	.ascii	"FreeAlignmentSeqs\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8746, %object
	.size	__PRETTY_FUNCTION__.8746, 17
__PRETTY_FUNCTION__.8746:
	.ascii	"AlnToConstraints\000"
	.local	codeSet.8761
	.comm	codeSet.8761,4,4
	.local	charToCode.8760
	.comm	charToCode.8760,256,4
	.align	2
	.type	__PRETTY_FUNCTION__.8770, %object
	.size	__PRETTY_FUNCTION__.8770, 13
__PRETTY_FUNCTION__.8770:
	.ascii	"SeqToProfile\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8807, %object
	.size	__PRETTY_FUNCTION__.8807, 23
__PRETTY_FUNCTION__.8807:
	.ascii	"CorrectedPairDistances\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8956, %object
	.size	__PRETTY_FUNCTION__.8956, 12
__PRETTY_FUNCTION__.8956:
	.ascii	"ProfileDist\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8964, %object
	.size	__PRETTY_FUNCTION__.8964, 10
__PRETTY_FUNCTION__.8964:
	.ascii	"AddToFreq\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8971, %object
	.size	__PRETTY_FUNCTION__.8971, 11
__PRETTY_FUNCTION__.8971:
	.ascii	"SetProfile\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9001, %object
	.size	__PRETTY_FUNCTION__.9001, 15
__PRETTY_FUNCTION__.9001:
	.ascii	"AverageProfile\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9048, %object
	.size	__PRETTY_FUNCTION__.9048, 11
__PRETTY_FUNCTION__.9048:
	.ascii	"OutProfile\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9079, %object
	.size	__PRETTY_FUNCTION__.9079, 17
__PRETTY_FUNCTION__.9079:
	.ascii	"UpdateOutProfile\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9113, %object
	.size	__PRETTY_FUNCTION__.9113, 12
__PRETTY_FUNCTION__.9113:
	.ascii	"SetCodeDist\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9121, %object
	.size	__PRETTY_FUNCTION__.9121, 11
__PRETTY_FUNCTION__.9121:
	.ascii	"SetBestHit\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9243, %object
	.size	__PRETTY_FUNCTION__.9243, 17
__PRETTY_FUNCTION__.9243:
	.ascii	"PosteriorProfile\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9428, %object
	.size	__PRETTY_FUNCTION__.9428, 10
__PRETTY_FUNCTION__.9428:
	.ascii	"PairLogLk\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9571, %object
	.size	__PRETTY_FUNCTION__.9571, 13
__PRETTY_FUNCTION__.9571:
	.ascii	"PairNegLogLk\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9595, %object
	.size	__PRETTY_FUNCTION__.9595, 18
__PRETTY_FUNCTION__.9595:
	.ascii	"MLQuartetOptimize\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9668, %object
	.size	__PRETTY_FUNCTION__.9668, 10
__PRETTY_FUNCTION__.9668:
	.ascii	"TreeLogLk\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9700, %object
	.size	__PRETTY_FUNCTION__.9700, 9
__PRETTY_FUNCTION__.9700:
	.ascii	"SetMLGtr\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9738, %object
	.size	__PRETTY_FUNCTION__.9738, 12
__PRETTY_FUNCTION__.9738:
	.ascii	"GTRNegLogLk\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9764, %object
	.size	__PRETTY_FUNCTION__.9764, 24
__PRETTY_FUNCTION__.9764:
	.ascii	"MLSiteLikelihoodsByRate\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9783, %object
	.size	__PRETTY_FUNCTION__.9783, 11
__PRETTY_FUNCTION__.9783:
	.ascii	"SetMLRates\000"
	.align	2
	.type	__PRETTY_FUNCTION__.9887, %object
	.size	__PRETTY_FUNCTION__.9887, 25
__PRETTY_FUNCTION__.9887:
	.ascii	"OptimizeAllBranchLengths\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10029, %object
	.size	__PRETTY_FUNCTION__.10029, 13
__PRETTY_FUNCTION__.10029:
	.ascii	"FindSPRSteps\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10039, %object
	.size	__PRETTY_FUNCTION__.10039, 14
__PRETTY_FUNCTION__.10039:
	.ascii	"UnwindSPRStep\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10064, %object
	.size	__PRETTY_FUNCTION__.10064, 13
__PRETTY_FUNCTION__.10064:
	.ascii	"UpdateForNNI\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10082, %object
	.size	__PRETTY_FUNCTION__.10082, 4
__PRETTY_FUNCTION__.10082:
	.ascii	"SPR\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10133, %object
	.size	__PRETTY_FUNCTION__.10133, 17
__PRETTY_FUNCTION__.10133:
	.ascii	"RecomputeProfile\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10154, %object
	.size	__PRETTY_FUNCTION__.10154, 13
__PRETTY_FUNCTION__.10154:
	.ascii	"ReplaceChild\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10233, %object
	.size	__PRETTY_FUNCTION__.10233, 10
__PRETTY_FUNCTION__.10233:
	.ascii	"SetupABCD\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10249, %object
	.size	__PRETTY_FUNCTION__.10249, 8
__PRETTY_FUNCTION__.10249:
	.ascii	"Sibling\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10255, %object
	.size	__PRETTY_FUNCTION__.10255, 13
__PRETTY_FUNCTION__.10255:
	.ascii	"RootSiblings\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10367, %object
	.size	__PRETTY_FUNCTION__.10367, 13
__PRETTY_FUNCTION__.10367:
	.ascii	"SplitSupport\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10407, %object
	.size	__PRETTY_FUNCTION__.10407, 10
__PRETTY_FUNCTION__.10407:
	.ascii	"SHSupport\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10456, %object
	.size	__PRETTY_FUNCTION__.10456, 13
__PRETTY_FUNCTION__.10456:
	.ascii	"SetCriterion\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10465, %object
	.size	__PRETTY_FUNCTION__.10465, 15
__PRETTY_FUNCTION__.10465:
	.ascii	"SetOutDistance\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10490, %object
	.size	__PRETTY_FUNCTION__.10490, 12
__PRETTY_FUNCTION__.10490:
	.ascii	"InitTopHits\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10526, %object
	.size	__PRETTY_FUNCTION__.10526, 18
__PRETTY_FUNCTION__.10526:
	.ascii	"SetAllLeafTopHits\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10599, %object
	.size	__PRETTY_FUNCTION__.10599, 19
__PRETTY_FUNCTION__.10599:
	.ascii	"GetBestFromTopHits\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10647, %object
	.size	__PRETTY_FUNCTION__.10647, 15
__PRETTY_FUNCTION__.10647:
	.ascii	"UniqueBestHits\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10663, %object
	.size	__PRETTY_FUNCTION__.10663, 11
__PRETTY_FUNCTION__.10663:
	.ascii	"TopHitJoin\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10726, %object
	.size	__PRETTY_FUNCTION__.10726, 14
__PRETTY_FUNCTION__.10726:
	.ascii	"UpdateVisible\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10740, %object
	.size	__PRETTY_FUNCTION__.10740, 17
__PRETTY_FUNCTION__.10740:
	.ascii	"UpdateTopVisible\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10771, %object
	.size	__PRETTY_FUNCTION__.10771, 16
__PRETTY_FUNCTION__.10771:
	.ascii	"ResetTopVisible\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10814, %object
	.size	__PRETTY_FUNCTION__.10814, 15
__PRETTY_FUNCTION__.10814:
	.ascii	"TopHitNJSearch\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10829, %object
	.size	__PRETTY_FUNCTION__.10829, 6
__PRETTY_FUNCTION__.10829:
	.ascii	"NGaps\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10854, %object
	.size	__PRETTY_FUNCTION__.10854, 17
__PRETTY_FUNCTION__.10854:
	.ascii	"SortSaveBestHits\000"
	.align	2
	.type	__PRETTY_FUNCTION__.10878, %object
	.size	__PRETTY_FUNCTION__.10878, 17
__PRETTY_FUNCTION__.10878:
	.ascii	"TransferBestHits\000"
	.align	2
	.type	__PRETTY_FUNCTION__.11135, %object
	.size	__PRETTY_FUNCTION__.11135, 14
__PRETTY_FUNCTION__.11135:
	.ascii	"MakeHashtable\000"
	.align	2
	.type	__PRETTY_FUNCTION__.11187, %object
	.size	__PRETTY_FUNCTION__.11187, 12
__PRETTY_FUNCTION__.11187:
	.ascii	"UniquifyAln\000"
	.align	2
	.type	__PRETTY_FUNCTION__.11213, %object
	.size	__PRETTY_FUNCTION__.11213, 18
__PRETTY_FUNCTION__.11213:
	.ascii	"TraversePostorder\000"
	.align	2
	.type	__PRETTY_FUNCTION__.11240, %object
	.size	__PRETTY_FUNCTION__.11240, 13
__PRETTY_FUNCTION__.11240:
	.ascii	"GetUpProfile\000"
	.align	2
	.type	__PRETTY_FUNCTION__.11259, %object
	.size	__PRETTY_FUNCTION__.11259, 16
__PRETTY_FUNCTION__.11259:
	.ascii	"DeleteUpProfile\000"
	.align	2
	.type	__PRETTY_FUNCTION__.11289, %object
	.size	__PRETTY_FUNCTION__.11289, 10
__PRETTY_FUNCTION__.11289:
	.ascii	"CreateGTR\000"
	.align	2
	.type	__PRETTY_FUNCTION__.11396, %object
	.size	__PRETTY_FUNCTION__.11396, 23
__PRETTY_FUNCTION__.11396:
	.ascii	"CreateTransitionMatrix\000"
	.align	2
	.type	__PRETTY_FUNCTION__.11525, %object
	.size	__PRETTY_FUNCTION__.11525, 5
__PRETTY_FUNCTION__.11525:
	.ascii	"tqli\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
