// File: /workspace/github_cpp_makefile_star2_O3/estwings57[P]CasHMC/sources/HMCController.cpp
// Function: CasHMC::HMCController::LinkPowerExitManager()
void HMCController::LinkPowerExitManager()
{
	switch(LINK_POWER) {
		case NO_MANAGEMENT:{
			break;
		}
		case QUIESCE_SLEEP:{
			//Check the current link state (sleep or down)
			int link = 0;
			int linkState = 0;
			for(link=0; link<NUM_LINKS; link++) {
				if(downLinkMasters[link]->currentState == DOWN) {
					linkState = 1;
					break;
				}
				else if(downLinkMasters[link]->currentState == SLEEP) {
					linkState = 2;
					break;
				}
			}
			//Link is already waking up
			for(int l=0; l<NUM_LINKS; l++) {
				if(downLinkMasters[l]->currentState == TRANSITION_TO_RETRAIN
				|| downLinkMasters[l]->currentState == RETRAIN1
				|| downLinkMasters[l]->currentState == RETRAIN2) {
					linkState = 0;
					break;
				}
			}
			
			//If link is on down mode
			if(linkState == 1) {
				if(downBuffers.size() > 0 && currentClockCycle >= staySREF) {
					modeTransition[link] = currentClockCycle + ceil((double)(tPST+tTXD+tPSC)/CPU_CLK_PERIOD);
					downLinkMasters[link]->currentState = TRANSITION_TO_RETRAIN;
					DEBUG(ALI(33)<<header<<"Down) RETRAINING MODE transition after "<<modeTransition[link]<<" cycle (LM_D"<<link<<")");
				}
			}
			//If link is on sleep mode
			else if(linkState == 2) {
				if(downBuffers.size() >= AWAKE_REQ) {
					modeTransition[link] = currentClockCycle + ceil((double)(tPST+tTXD)/CPU_CLK_PERIOD);
					downLinkMasters[link]->currentState = TRANSITION_TO_RETRAIN;
					DEBUG(ALI(33)<<header<<"Down) RETRAINING MODE transition after "<<modeTransition[link]<<" cycle (LM_D"<<link<<")");
				}
			}
			
			//Retraining mode entry
			for(int l=0; l<NUM_LINKS; l++) {
				if(downLinkMasters[l]->currentState == TRANSITION_TO_RETRAIN) {
					if(currentClockCycle >= modeTransition[l]) {
						for(int k=0; k<NUM_LINKS; k++) {
							if(downLinkMasters[k]->currentState == DOWN) {
								downLinkMasters[k]->currentState = SLEEP;
							}
						}
						downLinkMasters[l]->firstNull = true;
						downLinkMasters[l]->currentState = RETRAIN1;
						stayActive[l] = currentClockCycle + ceil((double)tOP/CPU_CLK_PERIOD);
						DE_CR(ALI(33)<<header<<"Down) entering RETRAINING MODE (LM_D"<<l<<")");
					}
				}
			}
			break;
		}
		case MSHR:
		case LINK_MONITOR:
		case AUTONOMOUS:{
			//awake up links as many as sleepLink
			for(int l=0; l<NUM_LINKS-sleepLink; l++) {
				if(downLinkMasters[l]->currentState == SLEEP) {
					//Stagger transition between active mode and sleep modes in order to avoid supply voltage shifts
					if(currentClockCycle >= staggerActive) {
						uint64_t stag = 0;
						uint64_t tran = 0;
						if(staggeringActive[l]) {
							staggeringActive[l] = false;
							stag = ceil((double)tSS/CPU_CLK_PERIOD);
							tran = ceil((double)tTXD/CPU_CLK_PERIOD);
						}
						else {
							stag = ceil((double)(tPST+tSS)/CPU_CLK_PERIOD);
							tran = ceil((double)(tPST+tTXD)/CPU_CLK_PERIOD);
						}
						staggerActive = currentClockCycle + stag;
						modeTransition[l] = currentClockCycle + tran;
						downLinkMasters[l]->currentState = TRANSITION_TO_RETRAIN;
						DEBUG(ALI(33)<<header<<"Down) RETRAINING MODE transition after "<<modeTransition[l]<<" cycle (stagger : "<<staggerActive<<") (LM_D"<<l<<")");
					}
					else {
						staggeringActive[l] = true;
					}
				}
			}
			
			//Retraining mode entry
			for(int l=0; l<NUM_LINKS; l++) {
				if(downLinkMasters[l]->currentState == TRANSITION_TO_RETRAIN) {
					if(currentClockCycle >= modeTransition[l]) {
						for(int k=0; k<NUM_LINKS; k++) {
							if(downLinkMasters[k]->currentState == DOWN) {
								downLinkMasters[k]->currentState = SLEEP;
							}
						}
						downLinkMasters[l]->firstNull = true;
						downLinkMasters[l]->currentState = RETRAIN1;
						stayActive[l] = currentClockCycle + ceil((double)tOP/CPU_CLK_PERIOD);
						DE_CR(ALI(33)<<header<<"Down) entering RETRAINING MODE (LM_D"<<l<<")");
					}
				}
			}
			break;
		}
		default:{
			ERROR(header<<"   == Error - WRONG LINK_POWER parameter  (LINK_POWER : "<<LINK_POWER<<")");
			exit(0);
			break;
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x1c6b8(%rip), %r14     # 0x3b4e8
movl (%r14), %eax
leal -0x2(%rax), %ecx
cmpl $0x3, %ecx
jae 0x1f304
leaq 0x1c662(%rip), %rax     # 0x3b4a8
movl (%rax), %ebp
movl 0x258(%rbx), %r13d
cmpl %r13d, %ebp
je 0x1f13b
xorl %r14d, %r14d
movq 0x208(%rbx), %rax
movq (%rax,%r14,8), %r12
cmpl $0x1, 0x200(%r12)
jne 0x1f12a
movq 0x8(%rbx), %r15
movq 0x2f8(%rbx), %rax
cmpq 0x278(%rbx), %r15
jae 0x1eea4
movq %r14, %rdx
movl $0x1, %esi
movl %r14d, %ecx
shlq %cl, %rsi
shrq $0x6, %rdx
orq %rsi, (%rax,%rdx,8)
jmp 0x1f12a
movl $0x1, %edx
movl %r14d, %ecx
shlq %cl, %rdx
movq %r14, %rcx
shrq $0x6, %rcx
movq (%rax,%rcx,8), %rsi
btq %r14, %rsi
jae 0x1ef21
notq %rdx
andq %rdx, %rsi
movq %rsi, (%rax,%rcx,8)
leaq 0x1c65f(%rip), %rax     # 0x3b530
movsd (%rax), %xmm0
leaq 0x1c67c(%rip), %rax     # 0x3b558
movhpd (%rax), %xmm0           # xmm0 = xmm0[0],mem[0]
leaq 0x1c5b1(%rip), %rax     # 0x3b498
movsd (%rax), %xmm1
unpcklpd %xmm1, %xmm1            # xmm1 = xmm1[0,0]
divpd %xmm1, %xmm0
movapd %xmm0, 0x10(%rsp)
callq 0x4090
movapd %xmm0, (%rsp)
movapd 0x10(%rsp), %xmm0
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
callq 0x4090
movapd (%rsp), %xmm2
unpcklpd %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
movq 0x8(%rbx), %r15
jmp 0x1ef85
leaq 0x1c5f8(%rip), %rax     # 0x3b520
movsd (%rax), %xmm1
unpcklpd %xmm1, %xmm1            # xmm1 = xmm1[0,0]
leaq 0x1c5f9(%rip), %rax     # 0x3b530
movsd (%rax), %xmm0
leaq 0x1c616(%rip), %rax     # 0x3b558
movhpd (%rax), %xmm0           # xmm0 = xmm0[0],mem[0]
addpd %xmm1, %xmm0
leaq 0x1c547(%rip), %rax     # 0x3b498
movsd (%rax), %xmm1
unpcklpd %xmm1, %xmm1            # xmm1 = xmm1[0,0]
divpd %xmm1, %xmm0
movapd %xmm0, 0x10(%rsp)
callq 0x4090
movapd %xmm0, (%rsp)
movapd 0x10(%rsp), %xmm0
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
callq 0x4090
movapd (%rsp), %xmm2
unpcklpd %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
movapd %xmm2, %xmm0
unpckhpd %xmm2, %xmm0            # xmm0 = xmm0[1],xmm2[1]
cvttsd2si %xmm0, %rax
movsd 0x132be(%rip), %xmm1    # 0x32258
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
movq %rax, %rdx
sarq $0x3f, %rdx
andq %rcx, %rdx
cvttsd2si %xmm2, %rcx
orq %rax, %rdx
subsd %xmm1, %xmm2
cvttsd2si %xmm2, %rax
movq %rcx, %rsi
sarq $0x3f, %rsi
andq %rax, %rsi
orq %rcx, %rsi
addq %r15, %rsi
movq %rsi, 0x278(%rbx)
addq %r15, %rdx
movq 0x2b8(%rbx), %rax
movq %rdx, (%rax,%r14,8)
movl $0x7, 0x200(%r12)
leaq 0x1c492(%rip), %rax     # 0x3b488
cmpb $0x1, (%rax)
jne 0x1f12a
leaq 0x1c483(%rip), %rax     # 0x3b489
cmpb $0x0, (%rax)
jne 0x1f12a
movq 0x1bfba(%rip), %rdx     # 0x3afd0
movq (%rdx), %rax
movq -0x18(%rax), %rcx
movq $0x21, 0x10(%rdx,%rcx)
movq -0x18(%rax), %rax
leaq (%rdx,%rax), %r13
cmpb $0x0, 0xe1(%rdx,%rax)
jne 0x1f04d
movq %r13, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r13)
movb $0x20, 0xe0(%r13)
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq 0x1bf6c(%rip), %rdi     # 0x3afd0
callq 0x4340
movq %rax, %r13
movl $0x27, %edx
movq %rax, %rdi
leaq 0x13644(%rip), %rsi     # 0x326bf
callq 0x4340
movq 0x2b8(%rbx), %rax
movq (%rax,%r14,8), %rsi
movq %r13, %rdi
callq 0x41e0
movq %rax, %r13
movl $0x12, %edx
movq %rax, %rdi
leaq 0x13511(%rip), %rsi     # 0x325b6
callq 0x4340
movq 0x278(%rbx), %rsi
movq %r13, %rdi
callq 0x41e0
movq %rax, %r13
movl $0x7, %edx
movq %rax, %rdi
leaq 0x134fe(%rip), %rsi     # 0x325c9
callq 0x4340
movq %r13, %rdi
movl %r14d, %esi
callq 0x4500
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
leaq 0x143f4(%rip), %rsi     # 0x334e1
callq 0x4340
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
leaq 0x1c387(%rip), %rax     # 0x3b4a8
movl (%rax), %ebp
movl 0x258(%rbx), %r13d
incq %r14
movl %ebp, %eax
subl %r13d, %eax
cmpq %rax, %r14
jb 0x1ee5b
testl %ebp, %ebp
jle 0x1f76c
xorl %r14d, %r14d
leaq 0x1c34b(%rip), %r13     # 0x3b498
leaq 0x1c334(%rip), %r12     # 0x3b488
movq 0x1be75(%rip), %r15     # 0x3afd0
movq 0x208(%rbx), %rcx
movq (%rcx,%r14,8), %rax
cmpl $0x7, 0x200(%rax)
jne 0x1f2f0
movq 0x8(%rbx), %rdx
movq 0x2b8(%rbx), %rsi
cmpq (%rsi,%r14,8), %rdx
jb 0x1f2f0
testl %ebp, %ebp
jle 0x1f1b1
movl %ebp, %esi
xorl %edi, %edi
movq (%rcx,%rdi,8), %r8
cmpl $0x2, 0x200(%r8)
jne 0x1f1a9
movl $0x1, 0x200(%r8)
incq %rdi
cmpq %rdi, %rsi
jne 0x1f190
movb $0x1, 0x268(%rax)
movl $0x3, 0x200(%rax)
movq %rdx, %xmm0
punpckldq 0x10f51(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x10f39(%rip), %xmm0    # 0x30110
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movapd %xmm1, (%rsp)
leaq 0x1c359(%rip), %rax     # 0x3b548
movsd (%rax), %xmm0
divsd (%r13), %xmm0
callq 0x4090
addsd (%rsp), %xmm0
cvttsd2si %xmm0, %rax
movq %rax, %rcx
sarq $0x3f, %rcx
subsd 0x13041(%rip), %xmm0    # 0x32258
cvttsd2si %xmm0, %rdx
andq %rcx, %rdx
orq %rax, %rdx
movq 0x288(%rbx), %rax
movq %rdx, (%rax,%r14,8)
cmpb $0x0, (%r12)
je 0x1f2f0
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq $0x21, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rbp
cmpb $0x0, 0xe1(%r15,%rax)
jne 0x1f26f
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq %r15, %rdi
callq 0x4340
movq %rax, %rbp
movl $0x24, %edx
movq %rax, %rdi
leaq 0x1345c(%rip), %rsi     # 0x326f4
callq 0x4340
movq %rbp, %rdi
movl %r14d, %esi
callq 0x4500
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
leaq 0x14227(%rip), %rsi     # 0x334e1
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
leaq 0x1c1ba(%rip), %rax     # 0x3b4a8
movl (%rax), %ebp
incq %r14
movslq %ebp, %rax
cmpq %rax, %r14
jl 0x1f15b
jmp 0x1f76c
testl %eax, %eax
je 0x1f76c
cmpl $0x1, %eax
jne 0x1f77b
leaq 0x1c18c(%rip), %rax     # 0x3b4a8
movl (%rax), %eax
testl %eax, %eax
jle 0x1f76c
movq 0x208(%rbx), %rcx
xorl %r14d, %r14d
movq (%rcx,%r14,8), %rdx
movl 0x200(%rdx), %edx
cmpl $0x1, %edx
je 0x1f35a
cmpl $0x2, %edx
je 0x1f353
incq %r14
cmpq %r14, %rax
jne 0x1f330
xorl %ecx, %ecx
movl %eax, %r14d
jmp 0x1f35f
movl $0x1, %ecx
jmp 0x1f35f
movl $0x2, %ecx
testl %eax, %eax
jle 0x1f394
movq 0x208(%rbx), %rdx
xorl %esi, %esi
movl $0x98, %edi
movq (%rdx,%rsi,8), %r8
movl 0x200(%r8), %r8d
cmpl $0x7, %r8d
ja 0x1f38c
btl %r8d, %edi
jb 0x1f59f
incq %rsi
cmpq %rsi, %rax
jne 0x1f371
cmpl $0x2, %ecx
je 0x1f403
cmpl $0x1, %ecx
jne 0x1f59f
movq 0x1d8(%rbx), %rax
cmpq 0x1d0(%rbx), %rax
je 0x1f59f
movq 0x8(%rbx), %rax
cmpq 0x280(%rbx), %rax
jb 0x1f59f
movq %rax, %xmm1
punpckldq 0x10d4c(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x10d34(%rip), %xmm1    # 0x30110
movapd %xmm1, %xmm2
leaq 0x1c139(%rip), %rax     # 0x3b520
movsd (%rax), %xmm0
leaq 0x1c166(%rip), %rax     # 0x3b558
addsd (%rax), %xmm0
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
leaq 0x1c16f(%rip), %rax     # 0x3b570
jmp 0x1f456
movq 0x1d8(%rbx), %rax
subq 0x1d0(%rbx), %rax
sarq $0x3, %rax
leaq 0x1c0d0(%rip), %rcx     # 0x3b4ec
movslq (%rcx), %rcx
cmpq %rcx, %rax
jb 0x1f59f
movsd 0x8(%rbx), %xmm1
unpcklps 0x10cec(%rip), %xmm1    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x10cd4(%rip), %xmm1    # 0x30110
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
leaq 0x1c0d5(%rip), %rax     # 0x3b520
movsd (%rax), %xmm0
leaq 0x1c102(%rip), %rax     # 0x3b558
addsd (%rax), %xmm0
addsd %xmm1, %xmm2
movapd %xmm2, (%rsp)
leaq 0x1c02e(%rip), %rax     # 0x3b498
divsd (%rax), %xmm0
callq 0x4090
addsd (%rsp), %xmm0
cvttsd2si %xmm0, %rax
movq %rax, %rcx
subsd 0x12dd0(%rip), %xmm0    # 0x32258
cvttsd2si %xmm0, %rdx
sarq $0x3f, %rcx
andq %rcx, %rdx
orq %rax, %rdx
movl %r14d, %r12d
movq 0x2b8(%rbx), %rax
movq %rdx, (%rax,%r12,8)
movq 0x208(%rbx), %rax
movq (%rax,%r12,8), %rax
movl $0x7, 0x200(%rax)
leaq 0x1bfc7(%rip), %rax     # 0x3b488
cmpb $0x1, (%rax)
jne 0x1f59f
leaq 0x1bfb8(%rip), %rax     # 0x3b489
cmpb $0x0, (%rax)
jne 0x1f59f
movq 0x1baef(%rip), %rax     # 0x3afd0
movq (%rax), %rcx
movq -0x18(%rcx), %rdx
movq $0x21, 0x10(%rax,%rdx)
movq -0x18(%rcx), %rcx
leaq (%rax,%rcx), %r15
cmpb $0x0, 0xe1(%rax,%rcx)
jne 0x1f518
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq 0x1baa1(%rip), %rdi     # 0x3afd0
callq 0x4340
movq %rax, %r15
leaq 0x13181(%rip), %rsi     # 0x326bf
movl $0x27, %edx
movq %rax, %rdi
callq 0x4340
movq 0x2b8(%rbx), %rax
movq (%rax,%r12,8), %rsi
movq %r15, %rdi
callq 0x41e0
movq %rax, %r15
leaq 0x1317f(%rip), %rsi     # 0x326e7
movl $0xc, %edx
movq %rax, %rdi
callq 0x4340
movq %r15, %rdi
movl %r14d, %esi
callq 0x4500
movq %rax, %r14
leaq 0x13f57(%rip), %rsi     # 0x334e1
movl $0x1, %edx
movq %rax, %rdi
callq 0x4340
movq %r14, %rdi
callq 0x4170
leaq 0x1bf02(%rip), %rax     # 0x3b4a8
movl (%rax), %ebp
testl %ebp, %ebp
jle 0x1f76c
xorl %r14d, %r14d
leaq 0x1bede(%rip), %r13     # 0x3b498
leaq 0x1bec7(%rip), %r12     # 0x3b488
movq 0x1ba08(%rip), %r15     # 0x3afd0
movq 0x208(%rbx), %rcx
movq (%rcx,%r14,8), %rax
cmpl $0x7, 0x200(%rax)
jne 0x1f75d
movq 0x8(%rbx), %rdx
movq 0x2b8(%rbx), %rsi
cmpq (%rsi,%r14,8), %rdx
jb 0x1f75d
testl %ebp, %ebp
jle 0x1f61e
movl %ebp, %esi
xorl %edi, %edi
movq (%rcx,%rdi,8), %r8
cmpl $0x2, 0x200(%r8)
jne 0x1f616
movl $0x1, 0x200(%r8)
incq %rdi
cmpq %rdi, %rsi
jne 0x1f5fd
movb $0x1, 0x268(%rax)
movl $0x3, 0x200(%rax)
movq %rdx, %xmm0
punpckldq 0x10ae4(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x10acc(%rip), %xmm0    # 0x30110
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movapd %xmm1, (%rsp)
leaq 0x1beec(%rip), %rax     # 0x3b548
movsd (%rax), %xmm0
divsd (%r13), %xmm0
callq 0x4090
addsd (%rsp), %xmm0
cvttsd2si %xmm0, %rax
movq %rax, %rcx
sarq $0x3f, %rcx
subsd 0x12bd4(%rip), %xmm0    # 0x32258
cvttsd2si %xmm0, %rdx
andq %rcx, %rdx
orq %rax, %rdx
movq 0x288(%rbx), %rax
movq %rdx, (%rax,%r14,8)
cmpb $0x0, (%r12)
je 0x1f75d
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq $0x21, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rbp
cmpb $0x0, 0xe1(%r15,%rax)
jne 0x1f6dc
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq %r15, %rdi
callq 0x4340
movq %rax, %rbp
movl $0x24, %edx
movq %rax, %rdi
leaq 0x12fef(%rip), %rsi     # 0x326f4
callq 0x4340
movq %rbp, %rdi
movl %r14d, %esi
callq 0x4500
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
leaq 0x13dba(%rip), %rsi     # 0x334e1
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
leaq 0x1bd4d(%rip), %rax     # 0x3b4a8
movl (%rax), %ebp
incq %r14
movslq %ebp, %rax
cmpq %rax, %r14
jl 0x1f5c8
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x1b86e(%rip), %rdi     # 0x3aff0
leaq 0x10899(%rip), %rsi     # 0x30022
callq 0x42e0
leaq 0x12c92(%rip), %rsi     # 0x32427
movq %rax, %rdi
callq 0x42e0
leaq 0x110f3(%rip), %rsi     # 0x30897
movq %rax, %rdi
callq 0x42e0
movq %rax, %rdi
movl $0x2d0, %esi            # imm = 0x2D0
callq 0x4500
leaq 0x10881(%rip), %rsi     # 0x30041
movq %rax, %rdi
callq 0x42e0
addq $0x20, %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4290
leaq 0x12e36(%rip), %rsi     # 0x32614
movq %rax, %rdi
callq 0x42e0
movl (%r14), %esi
movq %rax, %rdi
callq 0x4500
leaq 0x13ce9(%rip), %rsi     # 0x334e1
movq %rax, %rdi
callq 0x42e0
movq %rax, %rdi
callq 0x4170
xorl %edi, %edi
callq 0x4360
nop