// File: /workspace/github_c_makefile_star2_O3/dapogon[P]cellcoal/src/cellcoal.c
// Function: EvolveSitesOnTree
void EvolveSitesOnTree (TreeNode *treeRoot, int genome, long int *seed)
    {
    int i = 0;
		
    if (rateVarAmongSites == YES)
        for (i=0; i<numSites; i++)
            allSites[i].rateMultiplier = RandomGamma (alphaSites, seed) / alphaSites;

	if (doGeneticSignatures == YES)
		{
		SimulateSignatureISM(treeRoot, genome, seed); /* we assume diploid ISM for genetic signatures */
		}
	else
		{
		if (propAltModelSites == 0)  /* only default model (ISM diploid) sites */
			{
			numDefaultModelSites = numSites;
			numAltModelSites = 0;
			for (i=0; i<numSites; i++)
				DefaultModelSites[i] = i;
			SimulateISM (treeRoot, genome, NO, seed);
			}
	   else if (propAltModelSites == 1.0)  /* only alternative model sites */
			{
			numDefaultModelSites = 0;
			numAltModelSites = numSites;
			for (i=0; i<numSites; i++)
				AltModelSites[i] = i;
			if (altModel == ISMhap)
				SimulateISM (treeRoot, genome, YES, seed);
			else if (altModel == Mk2)
				SimulateMk2 (treeRoot, genome, seed);
			else if (altModel == finiteDNA)
				SimulateFiniteDNA (treeRoot, genome, seed);
			else
				{
				fprintf (stderr, "\n\nERROR: Sorry, the specified model is unknown for me");
				exit(0);
				}
			  }
		else /* both ISM and non-ISM sites */
			{
			numDefaultModelSites = 0;
			numAltModelSites = 0;

			for (i=0; i<numSites; i++)
				{
				if (RandomUniform (seed) < propAltModelSites)
					AltModelSites[numAltModelSites++] = i;
				else
					DefaultModelSites[numDefaultModelSites++] = i;
				}
	 
			/* Evolve ISM sites */
			if (numDefaultModelSites > 0)
				SimulateISM (treeRoot, genome, NO, seed);
	 
			/* Evolve non-SIM sites */
			if (numAltModelSites > 0)
				{
				if (altModel == ISMhap)
					SimulateISM (treeRoot, genome, YES, seed);
				else if (altModel == Mk2)
					SimulateMk2 (treeRoot, genome, seed);
				else if (altModel == finiteDNA)
					SimulateFiniteDNA (treeRoot, genome, seed);
				else
					{
					fprintf (stderr, "\n\nERROR: Sorry, the specified model is unknown for me");
					exit(-1);
					}
				}
			}
		}
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, %rbx
movl %esi, 0xc(%rsp)
movq %rdi, 0x10(%rsp)
movl 0x22110(%rip), %r12d    # 0x361a8
testl %r12d, %r12d
setg %al
andb 0x222bc(%rip), %al      # 0x36360
cmpb $0x1, %al
jne 0x140ec
movl $0x80, %r14d
xorl %r15d, %r15d
movsd 0x222af(%rip), %xmm0    # 0x36368
movq %rbx, %rdi
callq 0x169ab
divsd 0x2229f(%rip), %xmm0    # 0x36368
movq 0x234f0(%rip), %rax     # 0x375c0
movsd %xmm0, (%rax,%r14)
incq %r15
movslq 0x220c8(%rip), %r12     # 0x361a8
addq $0x88, %r14
cmpq %r12, %r15
jl 0x140b1
cmpb $0x1, 0x222d9(%rip)     # 0x363cc
jne 0x1428b
movl $0x40, %edi
movl $0x10, %esi
callq 0x21a0
movq %rax, 0x23571(%rip)     # 0x37680
testq %rax, %rax
je 0x14a6d
xorl %r14d, %r14d
movq 0x2355e(%rip), %r15     # 0x37680
movq $0x64, (%r15,%r14)
movl $0x64, %edi
movl $0x4, %esi
callq 0x21a0
movq %rax, 0x8(%r15,%r14)
addq $0x10, %r14
cmpq $0x400, %r14            # imm = 0x400
jne 0x1411b
movl $0x40, %edi
movl $0x10, %esi
callq 0x21a0
movq %rax, 0x23527(%rip)     # 0x37688
testq %rax, %rax
je 0x14a72
xorl %r14d, %r14d
movq 0x23514(%rip), %r15     # 0x37688
movq $0x64, (%r15,%r14)
movl $0x64, %edi
movl $0x4, %esi
callq 0x21a0
movq %rax, 0x8(%r15,%r14)
addq $0x10, %r14
cmpq $0x400, %r14            # imm = 0x400
jne 0x1416d
cmpl $0x0, 0xc(%rsp)
leaq 0x234d7(%rip), %rcx     # 0x37680
leaq 0x234d8(%rip), %rax     # 0x37688
cmoveq %rcx, %rax
movq %r12, 0x18(%rsp)
cmpl $0x3, %r12d
jl 0x1425d
movq 0x233ee(%rip), %rcx     # 0x375b8
movl 0xc(%rsp), %edx
movq (%rcx,%rdx,8), %rcx
movslq 0x23387(%rip), %rdx     # 0x37560
movq (%rcx,%rdx,8), %r14
movq (%rax), %r15
movq 0x18(%rsp), %rax
leal -0x2(%rax), %r12d
xorl %ebp, %ebp
movslq (%r14,%rbp,4), %rax
movslq 0x4(%r14,%rbp,4), %rcx
movslq 0x8(%r14,%rbp,4), %rdx
shlq $0x4, %rax
leaq (%rax,%rcx,4), %rax
addq %rdx, %rax
shlq $0x4, %rax
leaq (%r15,%rax), %r13
movl 0x4(%r15,%rax), %ecx
cmpl (%r15,%rax), %ecx
jne 0x14240
movslq %ecx, %rsi
addl %ecx, %ecx
movl %ecx, (%r13)
movq 0x8(%r13), %rdi
shlq $0x3, %rsi
callq 0x2230
movq %rax, 0x8(%r13)
testq %rax, %rax
je 0x14a68
movl 0x4(%r13), %ecx
jmp 0x14244
movq 0x8(%r13), %rax
leal 0x1(%rcx), %edx
movl %edx, 0x4(%r13)
movslq %ecx, %rcx
movl %ebp, (%rax,%rcx,4)
leaq 0x1(%rbp), %rax
movq %rax, %rbp
cmpq %rax, %r12
jne 0x141eb
cmpb $0x1, 0x2211c(%rip)     # 0x36380
jne 0x14378
movl 0x23538(%rip), %ebp     # 0x377a8
cmpl $0x0, 0xc(%rsp)
movq 0x18(%rsp), %r14
je 0x144d5
subl 0x232e2(%rip), %ebp     # 0x37568
jmp 0x144ef
movsd 0x21f6d(%rip), %xmm0    # 0x36200
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x143de
jp 0x143de
movl %r12d, 0x234f2(%rip)    # 0x377a0
movl $0x0, 0x234ec(%rip)     # 0x377a4
testl %r12d, %r12d
jle 0x14357
movq 0x23310(%rip), %rax     # 0x375d8
movl %r12d, %ecx
incl %r12d
andl $-0x2, %r12d
decq %rcx
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa 0xed79(%rip), %xmm1     # 0x23060
xorl %ecx, %ecx
movdqa 0xed7f(%rip), %xmm2     # 0x23070
pxor %xmm2, %xmm0
pcmpeqd %xmm3, %xmm3
movdqa 0xed7f(%rip), %xmm4     # 0x23080
movdqa %xmm1, %xmm5
pxor %xmm2, %xmm5
movdqa %xmm5, %xmm6
pcmpgtd %xmm0, %xmm6
pcmpeqd %xmm0, %xmm5
pshufd $0xf5, %xmm5, %xmm7     # xmm7 = xmm5[1,1,3,3]
pand %xmm6, %xmm7
pshufd $0xf5, %xmm6, %xmm5     # xmm5 = xmm6[1,1,3,3]
por %xmm7, %xmm5
movd %xmm5, %edx
notl %edx
testb $0x1, %dl
je 0x14335
movl %ecx, (%rax,%rcx,4)
pxor %xmm3, %xmm5
pextrw $0x4, %xmm5, %edx
testb $0x1, %dl
je 0x1434a
leal 0x1(%rcx), %edx
movl %edx, 0x4(%rax,%rcx,4)
addq $0x2, %rcx
paddq %xmm4, %xmm1
cmpq %rcx, %r12
jne 0x14301
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %esi
xorl %edx, %edx
movq %rbx, %rcx
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x170bb
xorps %xmm0, %xmm0
cvtsi2sdl 0x18(%rsp), %xmm0
mulsd 0x23217(%rip), %xmm0    # 0x375a0
movsd %xmm0, 0x28(%rsp)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
xorpd %xmm0, %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x28(%rsp), %xmm0
movq %rbx, %rdi
callq 0x1687f
movsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x18(%rsp)
movsd 0x18(%rsp), %xmm0
incl %ebp
movsd 0xed34(%rip), %xmm1     # 0x23100
ucomisd %xmm0, %xmm1
jae 0x14398
movl 0x21dcf(%rip), %r14d    # 0x361a8
jmp 0x144ef
ucomisd 0xed1a(%rip), %xmm0     # 0x23100
movl $0x0, 0x233b0(%rip)     # 0x377a0
jne 0x14918
jp 0x14918
movl %r12d, 0x233a1(%rip)    # 0x377a4
testl %r12d, %r12d
jle 0x144a2
movq 0x231cd(%rip), %rax     # 0x375e0
movl %r12d, %ecx
incl %r12d
andl $-0x2, %r12d
decq %rcx
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa 0xec2e(%rip), %xmm1     # 0x23060
xorl %ecx, %ecx
movdqa 0xec34(%rip), %xmm2     # 0x23070
pxor %xmm2, %xmm0
pcmpeqd %xmm3, %xmm3
movdqa 0xec34(%rip), %xmm4     # 0x23080
movdqa %xmm1, %xmm5
pxor %xmm2, %xmm5
movdqa %xmm5, %xmm6
pcmpgtd %xmm0, %xmm6
pcmpeqd %xmm0, %xmm5
pshufd $0xf5, %xmm5, %xmm7     # xmm7 = xmm5[1,1,3,3]
pand %xmm6, %xmm7
pshufd $0xf5, %xmm6, %xmm5     # xmm5 = xmm6[1,1,3,3]
por %xmm7, %xmm5
movd %xmm5, %edx
notl %edx
testb $0x1, %dl
je 0x14480
movl %ecx, (%rax,%rcx,4)
pxor %xmm3, %xmm5
pextrw $0x4, %xmm5, %edx
testb $0x1, %dl
je 0x14495
leal 0x1(%rcx), %edx
movl %edx, 0x4(%rax,%rcx,4)
addq $0x2, %rcx
paddq %xmm4, %xmm1
cmpq %rcx, %r12
jne 0x1444c
movl 0x21d50(%rip), %eax     # 0x361f8
cmpl $0x2, %eax
je 0x14a35
cmpl $0x1, %eax
je 0x14a16
testl %eax, %eax
jne 0x14a7e
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %esi
movl $0x1, %edx
jmp 0x14362
movsd 0xec3b(%rip), %xmm0     # 0x23118
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1766c
movl %eax, %ebp
movl %eax, 0x23079(%rip)     # 0x37568
movl 0x230f3(%rip), %eax     # 0x375e8
addl %ebp, %eax
cmpl %r14d, %eax
jg 0x14a77
movl %eax, 0x230e2(%rip)     # 0x375e8
testl %ebp, %ebp
jle 0x14909
xorl %eax, %eax
movl %ebp, 0x24(%rsp)
movl %eax, 0x28(%rsp)
cmpl $0x0, 0xc(%rsp)
leaq 0x23164(%rip), %rax     # 0x37688
leaq 0x23155(%rip), %rcx     # 0x37680
cmoveq %rcx, %rax
movq (%rax), %r15
movq 0x231af(%rip), %rdi     # 0x376e8
movq %rdi, 0x18(%rsp)
movq %rbx, %rsi
callq 0x17041
movq 0x231a3(%rip), %r13     # 0x376f0
cltq
movslq (%r13,%rax,4), %rax
leaq 0x23c1d(%rip), %rcx     # 0x38178
movq (%rcx), %rcx
movq -0x8(%rcx,%rax,8), %rdi
movq %rbx, %rsi
callq 0x17041
movslq %eax, %rsi
imulq $0x2aaaaaab, %rsi, %rdi # imm = 0x2AAAAAAB
movq %rdi, %rax
shrq $0x3f, %rax
sarq $0x22, %rdi
addl %eax, %edi
leal (,%rdi,8), %eax
leal (%rax,%rax,2), %eax
subl %eax, %esi
movl %esi, %eax
sarb $0x7, %al
shrb $0x6, %al
addb %sil, %al
movl %eax, %r8d
sarb $0x2, %r8b
xorl %r9d, %r9d
cmpl $0xc, %esi
setge %r9b
andb $-0x4, %al
subb %al, %sil
movq (%rbx), %rcx
movq %rcx, %rax
movabsq $0x41a705af1fe3fb79, %rdx # imm = 0x41A705AF1FE3FB79
imulq %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0xf, %rdx
addq %rax, %rdx
imulq $0x1f31d, %rdx, %rax    # imm = 0x1F31D
subq %rax, %rcx
imulq $0x41a7, %rcx, %rax     # imm = 0x41A7
imulq $-0xb14, %rdx, %rcx     # imm = 0xF4EC
leaq (%rcx,%rax), %rdx
testq %rdx, %rdx
leaq 0x7fffffff(%rcx,%rax), %rcx
cmovgq %rdx, %rcx
leal 0x1(%r9,%r9), %eax
movq %rcx, (%rbx)
cvtsi2sd %rcx, %xmm0
divsd 0xeb10(%rip), %xmm0     # 0x23120
ucomisd 0xeb00(%rip), %xmm0     # 0x23118
movsbq %r8b, %r8
jbe 0x1462f
movsbl %sil, %edx
leaq 0xef27(%rip), %rsi      # 0x23550
leaq (%rsi,%r8,4), %rsi
jmp 0x1465a
movsbq %sil, %rdx
movslq %edi, %rsi
leaq 0x16883(%rip), %r9      # 0x2aec0
movl (%r9,%rdx,4), %edi
movl %eax, %eax
movl (%r9,%rax,4), %eax
movl (%r9,%rsi,4), %edx
leaq 0xeefe(%rip), %rsi      # 0x23550
movslq (%rsi,%r8,4), %rsi
leaq (%r9,%rsi,4), %rsi
shll $0x4, %edi
leal (%rdx,%rax,4), %eax
addl %edi, %eax
imull $0x64, 0x21b3f(%rip), %edx # 0x361a8
movq %rdx, 0x30(%rsp)
leal 0x1(%rdx), %ebp
testl %ebp, %ebp
movl $0x0, %edx
cmovlel %edx, %ebp
incl %ebp
movslq %eax, %r12
shlq $0x4, %r12
movl 0x4(%r15,%r12), %r14d
testl %r14d, %r14d
jne 0x147c1
movq 0x18(%rsp), %rdi
movq %rbx, %rsi
callq 0x17041
cltq
movslq (%r13,%rax,4), %rax
leaq 0x23acb(%rip), %rcx     # 0x38178
movq (%rcx), %rcx
movq -0x8(%rcx,%rax,8), %rdi
movq %rbx, %rsi
callq 0x17041
movslq %eax, %rsi
imulq $0x2aaaaaab, %rsi, %rdi # imm = 0x2AAAAAAB
movq %rdi, %rax
shrq $0x3f, %rax
sarq $0x22, %rdi
addl %eax, %edi
leal (,%rdi,8), %eax
leal (%rax,%rax,2), %eax
subl %eax, %esi
movl %esi, %eax
sarb $0x7, %al
shrb $0x6, %al
addb %sil, %al
movl %eax, %r8d
sarb $0x2, %r8b
xorl %r9d, %r9d
cmpl $0xc, %esi
setge %r9b
andb $-0x4, %al
subb %al, %sil
movq (%rbx), %rcx
movq %rcx, %rax
movabsq $0x41a705af1fe3fb79, %rdx # imm = 0x41A705AF1FE3FB79
imulq %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0xf, %rdx
addq %rax, %rdx
imulq $0x1f31d, %rdx, %rax    # imm = 0x1F31D
subq %rax, %rcx
imulq $0x41a7, %rcx, %rax     # imm = 0x41A7
imulq $-0xb14, %rdx, %rcx     # imm = 0xF4EC
leaq (%rcx,%rax), %rdx
testq %rdx, %rdx
leaq 0x7fffffff(%rcx,%rax), %rcx
cmovgq %rdx, %rcx
leal 0x1(%r9,%r9), %eax
movq %rcx, (%rbx)
cvtsi2sd %rcx, %xmm0
divsd 0xe9be(%rip), %xmm0     # 0x23120
ucomisd 0xe9ae(%rip), %xmm0     # 0x23118
movsbq %r8b, %r8
jbe 0x14781
movsbl %sil, %edx
leaq 0xedd5(%rip), %rsi      # 0x23550
leaq (%rsi,%r8,4), %rsi
jmp 0x147ac
movsbq %sil, %rdx
movslq %edi, %rsi
leaq 0x16731(%rip), %r9      # 0x2aec0
movl (%r9,%rdx,4), %edi
movl %eax, %eax
movl (%r9,%rax,4), %eax
movl (%r9,%rsi,4), %edx
leaq 0xedac(%rip), %rsi      # 0x23550
movslq (%rsi,%r8,4), %rsi
leaq (%r9,%rsi,4), %rsi
shll $0x4, %edi
leal (%rdx,%rax,4), %eax
addl %edi, %eax
decl %ebp
jne 0x1467d
jmp 0x14a54
cmpl $0x1, %r14d
jne 0x147cd
movl (%rsi), %ebp
xorl %eax, %eax
jmp 0x14843
jle 0x14a63
movq %rcx, %rax
movabsq $0x41a705af1fe3fb79, %rdx # imm = 0x41A705AF1FE3FB79
imulq %rdx
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0xf, %rdx
addq %rax, %rdx
imulq $0x1f31d, %rdx, %rax    # imm = 0x1F31D
subq %rax, %rcx
imulq $0x41a7, %rcx, %rax     # imm = 0x41A7
imulq $-0xb14, %rdx, %rcx     # imm = 0xF4EC
leaq (%rcx,%rax), %rdx
testq %rdx, %rdx
leaq 0x7fffffff(%rcx,%rax), %rax
cmovgq %rdx, %rax
movl (%rsi), %ebp
movq %rax, (%rbx)
cvtsi2sd %rax, %xmm1
divsd 0xe8f2(%rip), %xmm1     # 0x23120
xorps %xmm0, %xmm0
cvtsi2sd %r14d, %xmm0
mulsd %xmm1, %xmm0
callq 0x2270
cvttsd2si %xmm0, %eax
addq %r12, %r15
movq 0x8(%r15), %rdi
cltq
movslq (%rdi,%rax,4), %r13
movl (%r15), %ecx
decl %ecx
cmpl %eax, %ecx
jle 0x14876
movl 0x4(%rdi,%rax,4), %ecx
movl %ecx, (%rdi,%rax,4)
leaq 0x1(%rax), %rcx
movslq (%r15), %rdx
decq %rdx
movq %rcx, %rax
cmpq %rdx, %rcx
jl 0x14859
movl 0x4(%r15), %r14d
leal -0x1(%r14), %eax
movl %eax, 0x4(%r15)
movl %eax, (%r15)
cmpl $0x2, %r14d
jl 0x148b8
imulq $0x51eb851f, %rax, %rcx # imm = 0x51EB851F
shrq $0x25, %rcx
imull $0x64, %ecx, %ecx
negl %ecx
addl %r14d, %ecx
decl %ecx
testl %ecx, %ecx
jne 0x148b8
movl %eax, %esi
shlq $0x2, %rsi
callq 0x2230
movq %rax, 0x8(%r15)
testq %rax, %rax
je 0x14a5e
movq 0x22d01(%rip), %rax     # 0x375c0
movq %r13, %rcx
shlq $0x7, %rcx
leaq (%rcx,%r13,8), %rcx
cmpl $0x0, 0x94(%rax,%rcx)
je 0x148de
movl 0x24(%rsp), %ebp
movl 0x28(%rsp), %eax
jmp 0x14901
incl %r13d
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %esi
movl %r13d, %edx
movl %ebp, %ecx
movq %rbx, %r8
callq 0x176eb
movl 0x28(%rsp), %eax
incl %eax
movl 0x24(%rsp), %ebp
cmpl %ebp, %eax
jl 0x14514
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x0, 0x22e82(%rip)     # 0x377a4
testl %r12d, %r12d
jle 0x14909
movq 0x22caa(%rip), %rsi     # 0x375d8
movq 0x22cab(%rip), %rdi     # 0x375e0
movq (%rbx), %rcx
xorl %r8d, %r8d
movabsq $0x41a705af1fe3fb79, %r9 # imm = 0x41A705AF1FE3FB79
movsd 0xe7d3(%rip), %xmm1     # 0x23120
leaq 0x22e50(%rip), %r10     # 0x377a4
leaq 0x22e45(%rip), %r11     # 0x377a0
movq %rcx, %rax
imulq %r9
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0xf, %rdx
addq %rax, %rdx
imulq $0x1f31d, %rdx, %rax    # imm = 0x1F31D
subq %rax, %rcx
imulq $0x41a7, %rcx, %rax     # imm = 0x41A7
imulq $-0xb14, %rdx, %rcx     # imm = 0xF4EC
leaq (%rcx,%rax), %rdx
testq %rdx, %rdx
leaq 0x7fffffff(%rcx,%rax), %rcx
cmovgq %rdx, %rcx
xorps %xmm2, %xmm2
cvtsi2sd %rcx, %xmm2
divsd %xmm1, %xmm2
ucomisd %xmm2, %xmm0
movq %r11, %rax
cmovaq %r10, %rax
movq %rsi, %rdx
cmovaq %rdi, %rdx
movslq (%rax), %r14
leal 0x1(%r14), %ebp
movl %ebp, (%rax)
movl %r8d, (%rdx,%r14,4)
incl %r8d
cmpl %r8d, %r12d
jne 0x1495b
movq %rcx, (%rbx)
cmpl $0x0, 0x22dc9(%rip)     # 0x377a0
jle 0x149ec
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %esi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x170bb
cmpl $0x0, 0x22db1(%rip)     # 0x377a4
jle 0x14909
movl 0x217f9(%rip), %eax     # 0x361f8
cmpl $0x2, %eax
je 0x14a35
cmpl $0x1, %eax
je 0x14a16
testl %eax, %eax
je 0x144c2
callq 0x5063
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %esi
movq %rbx, %rdx
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17444
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %esi
movq %rbx, %rdx
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17491
movq 0x30(%rsp), %rdi
callq 0x50ac
callq 0x50f4
callq 0x50cf
callq 0x51a5
callq 0x51ef
callq 0x51ca
movl %ebp, %edi
callq 0x5119
callq 0x5088