// File: /workspace/github_cpp_makefile_star2_O1/malcolmyeh[P]CC3K/floor.cc
// Function: Floor::usePotion(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
std::string Floor::usePotion(std::string direction){
	Posn p = this->player->getPosition().getNew(direction);
	std::string log;
	for (int i = 0; i < this->potions.size(); ++i){
		if (p == this->potions.at(i)->getPosition()){
			if(this->potions.at(i)->getType() == "RH"){
				this->player->heal(10);
				this->knownPotion[0] = true;
				log = "Restore Health potion restores 10 HP (HP: " + std::to_string(this->player->getHP()) + "). ";
			} else if (this->potions.at(i)->getType() == "BA"){
				this->player = new AtkBuff(this->player, 5);
				this->knownPotion[1] = true;
				log =  "Boost Attack potion grants 5 damage (Atk: " + std::to_string(this->player->getAtk()) + "). ";				
			} else if (this->potions.at(i)->getType() == "BD"){
				this->player = new DefBuff(this->player, 5);
				this->knownPotion[2] = true;
				log =  "Boost Defense potion grants 5 defense (Def: " + std::to_string(this->player->getDef()) + "). ";				
			} else if (this->potions.at(i)->getType() == "PH"){
				this->knownPotion[3] = true;
				if (this->player->getRace() == "Elf"){
					this->player->heal(10);
					log =  "Poison Health potion restores 10 HP (HP: " + std::to_string(this->player->getHP()) + "). ";
				} else {
					this->player->heal(-10);
					log =  "Poison Health potion deals 10 damage (HP: " + std::to_string(this->player->getHP()) + "). ";
				}		
			} else if (this->potions.at(i)->getType() == "WA"){
				this->knownPotion[4] = true;
				if (this->player->getRace() == "Elf"){
					this->player = new AtkBuff(this->player, 5);
					log =  "Wound Attack potion grants 5 damage (Atk: " + std::to_string(this->player->getAtk()) + "). ";
				} else {
					this->player = new AtkBuff(this->player, -5);
					log =  "Wound Attack potion reduces 5 damage (Atk: " + std::to_string(this->player->getAtk()) + "). ";				
				}								
			} else if (this->potions.at(i)->getType() == "WD"){
				this->knownPotion[5] = true;
				if (this->player->getRace() == "Elf"){
					this->player = new DefBuff(this->player, 5);
					log =  "Wound Defense potion grants 5 defense (Def: " + std::to_string(this->player->getDef()) + "). ";
				} else {
					this->player = new DefBuff(this->player, -5);
					log =  "Wound Defense potion reduces 5 defense (Def: " + std::to_string(this->player->getDef()) + "). ";
				}							
			}
			displayGrid[p.y][p.x] = defaultGrid[p.y][p.x];
			Potion * temp = this->potions.at(i);
			this->potions.erase(this->potions.begin() + i);
			delete temp;
			return log;
		}
		
	}
	return "No potion in direction. ";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r13
movq 0xfe0(%rsi), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
leaq -0xb0(%rbp), %r15
movq %rax, (%r15)
leaq -0xd0(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq -0xe0(%rbp), %rbx
movq %rbx, %rdi
callq 0xa582
movq %r15, %rdi
movq %rbx, %rsi
callq 0x50b4
movq %r13, -0xc0(%rbp)
movq %rax, -0xb8(%rbp)
movq -0xe0(%rbp), %rdi
cmpq %r12, %rdi
je 0x9053
movq -0xd0(%rbp), %rsi
incq %rsi
callq 0x4170
leaq -0xa0(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq 0x7f0(%r14), %rax
cmpq %rax, 0x7f8(%r14)
je 0x90c7
xorl %r13d, %r13d
leaq -0xb8(%rbp), %rbx
leaq -0x48(%rbp), %r12
xorl %r15d, %r15d
movq (%rax,%r13), %rdi
callq 0x15d88
movq %rax, -0x48(%rbp)
movq %rbx, %rdi
movq %r12, %rsi
callq 0x51b6
testb %al, %al
jne 0x90f7
incq %r15
movq 0x7f0(%r14), %rax
movq 0x7f8(%r14), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
addq $0x8, %r13
cmpq %r15, %rcx
ja 0x908a
movq -0xc0(%rbp), %r15
leaq 0x10(%r15), %rax
movq %rax, (%r15)
leaq 0x14695(%rip), %rsi     # 0x1d771
leaq 0x146a6(%rip), %rdx     # 0x1d789
movq %r15, %rdi
leaq -0xa0(%rbp), %r14
callq 0x501a
jmp 0x9b97
movq 0x7f0(%r14), %rax
movq 0x7f8(%r14), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r15, %rdx
jbe 0x9cbf
movq (%rax,%r13), %rsi
leaq -0x48(%rbp), %rdi
callq 0x172ec
leaq 0x1418f(%rip), %rsi     # 0x1d2b8
leaq -0x48(%rbp), %r12
movq %r12, %rdi
callq 0x4070
movl %eax, %ebx
movq (%r12), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x9150
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
testl %ebx, %ebx
je 0x93e4
movq 0x7f0(%r14), %rax
movq 0x7f8(%r14), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r15, %rdx
jbe 0x9ce4
movq (%rax,%r13), %rsi
leaq -0x48(%rbp), %rdi
callq 0x172ec
leaq 0x14131(%rip), %rsi     # 0x1d2bb
movq %r12, %rdi
callq 0x4070
movl %eax, %ebx
movq (%r12), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x91ad
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
testl %ebx, %ebx
je 0x946e
movq 0x7f0(%r14), %rax
movq 0x7f8(%r14), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r15, %rdx
jbe 0x9cf5
movq (%rax,%r13), %rsi
leaq -0x48(%rbp), %rdi
callq 0x172ec
leaq 0x140d7(%rip), %rsi     # 0x1d2be
movq %r12, %rdi
callq 0x4070
movl %eax, %ebx
movq (%r12), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x920a
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
testl %ebx, %ebx
je 0x950c
movq 0x7f0(%r14), %rax
movq 0x7f8(%r14), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r15, %rdx
jbe 0x9d06
movq (%rax,%r13), %rsi
leaq -0x48(%rbp), %rdi
callq 0x172ec
leaq 0x1407d(%rip), %rsi     # 0x1d2c1
movq %r12, %rdi
callq 0x4070
movl %eax, %ebx
movq (%r12), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x9267
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
testl %ebx, %ebx
je 0x95aa
movq 0x7f0(%r14), %rax
movq 0x7f8(%r14), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r15, %rdx
jbe 0x9d17
movq (%rax,%r13), %rsi
leaq -0x48(%rbp), %rdi
callq 0x172ec
leaq 0x14023(%rip), %rsi     # 0x1d2c4
movq %r12, %rdi
callq 0x4070
movl %eax, %ebx
movq (%r12), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x92c4
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
testl %ebx, %ebx
je 0x9651
movq 0x7f0(%r14), %rax
movq 0x7f8(%r14), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r15, %rdx
jbe 0x9d28
movq (%rax,%r13), %rsi
leaq -0x48(%rbp), %rdi
callq 0x172ec
leaq 0x13fc9(%rip), %rsi     # 0x1d2c7
movq %r12, %rdi
callq 0x4070
movl %eax, %ebx
movq (%r12), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x9321
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
testl %ebx, %ebx
jne 0x9aa5
movb $0x1, 0xff5(%r14)
movq 0xfe0(%r14), %rsi
movq (%rsi), %rax
leaq -0x48(%rbp), %rdi
callq *0x28(%rax)
leaq 0x1431d(%rip), %rsi     # 0x1d666
movq %r12, %rdi
callq 0x4070
movl %eax, %ebx
movq (%r12), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x936c
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
testl %ebx, %ebx
je 0x9bc7
movl $0x60, %edi
callq 0x4160
movq %rax, %r12
movq 0xfe0(%r14), %rsi
movq %rax, %rdi
movl $0xfffffffb, %edx       # imm = 0xFFFFFFFB
callq 0x1ced0
movq %r12, 0xfe0(%r14)
movq (%r12), %rax
movq %r12, %rdi
callq *0x10(%rax)
leaq -0x38(%rbp), %rbx
leaq -0x68(%rbp), %rdi
movl %eax, %esi
callq 0xa466
leaq 0x14387(%rip), %rsi     # 0x1d743
leaq -0x88(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0xa3ec
leaq 0x14822(%rip), %rsi     # 0x1dbf5
leaq -0x88(%rbp), %rdi
callq 0x4280
jmp 0x9c32
movq 0xfe0(%r14), %rdi
movl $0xa, %esi
callq 0xb610
movb $0x1, 0xff0(%r14)
movq 0xfe0(%r14), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movl %eax, %r12d
movl %eax, %edi
negl %edi
cmovsl %eax, %edi
movl $0x1, %ebx
cmpl $0xa, %edi
jb 0x9713
movl $0x4, %ebx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
movl %edi, %ecx
cmpl $0x63, %ecx
jbe 0x970c
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x9711
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x9713
movl %ecx, %edx
imulq %rsi, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x942e
addl $-0x3, %ebx
jmp 0x9713
movl $0x60, %edi
callq 0x4160
movq %rax, %r12
movq 0xfe0(%r14), %rsi
movq %rax, %rdi
movl $0x5, %edx
callq 0x1ce10
movq %r12, 0xfe0(%r14)
movb $0x1, 0xff1(%r14)
movq (%r12), %rax
movq %r12, %rdi
callq *0x8(%rax)
movl %eax, %r12d
movl %eax, %edi
negl %edi
cmovsl %eax, %edi
movl $0x1, %ebx
cmpl $0xa, %edi
jb 0x9827
movl $0x4, %ebx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
movl %edi, %ecx
cmpl $0x63, %ecx
jbe 0x9820
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x9825
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x9827
movl %ecx, %edx
imulq %rsi, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x94cc
addl $-0x3, %ebx
jmp 0x9827
movl $0x60, %edi
callq 0x4160
movq %rax, %r12
movq 0xfe0(%r14), %rsi
movq %rax, %rdi
movl $0x5, %edx
callq 0x1ced0
movq %r12, 0xfe0(%r14)
movb $0x1, 0xff2(%r14)
movq (%r12), %rax
movq %r12, %rdi
callq *0x10(%rax)
movl %eax, %r12d
movl %eax, %edi
negl %edi
cmovsl %eax, %edi
movl $0x1, %ebx
cmpl $0xa, %edi
jb 0x9956
movl $0x4, %ebx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
movl %edi, %ecx
cmpl $0x63, %ecx
jbe 0x994f
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x9954
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x9956
movl %ecx, %edx
imulq %rsi, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebx
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x956a
addl $-0x3, %ebx
jmp 0x9956
movb $0x1, 0xff3(%r14)
movq 0xfe0(%r14), %rsi
movq (%rsi), %rax
leaq -0x48(%rbp), %rdi
callq *0x28(%rax)
leaq 0x1409c(%rip), %rsi     # 0x1d666
movq %r12, %rdi
callq 0x4070
movl %eax, %ebx
movq (%r12), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x95ed
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
movq 0xfe0(%r14), %rdi
testl %ebx, %ebx
je 0x97cb
movl $0xfffffff6, %esi       # imm = 0xFFFFFFF6
callq 0xb610
movq 0xfe0(%r14), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
leaq -0x68(%rbp), %rdi
movl %eax, %esi
callq 0xa466
leaq 0x1406f(%rip), %rsi     # 0x1d694
leaq -0x88(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0xa3ec
leaq -0x38(%rbp), %rbx
leaq 0x145b5(%rip), %rsi     # 0x1dbf5
leaq -0x88(%rbp), %rdi
callq 0x4280
jmp 0x9c32
movb $0x1, 0xff4(%r14)
movq 0xfe0(%r14), %rsi
movq (%rsi), %rax
leaq -0x48(%rbp), %rdi
callq *0x28(%rax)
leaq 0x13ff5(%rip), %rsi     # 0x1d666
movq %r12, %rdi
callq 0x4070
movl %eax, %ebx
movq (%r12), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x9694
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
testl %ebx, %ebx
je 0x98df
movl $0x60, %edi
callq 0x4160
movq %rax, %r12
movq 0xfe0(%r14), %rsi
movq %rax, %rdi
movl $0xfffffffb, %edx       # imm = 0xFFFFFFFB
callq 0x1ce10
movq %r12, 0xfe0(%r14)
movq (%r12), %rax
movq %r12, %rdi
callq *0x8(%rax)
leaq -0x38(%rbp), %rbx
leaq -0x68(%rbp), %rdi
movl %eax, %esi
callq 0xa466
leaq 0x14006(%rip), %rsi     # 0x1d6ea
leaq -0x88(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0xa3ec
leaq 0x144fa(%rip), %rsi     # 0x1dbf5
leaq -0x88(%rbp), %rdi
callq 0x4280
jmp 0x9c32
addl $-0x2, %ebx
jmp 0x9713
decl %ebx
movl %edi, -0x8c(%rbp)
shrl $0x1f, %r12d
leal (%rbx,%r12), %esi
leaq -0x58(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x68(%rbp), %rdi
movl $0x2d, %edx
callq 0x41b0
movl %r12d, %edi
leaq -0x68(%rbp), %r12
addq (%r12), %rdi
movl %ebx, %esi
movl -0x8c(%rbp), %edx
callq 0xa510
leaq 0x13e8d(%rip), %rcx     # 0x1d5e3
movl $0x2a, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4190
leaq -0x78(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x38(%rbp), %rbx
je 0x9794
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x979c
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq -0x88(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x14434(%rip), %rsi     # 0x1dbf5
callq 0x4280
jmp 0x9a09
movl $0xa, %esi
callq 0xb610
movq 0xfe0(%r14), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
leaq -0x68(%rbp), %rdi
movl %eax, %esi
callq 0xa466
leaq 0x13e76(%rip), %rsi     # 0x1d66a
leaq -0x88(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0xa3ec
leaq -0x38(%rbp), %rbx
leaq 0x143e6(%rip), %rsi     # 0x1dbf5
leaq -0x88(%rbp), %rdi
callq 0x4280
jmp 0x9c32
addl $-0x2, %ebx
jmp 0x9827
decl %ebx
movl %edi, -0x8c(%rbp)
shrl $0x1f, %r12d
leal (%rbx,%r12), %esi
leaq -0x58(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x68(%rbp), %rdi
movl $0x2d, %edx
callq 0x41b0
movl %r12d, %edi
leaq -0x68(%rbp), %r12
addq (%r12), %rdi
movl %ebx, %esi
movl -0x8c(%rbp), %edx
callq 0xa510
leaq 0x13da4(%rip), %rcx     # 0x1d60e
movl $0x2a, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4190
leaq -0x78(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x38(%rbp), %rbx
je 0x98a8
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x98b0
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq -0x88(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x14320(%rip), %rsi     # 0x1dbf5
callq 0x4280
jmp 0x9a09
movl $0x60, %edi
callq 0x4160
movq %rax, %r12
movq 0xfe0(%r14), %rsi
movq %rax, %rdi
movl $0x5, %edx
callq 0x1ce10
movq %r12, 0xfe0(%r14)
movq (%r12), %rax
movq %r12, %rdi
callq *0x8(%rax)
leaq -0x38(%rbp), %rbx
leaq -0x68(%rbp), %rdi
movl %eax, %esi
callq 0xa466
leaq 0x13d98(%rip), %rsi     # 0x1d6bf
leaq -0x88(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0xa3ec
leaq 0x142b7(%rip), %rsi     # 0x1dbf5
leaq -0x88(%rbp), %rdi
callq 0x4280
jmp 0x9c32
addl $-0x2, %ebx
jmp 0x9956
decl %ebx
movl %edi, -0x8c(%rbp)
shrl $0x1f, %r12d
leal (%rbx,%r12), %esi
leaq -0x58(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x68(%rbp), %rdi
movl $0x2d, %edx
callq 0x41b0
movl %r12d, %edi
leaq -0x68(%rbp), %r12
addq (%r12), %rdi
movl %ebx, %esi
movl -0x8c(%rbp), %edx
callq 0xa510
leaq 0x13ca0(%rip), %rcx     # 0x1d639
movl $0x2c, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4190
leaq -0x78(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x38(%rbp), %rbx
je 0x99d7
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x99df
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq -0x88(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x141f1(%rip), %rsi     # 0x1dbf5
callq 0x4280
movq %rbx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9a29
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x9a2f
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq %rbx, %r12
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xb0(%rbp), %rdi
movq %rbx, %rsi
callq 0x41c0
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x9a70
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x9a8c
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x4170
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x9aa5
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x4170
movslq -0xb4(%rbp), %rax
movslq -0xb8(%rbp), %rcx
imulq $0x4f, %rax, %rax
addq %r14, %rax
movb 0x6(%rcx,%rax), %dl
movb %dl, 0x820(%rcx,%rax)
movq 0x7f0(%r14), %rdi
movq 0x7f8(%r14), %rcx
movq %rcx, %rdx
subq %rdi, %rdx
movq %rdx, %rax
sarq $0x3, %rax
cmpq %r15, %rax
jbe 0x9cd0
leaq (%rdi,%r13), %rsi
addq $0x8, %rsi
movq -0x8(%rsi), %rbx
cmpq %rcx, %rsi
je 0x9b09
addq %r13, %rdi
subq %r13, %rdx
addq $-0x8, %rdx
callq 0x4230
addq $-0x8, 0x7f8(%r14)
testq %rbx, %rbx
leaq -0xa0(%rbp), %r14
movq -0xc0(%rbp), %r15
je 0x9b49
movq 0x10(%rbx), %rdi
leaq 0x20(%rbx), %rax
cmpq %rax, %rdi
je 0x9b3c
movq (%rax), %rsi
incq %rsi
callq 0x4170
movl $0x30, %esi
movq %rbx, %rdi
callq 0x4170
leaq 0x10(%r15), %rax
movq %rax, (%r15)
movq -0xb0(%rbp), %rcx
cmpq %r14, %rcx
je 0x9b6c
movq %rcx, (%r15)
movq -0xa0(%rbp), %rax
movq %rax, 0x10(%r15)
jmp 0x9b73
movups (%r14), %xmm0
movups %xmm0, (%rax)
movq -0xa8(%rbp), %rax
movq %rax, 0x8(%r15)
movq %r14, -0xb0(%rbp)
movq $0x0, -0xa8(%rbp)
movb $0x0, -0xa0(%rbp)
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0x9bb2
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x4170
movq %r15, %rax
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x60, %edi
callq 0x4160
movq %rax, %r12
movq 0xfe0(%r14), %rsi
movq %rax, %rdi
movl $0x5, %edx
callq 0x1ced0
movq %r12, 0xfe0(%r14)
movq (%r12), %rax
movq %r12, %rdi
callq *0x10(%rax)
leaq -0x38(%rbp), %rbx
leaq -0x68(%rbp), %rdi
movl %eax, %esi
callq 0xa466
leaq 0x13b07(%rip), %rsi     # 0x1d716
leaq -0x88(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0xa3ec
leaq 0x13fcf(%rip), %rsi     # 0x1dbf5
leaq -0x88(%rbp), %rdi
callq 0x4280
movq %rbx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9c52
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x9c58
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq %rbx, %r12
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xb0(%rbp), %rdi
movq %rbx, %rsi
callq 0x41c0
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x9c99
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4170
leaq -0x78(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9cb2
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x4170
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0x9a94
leaq 0x13b09(%rip), %rdi     # 0x1d7cf
movq %r15, %rsi
xorl %eax, %eax
callq 0x41e0
leaq 0x13af8(%rip), %rdi     # 0x1d7cf
movq %r15, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x41e0
leaq 0x13ae4(%rip), %rdi     # 0x1d7cf
movq %r15, %rsi
xorl %eax, %eax
callq 0x41e0
leaq 0x13ad3(%rip), %rdi     # 0x1d7cf
movq %r15, %rsi
xorl %eax, %eax
callq 0x41e0
leaq 0x13ac2(%rip), %rdi     # 0x1d7cf
movq %r15, %rsi
xorl %eax, %eax
callq 0x41e0
leaq 0x13ab1(%rip), %rdi     # 0x1d7cf
movq %r15, %rsi
xorl %eax, %eax
callq 0x41e0
leaq 0x13aa0(%rip), %rdi     # 0x1d7cf
movq %r15, %rsi
xorl %eax, %eax
callq 0x41e0
jmp 0x9d69
jmp 0x9d87
jmp 0x9db9
jmp 0x9d69
jmp 0x9d87
jmp 0x9db9
jmp 0x9d69
jmp 0x9d87
jmp 0x9db9
jmp 0x9e2f
jmp 0x9d69
jmp 0x9d87
jmp 0x9d69
jmp 0x9d87
jmp 0x9db9
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
movq %rax, %rbx
leaq -0x78(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d8a
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x4170
jmp 0x9d8a
movq %rax, %rbx
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0x9df2
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9dca
jmp 0x9de7
jmp 0x9db9
jmp 0x9e2f
jmp 0x9dca
jmp 0x9de7
movq %rax, %rbx
movl $0x60, %esi
movq %r12, %rdi
jmp 0x9dfe
jmp 0x9e2f
jmp 0x9e2f
movq %rax, %rbx
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x9dea
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x4170
jmp 0x9dea
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x9e32
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x4170
jmp 0x9e32
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
jmp 0x9e2f
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
cmpq %r12, %rdi
je 0x9e54
movq -0xd0(%rbp), %rsi
jmp 0x9e4c
movq %rax, %rbx
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x9e54
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x4170
movq %rbx, %rdi
callq 0x4250