LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/floor.cc
// Function: Floor::generatePosition(int&, Posn&)
void Floor::generatePosition(int &id, Posn &pos) {
	id = rand() % 5 + 1;

	Chamber *c = chambers.at(id - 1);
	Posn p;
	do {
		p = c->getPosition();
	} while (!this->validTile(p));
	pos = p;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
callq 0x4070
pushq $0x5
popq %rcx
cltd
idivl %ecx
leal 0x1(%rdx), %eax
movl %eax, (%r15)
leaq 0x808(%r14), %rdi
movslq %edx, %rsi
callq 0x8380
movq (%rax), %r15
leaq -0x30(%rbp), %r12
leaq -0x38(%rbp), %r13
movq %r15, %rdi
callq 0x4d88
movq %rax, -0x38(%rbp)
movq %r12, %rdi
movq %r13, %rsi
callq 0x4bfe
movq -0x30(%rbp), %rsi
movq %r14, %rdi
callq 0x533c
testb %al, %al
je 0x52f9
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x4bfe
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/floor.cc
// Function: Floor::dragonPosition(Posn)
Posn Floor::dragonPosition(Posn pos) {
	Posn p;
	do {
		int i = rand() % 8;
		std::string dir[8] = {"ea", "we", "no", "so", "ne", "nw", "sw", "se"};
		p = pos.getNew(dir[i]);
	} while (!this->validTile(p));
	return p;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x158, %rsp            # imm = 0x158
movq %rdi, -0x50(%rbp)
leaq -0x60(%rbp), %rax
movq %rsi, (%rax)
leaq -0x140(%rbp), %r14
leaq -0xc0(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq -0xa0(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq -0x160(%rbp), %rbx
leaq -0x58(%rbp), %r15
leaq -0x180(%rbp), %r13
callq 0x4070
cltd
pushq $0x8
popq %rcx
idivl %ecx
movl %edx, %r12d
movq %rbx, %rdi
leaq 0xadb7(%rip), %rsi      # 0x101a3
movq %r15, %rdx
callq 0x40b0
movq %r14, %rdi
leaq 0xada8(%rip), %rsi      # 0x101a6
leaq -0x2f(%rbp), %rdx
callq 0x40b0
leaq -0x120(%rbp), %rdi
leaq 0xad94(%rip), %rsi      # 0x101a9
leaq -0x2e(%rbp), %rdx
callq 0x40b0
leaq -0x100(%rbp), %rdi
leaq 0xad80(%rip), %rsi      # 0x101ac
leaq -0x2d(%rbp), %rdx
callq 0x40b0
leaq -0xe0(%rbp), %rdi
leaq 0xad6c(%rip), %rsi      # 0x101af
leaq -0x2c(%rbp), %rdx
callq 0x40b0
leaq -0xc0(%rbp), %rdi
leaq 0xad58(%rip), %rsi      # 0x101b2
leaq -0x2b(%rbp), %rdx
callq 0x40b0
leaq -0xa0(%rbp), %rdi
leaq 0xad47(%rip), %rsi      # 0x101b8
leaq -0x2a(%rbp), %rdx
callq 0x40b0
leaq -0x80(%rbp), %rdi
leaq 0xad30(%rip), %rsi      # 0x101b5
leaq -0x29(%rbp), %rdx
callq 0x40b0
movslq %r12d, %rax
shlq $0x5, %rax
leaq (%rax,%rbp), %rsi
addq $-0x160, %rsi           # imm = 0xFEA0
movq %r13, %rdi
callq 0x4200
leaq -0x60(%rbp), %rdi
movq %r13, %rsi
callq 0x4ad8
movq %rax, -0x58(%rbp)
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x4bfe
movq %r13, %rdi
callq 0x40e0
movl $0xe0, %r12d
leaq (%r12,%rbp), %rdi
addq $-0x160, %rdi           # imm = 0xFEA0
callq 0x40e0
addq $-0x20, %r12
cmpq $-0x20, %r12
jne 0x54d2
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x533c
testb %al, %al
je 0x53d4
movq -0x48(%rbp), %rax
addq $0x158, %rsp            # imm = 0x158
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
jmp 0x5561
movq %rax, %r15
leaq -0x120(%rbp), %r14
jmp 0x5561
movq %rax, %r15
leaq -0x100(%rbp), %r14
jmp 0x5561
movq %rax, %r15
leaq -0xe0(%rbp), %r14
jmp 0x5561
movq %rax, %r15
jmp 0x555d
movq %rax, %r15
jmp 0x5555
movq %rax, %r15
leaq -0x80(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %r14
addq $-0x20, %r14
movq %r14, %rdi
callq 0x40e0
cmpq %rbx, %r14
jne 0x5561
jmp 0x55a7
movq %rax, %r15
jmp 0x5588
movq %rax, %r15
leaq -0x180(%rbp), %rdi
callq 0x40e0
movl $0xe0, %ebx
leaq (%rbx,%rbp), %rdi
addq $-0x160, %rdi           # imm = 0xFEA0
callq 0x40e0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x558d
movq %r15, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/floor.cc
// Function: Floor::initFloor(char)
void Floor::initFloor(char type) {
	int id;
	int dragons = 0;
	srand(time(NULL));
	generateChamber();
	generatePlayer(type, id);
	generateStair(id);
	generateItems(dragons);
	generateEnemies(dragons);
	assignCompass();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movl %esi, %r15d
movq %rdi, %rbx
leaq -0x24(%rbp), %r14
andl $0x0, (%r14)
xorl %edi, %edi
callq 0x4160
movl %eax, %edi
callq 0x4170
movq %rbx, %rdi
callq 0x562c
leaq -0x28(%rbp), %r12
movq %rbx, %rdi
movl %r15d, %esi
movq %r12, %rdx
callq 0x56a6
movl (%r12), %esi
movq %rbx, %rdi
callq 0x5806
movq %rbx, %rdi
movq %r14, %rsi
callq 0x58c2
movl (%r14), %esi
movq %rbx, %rdi
callq 0x5dc6
movq %rbx, %rdi
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x5f2c
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/floor.cc
// Function: Floor::generatePlayer(char, int&)
void Floor::generatePlayer(char type, int &id) {


	id = rand() % 5 + 1;

	Chamber *c = chambers.at(id - 1);
	Posn p;
	do {
		p = c->getPosition();
	} while (!(this->displayGrid[p.y][p.x] == '.'));


	if (type == 'h') {
	 	this->player = new Human(140, 0, p);
	} else if (type == 'o') {
		this->player = new Orc(1800, 0, p);
	} else if (type == 'e') {
		this->player = new Elf(1400, 0, p);
	} else if (type == 'd') {
		this->player = new Dwarf(1000, 0, p);
	}
	displayGrid[p.y][p.x] = '@';
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r15
movl %esi, %r14d
movq %rdi, %rbx
callq 0x4070
pushq $0x5
popq %rcx
cltd
idivl %ecx
leal 0x1(%rdx), %eax
movl %eax, (%r15)
leaq 0x808(%rbx), %rdi
movslq %edx, %rsi
callq 0x8380
movq (%rax), %r15
movq %rbx, -0x38(%rbp)
addq $0x820, %rbx            # imm = 0x820
leaq -0x30(%rbp), %r12
leaq -0x40(%rbp), %r13
movq %r15, %rdi
callq 0x4d88
movq %rax, -0x40(%rbp)
movq %r12, %rdi
movq %r13, %rsi
callq 0x4bfe
movslq -0x2c(%rbp), %rax
movslq -0x30(%rbp), %rcx
imulq $0x4f, %rax, %rax
addq %rbx, %rax
cmpb $0x2e, (%rcx,%rax)
jne 0x56f6
movsbl %r14b, %eax
cmpl $0x64, %eax
je 0x579e
cmpl $0x65, %eax
je 0x575e
cmpl $0x6f, %eax
je 0x577e
cmpl $0x68, %eax
jne 0x57c7
pushq $0x50
popq %rdi
callq 0x4190
movq %rax, %r14
movq -0x30(%rbp), %rcx
movq %rax, %rdi
movl $0x8c, %esi
xorl %edx, %edx
callq 0x9718
jmp 0x57bc
pushq $0x50
popq %rdi
callq 0x4190
movq %rax, %r14
movq -0x30(%rbp), %rcx
movq %rax, %rdi
movl $0x578, %esi            # imm = 0x578
xorl %edx, %edx
callq 0xa2b0
jmp 0x57bc
pushq $0x50
popq %rdi
callq 0x4190
movq %rax, %r14
movq -0x30(%rbp), %rcx
movq %rax, %rdi
movl $0x708, %esi            # imm = 0x708
xorl %edx, %edx
callq 0x9854
jmp 0x57bc
pushq $0x50
popq %rdi
callq 0x4190
movq %rax, %r14
movq -0x30(%rbp), %rcx
movq %rax, %rdi
movl $0x3e8, %esi            # imm = 0x3E8
xorl %edx, %edx
callq 0xa908
movq -0x38(%rbp), %rax
movq %r14, 0xfe0(%rax)
movslq -0x2c(%rbp), %rax
movslq -0x30(%rbp), %rcx
imulq $0x4f, %rax, %rax
addq %rax, %rbx
movb $0x40, (%rcx,%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x57ef
jmp 0x57ef
jmp 0x57ef
movq %rax, %rbx
pushq $0x50
popq %rsi
movq %r14, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/floor.cc
// Function: Floor::generateStair(int)
void Floor::generateStair(int id) {
	int id2;
	Posn p;
	do {
		id2 = rand() % 5 + 1;
	} while (id == id2);
	Chamber *c = chambers.at(id2 - 1);
	do {
		p = c->getPosition();
	} while (!(this->displayGrid[p.y][p.x] == '.'));
	 
	this->stair = new Stair(p);
	//this->displayGrid[p.y][p.x] == '/';
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %r14d
movq %rdi, %rbx
pushq $0x5
popq %r15
callq 0x4070
cltd
idivl %r15d
leal 0x1(%rdx), %eax
cmpl %r14d, %eax
je 0x5821
leaq 0x808(%rbx), %rdi
movslq %edx, %rsi
callq 0x8380
movq (%rax), %r14
leaq 0x820(%rbx), %r13
leaq -0x30(%rbp), %r15
leaq -0x38(%rbp), %r12
movq %r14, %rdi
callq 0x4d88
movq %rax, -0x38(%rbp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x4bfe
movslq -0x2c(%rbp), %rax
movslq -0x30(%rbp), %rcx
imulq $0x4f, %rax, %rax
addq %r13, %rax
cmpb $0x2e, (%rcx,%rax)
jne 0x5853
pushq $0xc
popq %rdi
callq 0x4190
movq %rax, %r14
movq -0x30(%rbp), %rsi
movq %rax, %rdi
callq 0x4c14
movq %r14, 0xfd8(%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
pushq $0xc
popq %rsi
movq %r14, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/floor.cc
// Function: Floor::generateEnemies(int)
void Floor::generateEnemies(int dragons) {
	for (int i = 0; i < 20 - dragons; i++) {
		int num = rand() % 18 + 1;
		int id;
		Posn pos;
		generatePosition(id, pos);
		Enemy *e;
		if (num <= 4) {
			e = new Werewolf(pos, id);
			this->enemies.push_back(e);
		} else if (num > 4 && num <= 7) {
			e = new Vampire(pos, id);
			this->enemies.push_back(e);
		} else if (num > 7 && num <= 12) {
			e = new Goblin(pos, id);
			this->enemies.push_back(e);
		} else if (num > 12 && num <= 14) {
			e = new Troll(pos, id);
			this->enemies.push_back(e);
		} else if (num > 14 && num <= 16) {
			e = new Phoenix(pos, id);
			this->enemies.push_back(e);
		} else if (num > 16 && num <= 18) {
			e = new Merchant(pos, id);
			this->enemies.push_back(e);
		}
		displayGrid[pos.y][pos.x] = e->getSymbol();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
pushq $0x14
popq %rax
subl %esi, %eax
leaq 0x7c0(%rdi), %r14
leaq 0x820(%rdi), %rcx
movq %rcx, -0x48(%rbp)
xorl %r15d, %r15d
testl %eax, %eax
cmovgl %eax, %r15d
subl $0x1, %r15d
jb 0x5efd
callq 0x4070
cltd
pushq $0x12
popq %rcx
idivl %ecx
movl %edx, %r13d
movq %rbx, %rdi
leaq -0x2c(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x52b4
pushq $0x50
popq %rdi
cmpl $0x3, %r13d
jg 0x5e47
callq 0x4190
movq %rax, %r12
movq -0x40(%rbp), %rsi
movl -0x2c(%rbp), %edx
movq %rax, %rdi
callq 0xc6ac
jmp 0x5ecb
cmpl $0x6, %r13d
ja 0x5e66
callq 0x4190
movq %rax, %r12
movq -0x40(%rbp), %rsi
movl -0x2c(%rbp), %edx
movq %rax, %rdi
callq 0xc208
jmp 0x5ecb
cmpl $0xb, %r13d
ja 0x5e85
callq 0x4190
movq %rax, %r12
movq -0x40(%rbp), %rsi
movl -0x2c(%rbp), %edx
movq %rax, %rdi
callq 0xaf7c
jmp 0x5ecb
cmpl $0xd, %r13d
ja 0x5ea4
callq 0x4190
movq %rax, %r12
movq -0x40(%rbp), %rsi
movl -0x2c(%rbp), %edx
movq %rax, %rdi
callq 0xba14
jmp 0x5ecb
callq 0x4190
movq %rax, %r12
movq -0x40(%rbp), %rsi
movl -0x2c(%rbp), %edx
cmpl $0xf, %r13d
ja 0x5ec3
movq %r12, %rdi
callq 0xb47c
jmp 0x5ecb
movq %r12, %rdi
callq 0xb3cc
movq %r12, -0x38(%rbp)
movq %r14, %rdi
leaq -0x38(%rbp), %rsi
callq 0x8400
movq -0x38(%rbp), %rdi
movq (%rdi), %rax
callq *0x30(%rax)
movslq -0x3c(%rbp), %rcx
movslq -0x40(%rbp), %rdx
imulq $0x4f, %rcx, %rcx
addq -0x48(%rbp), %rcx
movb %al, (%rdx,%rcx)
jmp 0x5dfa
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5f16
jmp 0x5f16
jmp 0x5f16
jmp 0x5f16
jmp 0x5f16
movq %rax, %rbx
pushq $0x50
popq %rsi
movq %r12, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/floor.cc
// Function: Floor::pickGold[abi:cxx11](Posn)
std::string Floor::pickGold(Posn p) {
	for (int i = 0; i < golds.size(); i++) {
		if (golds.at(i)->getPosition() == p) {
			Gold *tmp = golds.at(i);
			if (!(tmp->isGuarded())) {
				int value = tmp->getValue();
				golds.erase(golds.begin()+i);
				delete tmp;
				this->player->updateGold(value);
				return "You picked " + std::to_string(value) + " gold. ";
			}
		}
	}
	return "invalid";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
leaq -0x38(%rbp), %rax
movq %rdx, (%rax)
leaq 0x7d8(%rsi), %r15
xorl %r12d, %r12d
xorl %r13d, %r13d
movq 0x7e0(%r14), %rax
subq 0x7d8(%r14), %rax
sarq $0x3, %rax
cmpq %r13, %rax
jbe 0x6dd0
movq %r15, %rdi
movq %r13, %rsi
callq 0x82c8
movq (%rax), %rdi
callq 0xcabc
movq %rax, -0x58(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4bd2
testb %al, %al
je 0x6dc7
movq %r15, %rdi
movq %r13, %rsi
callq 0x82c8
movq (%rax), %rbx
movq %rbx, %rdi
callq 0xcdf6
testb %al, %al
je 0x6dec
incq %r13
addq $0x8, %r12
jmp 0x6d6e
leaq 0x9515(%rip), %rsi      # 0x102ec
leaq -0x58(%rbp), %rdx
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x40b0
jmp 0x6e77
movq %rbx, %rdi
callq 0xcdec
movl %eax, %r13d
addq 0x7d8(%r14), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x82ea
leaq 0x18(%rbx), %rdi
callq 0x40e0
pushq $0x38
popq %rsi
movq %rbx, %rdi
callq 0x41a0
movq 0xfe0(%r14), %rdi
movq (%rdi), %rax
movl %r13d, %esi
callq *(%rax)
leaq -0x78(%rbp), %rbx
movq %rbx, %rdi
movl %r13d, %esi
callq 0x851e
leaq 0x94e8(%rip), %rsi      # 0x1032a
leaq -0x58(%rbp), %rdi
movq %rbx, %rdx
callq 0x84f0
leaq 0x94e1(%rip), %rdx      # 0x10336
leaq -0x58(%rbp), %rsi
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x84c7
leaq -0x58(%rbp), %rdi
callq 0x40e0
leaq -0x78(%rbp), %rdi
callq 0x40e0
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x40e0
jmp 0x6e9a
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x40e0
movq %rbx, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/floor.cc
// Function: Floor::talkMerchant(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
std::string Floor::talkMerchant(std::string direction){
	if (this->getHostile()){
		return "You are my enemy!";
	}
	Posn p = this->player->getPosition().getNew(direction);
	for (int i = 0; i < this->enemies.size(); ++i){
		if (p == this->enemies.at(i)->getPosition()){
			if (this->enemies.at(i)->getRace() == "Merchant") {
				return "(B)uckler Shield: 3g (T)arge Shield: 6g (P)avise Shield: 12g (N)odachi: 3g (K)atana: 7g (U)chigatana: 15g";
			}
		}
	}
	return "Invalid input. Try again.";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdi, %r15
cmpb $0x1, 0x4(%rsi)
jne 0x7160
leaq 0x92c1(%rip), %rsi      # 0x10418
leaq -0x58(%rbp), %rdx
jmp 0x725e
movq %rdx, %rbx
movq %rsi, %r14
movq %r15, -0x30(%rbp)
movq 0xfe0(%rsi), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
leaq -0x58(%rbp), %r15
movq %rax, (%r15)
leaq -0x80(%rbp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x4200
movq %r15, %rdi
movq %r12, %rsi
callq 0x4ad8
leaq -0x60(%rbp), %r15
movq %rax, (%r15)
leaq -0x80(%rbp), %rdi
callq 0x40e0
leaq 0x7c0(%r14), %r12
xorl %r13d, %r13d
leaq -0x58(%rbp), %rbx
movq %r14, -0x38(%rbp)
movq 0x7c8(%r14), %rax
subq 0x7c0(%r14), %rax
sarq $0x3, %rax
cmpq %r13, %rax
jbe 0x7246
movq %r12, %rdi
movq %r13, %rsi
callq 0x825e
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
movq %rax, -0x58(%rbp)
movq %r15, %rdi
movq %rbx, %rsi
callq 0x4bd2
testb %al, %al
je 0x723e
movq %r12, %rdi
movq %r13, %rsi
callq 0x825e
movq (%rax), %rsi
movq (%rsi), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %rbx, %rdi
leaq 0x9085(%rip), %rsi      # 0x1029e
callq 0x4ac7
movq %r12, %r14
movq %r15, %r12
movl %eax, %r15d
movq %rbx, %rdi
callq 0x40e0
testb %r15b, %r15b
movq %r12, %r15
movq %r14, %r12
movq -0x38(%rbp), %r14
jne 0x724f
incq %r13
jmp 0x71ba
leaq 0x9247(%rip), %rsi      # 0x10494
jmp 0x7256
leaq 0x91d4(%rip), %rsi      # 0x1042a
leaq -0x58(%rbp), %rdx
movq -0x30(%rbp), %r15
movq %r15, %rdi
callq 0x40b0
movq %r15, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x40e0
movq %rbx, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/player.cc
// Function: Player::takeDamage(int)
void Player::takeDamage(int amount)
{
    if (this->barrier())
    {
        this->HP -= ceil(amount / 2);
    }
    else
    {
        this->HP -= amount;
    }
    if (this->HP < 0)
    {
        this->HP = 0;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpb $0x1, 0x48(%rdi)
jne 0x913f
movl $0xfffffffe, %ecx       # imm = 0xFFFFFFFE
movl %esi, %eax
cltd
idivl %ecx
addl 0x10(%rdi), %eax
jmp 0x9144
movl 0x10(%rdi), %eax
subl %esi, %eax
movl %eax, 0x10(%rdi)
testl %eax, %eax
jns 0x914f
andl $0x0, 0x10(%rdi)
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/enemy.cc
// Function: Enemy::withinRange(Posn)
bool Enemy::withinRange(Posn player)
{
    Posn epos = this->getPosition();
    std::string directions[8] = {"ea", "we", "no", "so", "ne", "nw", "se", "sw"};
    for (int i = 0; i < 8; ++i)
    {
        if (epos.getNew(directions[i]) == player)
        {
            return true;
        }
    }
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movq %rsi, -0x48(%rbp)
movq (%rdi), %rax
callq *0x38(%rax)
movq %rax, -0x40(%rbp)
leaq 0x6f1a(%rip), %rsi      # 0x101a3
leaq -0x170(%rbp), %rbx
leaq -0x38(%rbp), %rdx
movq %rbx, %rdi
callq 0x40b0
leaq -0x150(%rbp), %r14
leaq 0x6efc(%rip), %rsi      # 0x101a6
leaq -0x2f(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0x130(%rbp), %r14
leaq 0x6ee5(%rip), %rsi      # 0x101a9
leaq -0x2e(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0x110(%rbp), %r14
leaq 0x6ece(%rip), %rsi      # 0x101ac
leaq -0x2d(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0xf0(%rbp), %r14
leaq 0x6eb7(%rip), %rsi      # 0x101af
leaq -0x2c(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0xd0(%rbp), %r14
leaq 0x6ea0(%rip), %rsi      # 0x101b2
leaq -0x2b(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0xb0(%rbp), %r14
leaq 0x6e89(%rip), %rsi      # 0x101b5
leaq -0x2a(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0x90(%rbp), %r14
leaq 0x6e72(%rip), %rsi      # 0x101b8
leaq -0x29(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
xorl %eax, %eax
leaq -0x68(%rbp), %r14
leaq -0x48(%rbp), %r13
movq %rax, %r12
cmpq $0x8, %rax
je 0x93a5
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4200
leaq -0x40(%rbp), %rdi
movq %r14, %rsi
callq 0x4ad8
movq %rax, -0x38(%rbp)
leaq -0x38(%rbp), %rdi
movq %r13, %rsi
callq 0x4bd2
movl %eax, %r15d
movq %r14, %rdi
callq 0x40e0
leaq 0x1(%r12), %rax
addq $0x20, %rbx
testb %r15b, %r15b
je 0x935c
movl $0xe0, %ebx
leaq (%rbx,%rbp), %rdi
addq $-0x170, %rdi           # imm = 0xFE90
callq 0x40e0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x93aa
cmpq $0x8, %r12
setb %al
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x93e9
jmp 0x93e9
jmp 0x93e9
jmp 0x93e9
jmp 0x93e9
jmp 0x93e9
movq %rax, %r15
addq $-0x20, %r14
movq %r14, %rdi
callq 0x40e0
cmpq %rbx, %r14
jne 0x93ec
jmp 0x942f
movq %rax, %r15
jmp 0x9410
movq %rax, %r15
leaq -0x68(%rbp), %rdi
callq 0x40e0
movl $0xe0, %ebx
leaq (%rbx,%rbp), %rdi
addq $-0x170, %rdi           # imm = 0xFE90
callq 0x40e0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x9415
movq %r15, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/human.cc
// Function: Human::Human(int, int, Posn)
Human::Human(int HP, int gold, Posn position)
{
    this->Atk = 20;
    this->Def = 20;
    this->HP = HP;
    this->gold = gold;
    this->race = "Human";
    this->symbol = '@';
    this->position = position;
    this->MaxHP = 140;
    this->hasBarrier = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq %rcx, -0x18(%rbp)
leaq 0x28(%rdi), %rax
movq %rax, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
addq $0x18, %rdi
movb $0x0, 0x28(%rbx)
leaq 0xcdf2(%rip), %rax      # 0x16538
movq %rax, (%rbx)
movabsq $0x1400000014, %rax     # imm = 0x1400000014
movq %rax, 0x8(%rbx)
movl %esi, 0x10(%rbx)
movl %edx, 0x14(%rbx)
leaq 0x721c(%rip), %rsi      # 0x10980
callq 0x42a0
movb $0x40, 0x38(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movl $0x8c, 0x44(%rbx)
movb $0x0, 0x48(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/human.cc
// Function: Human::Human(int, int, Posn, int, int, bool)
Human::Human(int HP, int gold, Posn position, int Atk, int Def, bool hasBarrier)
{
    this->Atk = Atk;
    this->Def = Def;
    this->HP = HP;
    this->gold = gold;
    this->race = "Human";
    this->symbol = '@';
    this->position = position;
    this->MaxHP = 140;
    this->hasBarrier = hasBarrier;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq %rcx, -0x18(%rbp)
leaq 0x28(%rdi), %rax
movq %rax, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
addq $0x18, %rdi
movb $0x0, 0x28(%rbx)
leaq 0xcd68(%rip), %rax      # 0x16538
movq %rax, (%rbx)
movl %r8d, 0x8(%rbx)
movl %r9d, 0xc(%rbx)
movl %esi, 0x10(%rbx)
movl %edx, 0x14(%rbx)
leaq 0x7198(%rip), %rsi      # 0x10980
callq 0x42a0
movb $0x40, 0x38(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movb 0x10(%rbp), %al
movl $0x8c, 0x44(%rbx)
movb %al, 0x48(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/orc.cc
// Function: Orc::Orc(int, int, Posn)
Orc::Orc(int HP, int gold, Posn position)
{
    this->Atk = 30;
    this->Def = 25;
    this->HP = HP;
    this->gold = gold;
    this->race = "Orc";
    this->symbol = '@';
    this->position = position;
    this->MaxHP = 1800;
    this->hasBarrier = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq %rcx, -0x18(%rbp)
leaq 0x28(%rdi), %rax
movq %rax, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
addq $0x18, %rdi
movb $0x0, 0x28(%rbx)
leaq 0xcd4e(%rip), %rax      # 0x165d0
movq %rax, (%rbx)
movabsq $0x190000001e, %rax     # imm = 0x190000001E
movq %rax, 0x8(%rbx)
movl %esi, 0x10(%rbx)
movl %edx, 0x14(%rbx)
leaq 0x7100(%rip), %rsi      # 0x109a0
callq 0x42a0
movb $0x40, 0x38(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movl $0x708, 0x44(%rbx)      # imm = 0x708
movb $0x0, 0x48(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/orc.cc
// Function: Orc::Orc(int, int, Posn, int, int, bool)
Orc::Orc(int HP, int gold, Posn position, int Atk, int Def, bool hasBarrier)
{
    this->Atk = Atk;
    this->Def = Def;
    this->HP = HP;
    this->gold = gold;
    this->race = "Orc";
    this->symbol = '@';
    this->position = position;
    this->MaxHP = 1800;
    this->hasBarrier = hasBarrier;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq %rcx, -0x18(%rbp)
leaq 0x28(%rdi), %rax
movq %rax, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
addq $0x18, %rdi
movb $0x0, 0x28(%rbx)
leaq 0xccc4(%rip), %rax      # 0x165d0
movq %rax, (%rbx)
movl %r8d, 0x8(%rbx)
movl %r9d, 0xc(%rbx)
movl %esi, 0x10(%rbx)
movl %edx, 0x14(%rbx)
leaq 0x707c(%rip), %rsi      # 0x109a0
callq 0x42a0
movb $0x40, 0x38(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movb 0x10(%rbp), %al
movl $0x708, 0x44(%rbx)      # imm = 0x708
movb %al, 0x48(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/elf.cc
// Function: Elf::Elf(int, int, Posn)
Elf::Elf(int HP, int gold, Posn position)
{
    this->Atk = 30;
    this->Def = 10;
    this->HP = HP;
    this->gold = gold;
    this->race = "Elf";
    this->symbol = '@';
    this->position = position;
    this->MaxHP = 140;
    this->hasBarrier = false;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq %rcx, -0x18(%rbp)
leaq 0x28(%rdi), %rax
movq %rax, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
addq $0x18, %rdi
movb $0x0, 0x28(%rbx)
leaq 0xc38a(%rip), %rax      # 0x16668
movq %rax, (%rbx)
movabsq $0xa0000001e, %rax      # imm = 0xA0000001E
movq %rax, 0x8(%rbx)
movl %esi, 0x10(%rbx)
movl %edx, 0x14(%rbx)
leaq 0x633e(%rip), %rsi      # 0x1063a
callq 0x42a0
movb $0x40, 0x38(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movl $0x8c, 0x44(%rbx)
movb $0x0, 0x48(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/elf.cc
// Function: Elf::Elf(int, int, Posn, int, int, bool)
Elf::Elf(int HP, int gold, Posn position, int Atk, int Def, bool hasBarrier){
    this->Atk = Atk;
    this->Def = Def;
    this->HP = HP;
    this->gold = gold;
    this->race = "Elf";
    this->symbol = '@';
    this->position = position;
    this->MaxHP = 140;
    this->hasBarrier = hasBarrier;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq %rcx, -0x18(%rbp)
leaq 0x28(%rdi), %rax
movq %rax, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
addq $0x18, %rdi
movb $0x0, 0x28(%rbx)
leaq 0xc300(%rip), %rax      # 0x16668
movq %rax, (%rbx)
movl %r8d, 0x8(%rbx)
movl %r9d, 0xc(%rbx)
movl %esi, 0x10(%rbx)
movl %edx, 0x14(%rbx)
leaq 0x62ba(%rip), %rsi      # 0x1063a
callq 0x42a0
movb $0x40, 0x38(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movb 0x10(%rbp), %al
movl $0x8c, 0x44(%rbx)
movb %al, 0x48(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/dwarf.cc
// Function: Dwarf::Dwarf(int, int, Posn)
Dwarf::Dwarf(int HP, int gold, Posn position)
{
    this->Atk = 20;
    this->Def = 30;
    this->HP = HP;
    this->gold = gold;
    this->race = "Dwarf";
    this->symbol = '@';
    this->position = position;
    this->MaxHP = 1000;
    this->hasBarrier = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq %rcx, -0x18(%rbp)
leaq 0x28(%rdi), %rax
movq %rax, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
addq $0x18, %rdi
movb $0x0, 0x28(%rbx)
leaq 0xbdca(%rip), %rax      # 0x16700
movq %rax, (%rbx)
movabsq $0x1e00000014, %rax     # imm = 0x1E00000014
movq %rax, 0x8(%rbx)
movl %esi, 0x10(%rbx)
movl %edx, 0x14(%rbx)
leaq 0x60d9(%rip), %rsi      # 0x10a2d
callq 0x42a0
movb $0x40, 0x38(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movl $0x3e8, 0x44(%rbx)      # imm = 0x3E8
movb $0x0, 0x48(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/dwarf.cc
// Function: Dwarf::Dwarf(int, int, Posn, int, int, bool)
Dwarf::Dwarf(int HP, int gold, Posn position, int Atk, int Def, bool hasBarrier)
{
    this->Atk = Atk;
    this->Def = Def;
    this->HP = HP;
    this->gold = gold;
    this->race = "Dwarf";
    this->symbol = '@';
    this->position = position;
    this->MaxHP = 1000;
    this->hasBarrier = hasBarrier;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq %rcx, -0x18(%rbp)
leaq 0x28(%rdi), %rax
movq %rax, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
addq $0x18, %rdi
movb $0x0, 0x28(%rbx)
leaq 0xbd40(%rip), %rax      # 0x16700
movq %rax, (%rbx)
movl %r8d, 0x8(%rbx)
movl %r9d, 0xc(%rbx)
movl %esi, 0x10(%rbx)
movl %edx, 0x14(%rbx)
leaq 0x6055(%rip), %rsi      # 0x10a2d
callq 0x42a0
movb $0x40, 0x38(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movb 0x10(%rbp), %al
movl $0x3e8, 0x44(%rbx)      # imm = 0x3E8
movb %al, 0x48(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/goblin.cc
// Function: Goblin::Goblin(Posn, int)
Goblin::Goblin(Posn position, int chamberID)
{
    this->Atk = 5;
    this->Def = 10;
    this->HP = 70;
    this->gold = 1;
    this->race = "Goblin";
    this->symbol = 'N';
    this->hasCompass = false;
    this->chamberID = chamberID;
    this->position = position;
    this->stunned = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl %edx, %r14d
movq %rdi, %rbx
movq %rsi, -0x18(%rbp)
addq $0x18, %rdi
leaq 0x28(%rbx), %rax
movq %rax, 0x18(%rbx)
andq $0x0, 0x20(%rbx)
movb $0x0, 0x28(%rbx)
leaq 0xb7eb(%rip), %rax      # 0x16798
movq %rax, (%rbx)
movaps 0x5b59(%rip), %xmm0     # 0x10b10
movups %xmm0, 0x8(%rbx)
leaq 0x5b5e(%rip), %rsi      # 0x10b20
callq 0x42a0
movb $0x4e, 0x38(%rbx)
movb $0x0, 0x44(%rbx)
movl %r14d, 0x48(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movb $0x0, 0x39(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/merchant.cc
// Function: Merchant::Merchant(Posn, int)
Merchant::Merchant(Posn position, int chamberID)
{
    this->Atk = 70;
    this->Def = 5;
    this->HP = 30;
    this->gold = 4;
    this->race = "Merchant";
    this->symbol = 'M';
    this->hasCompass = false;
    this->chamberID = chamberID;
    this->position = position;
    this->stunned = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl %edx, %r14d
movq %rdi, %rbx
movq %rsi, -0x18(%rbp)
addq $0x18, %rdi
leaq 0x28(%rbx), %rax
movq %rax, 0x18(%rbx)
andq $0x0, 0x20(%rbx)
movb $0x0, 0x28(%rbx)
leaq 0xb43b(%rip), %rax      # 0x16838
movq %rax, (%rbx)
movaps 0x5749(%rip), %xmm0     # 0x10b50
movups %xmm0, 0x8(%rbx)
leaq 0x4e8c(%rip), %rsi      # 0x1029e
callq 0x42a0
movb $0x4d, 0x38(%rbx)
movb $0x0, 0x44(%rbx)
movl %r14d, 0x48(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movb $0x0, 0x39(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/phoenix.cc
// Function: Phoenix::Phoenix(Posn, int)
Phoenix::Phoenix(Posn position, int chamberID)
{
    this->Atk = 35;
    this->Def = 20;
    this->HP = 50;
    this->gold = 1;
    this->race = "Phoenix";
    this->symbol = 'X';
    this->hasCompass = false;
    this->chamberID = chamberID;
    this->position = position;
    this->stunned = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl %edx, %r14d
movq %rdi, %rbx
movq %rsi, -0x18(%rbp)
addq $0x18, %rdi
leaq 0x28(%rbx), %rax
movq %rax, 0x18(%rbx)
andq $0x0, 0x20(%rbx)
movb $0x0, 0x28(%rbx)
leaq 0xb42b(%rip), %rax      # 0x168d8
movq %rax, (%rbx)
movaps 0x56b9(%rip), %xmm0     # 0x10b70
movups %xmm0, 0x8(%rbx)
leaq 0x56c6(%rip), %rsi      # 0x10b88
callq 0x42a0
movb $0x58, 0x38(%rbx)
movb $0x0, 0x44(%rbx)
movl %r14d, 0x48(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movb $0x0, 0x39(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/troll.cc
// Function: Troll::Troll(Posn, int)
Troll::Troll(Posn position, int chamberID)
{
    this->Atk = 25;
    this->Def = 15;
    this->HP = 120;
    this->gold = 1;
    this->race = "Troll";
    this->symbol = 'T';
    this->hasCompass = false;
    this->chamberID = chamberID;
    this->position = position;
    this->stunned = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl %edx, %r14d
movq %rdi, %rbx
movq %rsi, -0x18(%rbp)
addq $0x18, %rdi
leaq 0x28(%rbx), %rax
movq %rax, 0x18(%rbx)
andq $0x0, 0x20(%rbx)
movb $0x0, 0x28(%rbx)
leaq 0xaf33(%rip), %rax      # 0x16978
movq %rax, (%rbx)
movaps 0x51b1(%rip), %xmm0     # 0x10c00
movups %xmm0, 0x8(%rbx)
leaq 0x51be(%rip), %rsi      # 0x10c18
callq 0x42a0
movb $0x54, 0x38(%rbx)
movb $0x0, 0x44(%rbx)
movl %r14d, 0x48(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movb $0x0, 0x39(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/vampire.cc
// Function: Vampire::Vampire(Posn, int)
Vampire::Vampire(Posn position, int chamberID)
{
    this->Atk = 25;
    this->Def = 25;
    this->HP = 50;
    this->gold = 1;
    this->race = "Vampire";
    this->symbol = 'V';
    this->hasCompass = false;
    this->chamberID = chamberID;
    this->position = position;
    this->stunned = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl %edx, %r14d
movq %rdi, %rbx
movq %rsi, -0x18(%rbp)
addq $0x18, %rdi
leaq 0x28(%rbx), %rax
movq %rax, 0x18(%rbx)
andq $0x0, 0x20(%rbx)
movb $0x0, 0x28(%rbx)
leaq 0xa7df(%rip), %rax      # 0x16a18
movq %rax, (%rbx)
movaps 0x4a2d(%rip), %xmm0     # 0x10c70
movups %xmm0, 0x8(%rbx)
leaq 0x4a32(%rip), %rsi      # 0x10c80
callq 0x42a0
movb $0x56, 0x38(%rbx)
movb $0x0, 0x44(%rbx)
movl %r14d, 0x48(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movb $0x0, 0x39(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/werewolf.cc
// Function: Werewolf::Werewolf(Posn, int)
Werewolf::Werewolf(Posn position, int chamberID)
{
    this->Atk = 30;
    this->Def = 5;
    this->HP = 120;
    this->gold = 1;
    this->race = "Werewolf";
    this->symbol = 'W';
    this->hasCompass = false;
    this->chamberID = chamberID;
    this->position = position;
    this->stunned = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl %edx, %r14d
movq %rdi, %rbx
movq %rsi, -0x18(%rbp)
addq $0x18, %rdi
leaq 0x28(%rbx), %rax
movq %rax, 0x18(%rbx)
andq $0x0, 0x20(%rbx)
movb $0x0, 0x28(%rbx)
leaq 0xa3db(%rip), %rax      # 0x16ab8
movq %rax, (%rbx)
movaps 0x45c9(%rip), %xmm0     # 0x10cb0
movups %xmm0, 0x8(%rbx)
leaq 0x45ce(%rip), %rsi      # 0x10cc0
callq 0x42a0
movb $0x57, 0x38(%rbx)
movb $0x0, 0x44(%rbx)
movl %r14d, 0x48(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x18(%rbp), %rsi
callq 0x4bfe
movb $0x0, 0x39(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/gold.cc
// Function: normalHoard::normalHoard(Posn)
normalHoard::normalHoard(Posn p) {
    this->p = p;
    this->symbol = 'G';
    this->type = "normalHoard";
    this->value = 2;
    this->guarded = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
leaq -0x18(%rbp), %rax
movq %rsi, (%rax)
leaq 0x28(%rdi), %rcx
movq %rcx, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
leaq 0x18(%rdi), %r14
movb $0x0, 0x28(%rdi)
addq $0x4, %rdi
movq %rax, %rsi
callq 0x4bfe
movb $0x47, (%rbx)
leaq 0x4078(%rip), %rsi      # 0x10d54
movq %r14, %rdi
callq 0x42a0
movl $0x2, 0xc(%rbx)
movb $0x0, 0x10(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
movq %r14, %rdi
callq 0x40e0
movq %rbx, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/gold.cc
// Function: smallHoard::smallHoard(Posn)
smallHoard::smallHoard(Posn p) {
    this->p = p;
    this->symbol = 'G';
    this->type = "smallHoard";
    this->value = 1;
    this->guarded = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
leaq -0x18(%rbp), %rax
movq %rsi, (%rax)
leaq 0x28(%rdi), %rcx
movq %rcx, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
leaq 0x18(%rdi), %r14
movb $0x0, 0x28(%rdi)
addq $0x4, %rdi
movq %rax, %rsi
callq 0x4bfe
movb $0x47, (%rbx)
leaq 0x4014(%rip), %rsi      # 0x10d60
movq %r14, %rdi
callq 0x42a0
movl $0x1, 0xc(%rbx)
movb $0x0, 0x10(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
movq %r14, %rdi
callq 0x40e0
movq %rbx, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/gold.cc
// Function: dragonHoard::dragonHoard(Posn)
dragonHoard::dragonHoard(Posn p) {
    this->p = p;
    this->type = "dragonHoard";
    this->symbol = 'G';
    this->value = 6;
    this->guarded = true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
leaq -0x18(%rbp), %rax
movq %rsi, (%rax)
leaq 0x28(%rdi), %rcx
movq %rcx, 0x18(%rdi)
andq $0x0, 0x20(%rdi)
leaq 0x18(%rdi), %r14
movb $0x0, 0x28(%rdi)
addq $0x4, %rdi
movq %rax, %rsi
callq 0x4bfe
leaq 0x3fb2(%rip), %rsi      # 0x10d6b
movq %r14, %rdi
callq 0x42a0
movb $0x47, (%rbx)
movl $0x6, 0xc(%rbx)
movb $0x1, 0x10(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
movq %r14, %rdi
callq 0x40e0
movq %rbx, %rdi
callq 0x4280
nop
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/dragon.cc
// Function: Dragon::Dragon(Posn, Gold*, barrierSuit*, int)
Dragon::Dragon(Posn position, Gold *hoard, barrierSuit *suit, int chamberID)
{
    this->Atk = 20;
    this->Def = 20;
    this->HP = 150;
    this->gold = 0;
    this->race = "Dragon";
    this->symbol = 'D';
    this->hasCompass = false;
    this->chamberID = chamberID;
    this->position = position;
    this->hoard = hoard;
    this->suit = suit;
    this->stunned = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movl %r8d, %r12d
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %rbx
movq %rsi, -0x28(%rbp)
addq $0x18, %rdi
leaq 0x28(%rbx), %rax
movq %rax, 0x18(%rbx)
andq $0x0, 0x20(%rbx)
movb $0x0, 0x28(%rbx)
leaq 0x9cad(%rip), %rax      # 0x16b58
movq %rax, (%rbx)
movaps 0x3ecb(%rip), %xmm0     # 0x10d80
movups %xmm0, 0x8(%rbx)
leaq 0x33e7(%rip), %rsi      # 0x102a7
callq 0x42a0
movb $0x44, 0x38(%rbx)
movb $0x0, 0x44(%rbx)
movl %r12d, 0x48(%rbx)
leaq 0x3c(%rbx), %rdi
leaq -0x28(%rbp), %rsi
callq 0x4bfe
movq %r15, 0x50(%rbx)
movq %r14, 0x58(%rbx)
movb $0x0, 0x39(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x8dc0
movq %r14, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/game.cc
// Function: Controller::gameInit(char)
void Controller::gameInit(char type) {
	this->floor = new Floor(1, false, false);
	this->display = new Display();
	this->display->readFloor("map.txt");
	for (int i = 0; i < 25; i++) {
		for (int j = 0; j < 79; j++) {
			char c = this->display->getChar(i, j);
			floor->displayGrid[i][j] = c;
			floor->defaultGrid[i][j] = c;
		}
	}

	this->floor->initFloor(type);
	this->display->updateDisplay(floor);
	
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %esi, %r14d
movq %rdi, %rbx
movl $0xff8, %edi            # imm = 0xFF8
callq 0x4190
movq %rax, %r15
pushq $0x1
popq %rsi
movq %rax, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x50b4
movq %r15, (%rbx)
movl $0x7b7, %edi            # imm = 0x7B7
callq 0x4190
movq %rax, %r15
movl $0x7b7, %edx            # imm = 0x7B7
movq %rax, %rdi
xorl %esi, %esi
callq 0x4120
movq %r15, 0x8(%rbx)
leaq 0x2e71(%rip), %rsi      # 0x10e6a
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x40b0
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x4dd4
leaq -0x50(%rbp), %rdi
callq 0x40e0
xorl %r13d, %r13d
xorl %r15d, %r15d
cmpq $0x19, %r15
je 0xe066
xorl %r12d, %r12d
cmpq $0x4f, %r12
je 0xe05d
movq 0x8(%rbx), %rdi
movl %r15d, %esi
movl %r12d, %edx
callq 0x509e
movq (%rbx), %rcx
addq %r13, %rcx
movb %al, 0x820(%r12,%rcx)
movq (%rbx), %rcx
addq %r13, %rcx
movb %al, 0x6(%r12,%rcx)
incq %r12
jmp 0xe02a
incq %r15
addq $0x4f, %r13
jmp 0xe021
movq (%rbx), %rdi
movsbl %r14b, %esi
callq 0x55b0
movq (%rbx), %rsi
movq 0x8(%rbx), %rdi
callq 0x5068
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x40e0
jmp 0xe0b0
movq %rax, %rbx
jmp 0xe0b0
movq %rax, %rbx
movl $0xff8, %esi            # imm = 0xFF8
movq %r15, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/game.cc
// Function: validDirection(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool validDirection(std::string s){
	std::string dir[8] = {"ea", "we", "no", "so", "ne", "nw", "se", "sw"};
	for (int i = 0; i < 8; ++i){
		if (s == dir[i]){
			return true;
		}
	}
	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rdi, %r15
leaq 0x20d1(%rip), %rsi      # 0x101a3
leaq -0x120(%rbp), %rbx
leaq -0x20(%rbp), %rdx
movq %rbx, %rdi
callq 0x40b0
leaq -0x100(%rbp), %r14
leaq 0x20b3(%rip), %rsi      # 0x101a6
leaq -0x1f(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0xe0(%rbp), %r14
leaq 0x209c(%rip), %rsi      # 0x101a9
leaq -0x1e(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0xc0(%rbp), %r14
leaq 0x2085(%rip), %rsi      # 0x101ac
leaq -0x1d(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0xa0(%rbp), %r14
leaq 0x206e(%rip), %rsi      # 0x101af
leaq -0x1c(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0x80(%rbp), %r14
leaq 0x205a(%rip), %rsi      # 0x101b2
leaq -0x1b(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0x60(%rbp), %r14
leaq 0x2046(%rip), %rsi      # 0x101b5
leaq -0x1a(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
leaq -0x40(%rbp), %r14
leaq 0x2032(%rip), %rsi      # 0x101b8
leaq -0x19(%rbp), %rdx
movq %r14, %rdi
callq 0x40b0
xorl %ecx, %ecx
movq %rcx, %r14
cmpq $0x8, %rcx
je 0xe1b4
movq %r15, %rdi
movq %rbx, %rsi
callq 0x846c
leaq 0x1(%r14), %rcx
addq $0x20, %rbx
testb %al, %al
je 0xe194
movl $0xe0, %ebx
leaq (%rbx,%rbp), %rdi
addq $-0x120, %rdi           # imm = 0xFEE0
callq 0x40e0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0xe1b9
cmpq $0x8, %r14
setb %al
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0xe1f4
jmp 0xe1f4
jmp 0xe1f4
jmp 0xe1f4
jmp 0xe1f4
jmp 0xe1f4
movq %rax, %r15
addq $-0x20, %r14
movq %r14, %rdi
callq 0x40e0
cmpq %rbx, %r14
jne 0xe1f7
movq %r15, %rdi
callq 0x4280
// File: /workspace/github_cpp_makefile_star2_O2/malcolmyeh[P]CC3K/game.cc
// Function: Controller::getScore()
double Controller::getScore() {
	if (floor->player->getRace() == "Human") { return (double)floor->player->getGold() * 1.5; }
	if (floor->player->getRace() == "Orc") { return (double)floor->player->getGold() / 2.0; }
	if (floor->player->getRace() == "Elf") { return (double)floor->player->getGold(); }
	if (floor->player->getRace() == "Dwarf") { return (double)floor->player->getGold() * 2.0; }
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movq (%rdi), %rax
movq 0xfe0(%rax), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %r14
movq %r14, %rdi
callq *0x28(%rax)
leaq 0x24aa(%rip), %rsi      # 0x10980
movq %r14, %rdi
callq 0x4ac7
movl %eax, %r15d
movq %r14, %rdi
callq 0x40e0
testb %r15b, %r15b
je 0xe50f
movq (%rbx), %rax
movq 0xfe0(%rax), %rdi
movq (%rdi), %rax
callq *0x20(%rax)
cvtsi2sd %eax, %xmm0
mulsd 0x2486(%rip), %xmm0     # 0x10990
jmp 0xe5f8
movq (%rbx), %rax
movq 0xfe0(%rax), %rsi
movq (%rsi), %rax
movq %r14, %rdi
callq *0x28(%rax)
leaq 0x2477(%rip), %rsi      # 0x109a0
movq %r14, %rdi
callq 0x4ac7
movl %eax, %r15d
movq %r14, %rdi
callq 0x40e0
testb %r15b, %r15b
je 0xe562
movq (%rbx), %rax
movq 0xfe0(%rax), %rdi
movq (%rdi), %rax
callq *0x20(%rax)
cvtsi2sd %eax, %xmm0
mulsd 0x288b(%rip), %xmm0     # 0x10de8
jmp 0xe5f8
movq (%rbx), %rax
movq 0xfe0(%rax), %rsi
movq (%rsi), %rax
movq %r14, %rdi
callq *0x28(%rax)
leaq 0x20be(%rip), %rsi      # 0x1063a
movq %r14, %rdi
callq 0x4ac7
movl %eax, %r15d
movq %r14, %rdi
callq 0x40e0
testb %r15b, %r15b
je 0xe5aa
movq (%rbx), %rax
movq 0xfe0(%rax), %rdi
movq (%rdi), %rax
callq *0x20(%rax)
cvtsi2sd %eax, %xmm0
jmp 0xe5f8
movq (%rbx), %rax
movq 0xfe0(%rax), %rsi
movq (%rsi), %rax
movq %r14, %rdi
callq *0x28(%rax)
leaq 0x2469(%rip), %rsi      # 0x10a2d
movq %r14, %rdi
callq 0x4ac7
movl %eax, %r15d
movq %r14, %rdi
callq 0x40e0
xorpd %xmm0, %xmm0
testb %r15b, %r15b
je 0xe5f8
movq (%rbx), %rax
movq 0xfe0(%rax), %rdi
movq (%rdi), %rax
callq *0x20(%rax)
cvtsi2sd %eax, %xmm0
addsd %xmm0, %xmm0
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/SYLOH[P]ant-sim/antsim.cpp
// Function: colony::runAnts()
void colony::runAnts(){
	for (int i = 0; i< numAnts; i++){
		ants[i].genPath(mMap);
	}
	
	evaporateTrails();

	for (int i = 0; i< numAnts; i++){
		
		if(ants[i].pathLen < shortestPathLen){
			shortestPathLen = ants[i].pathLen;
			
			for(int c = 0; c< numNodes;c++){
				shortestPath[c] = ants[i].path[c];
			}
		}
		depositePhermones(ants[i]);
	}
	

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3ab18, %rsp          # imm = 0x3AB18
movq %rdi, %rbx
leaq 0x1184(%rdi), %r14
xorl %r13d, %r13d
leaq 0x1d658(%rsp), %r15
cmpq $0xff0, %r13            # imm = 0xFF0
je 0x1e82
leaq (%rbx,%r13), %r12
movl $0x1d4c0, %edx          # imm = 0x1D4C0
movq %r15, %rdi
movq %r14, %rsi
callq 0x1090
movl $0x3a98, %ecx           # imm = 0x3A98
movq %rsp, %rdi
movq %r15, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq %r12, %rdi
callq 0x20cc
addq $0x198, %r13            # imm = 0x198
jmp 0x1e46
movq %rbx, %rdi
callq 0x2560
movl 0x322f(%rip), %r12d     # 0x50c0
xorl %r13d, %r13d
testl %r12d, %r12d
cmovlel %r13d, %r12d
leaq 0x1d4c0(%rsp), %r14
pushq $0x33
popq %r15
movq %rbx, %rbp
cmpq $0xa, %r13
je 0x1f20
imulq $0x198, %r13, %rsi      # imm = 0x198
movss 0x190(%rbx,%rsi), %xmm0
movss 0x1180(%rbx), %xmm1
ucomiss %xmm0, %xmm1
jbe 0x1ef0
movss %xmm0, 0x1180(%rbx)
xorl %eax, %eax
cmpq %rax, %r12
je 0x1ef0
cvtsi2ssl (%rbp,%rax,4), %xmm0
movss %xmm0, 0xff0(%rbx,%rax,4)
incq %rax
jmp 0x1ed7
addq %rbx, %rsi
movl $0x198, %edx            # imm = 0x198
movq %r14, %rdi
callq 0x1090
movq %r15, %rcx
movq %rsp, %rdi
movq %r14, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq %rbx, %rdi
callq 0x25b8
incq %r13
addq $0x198, %rbp            # imm = 0x198
jmp 0x1eaa
addq $0x3ab18, %rsp          # imm = 0x3AB18
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/SYLOH[P]ant-sim/antsim.cpp
// Function: map::printTrails()
void map::printTrails(){
	for(int i =0;i<numNodes;i++){
		for(int j =0; j<numNodes;j++){
			cout<<trailArray[i][j]<<" ";
		}
		cout<<endl;
	}

}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %rbx
addq $0x9c40, %rbx           # imm = 0x9C40
xorl %r12d, %r12d
movq 0x3089(%rip), %r14      # 0x4fd8
leaq 0x10ec(%rip), %r15      # 0x3042
movslq 0x3163(%rip), %rax      # 0x50c0
cmpq %rax, %r12
jge 0x1fa4
xorl %r13d, %r13d
cltq
cmpq %rax, %r13
jge 0x1f90
movss (%rbx,%r13,4), %xmm0
movq %r14, %rdi
callq 0x1080
movq %rax, %rdi
movq %r15, %rsi
callq 0x10d0
incq %r13
movl 0x3132(%rip), %eax      # 0x50c0
jmp 0x1f65
movq %r14, %rdi
callq 0x1060
incq %r12
addq $0x190, %rbx            # imm = 0x190
jmp 0x1f56
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_cpp_makefile_star2_O2/SYLOH[P]ant-sim/antsim.cpp
// Function: colony::applyUpdate()
void colony::applyUpdate(){
	for(int i = 0; i< numNodes; i++){
		for(int j = 0; j< numNodes; j++){
			mMap.trailArray[i][j] += mMap.updateArray[i][j];
			if(mMap.trailArray[i][j]<0){
				mMap.trailArray[i][j]= 0;
			}
		}
	}
	mMap.initUpdate();
}

// Assembly:
movl 0x310c(%rip), %eax      # 0x50c0
leaq 0xadc4(%rdi), %rcx
xorl %edx, %edx
testl %eax, %eax
movl $0x0, %esi
cmovgl %eax, %esi
cmpq %rsi, %rdx
je 0x2002
xorl %r8d, %r8d
cmpq %r8, %rax
je 0x1ff6
movss 0x9c40(%rcx,%r8,4), %xmm0
addss (%rcx,%r8,4), %xmm0
xorps %xmm1, %xmm1
maxss %xmm0, %xmm1
movss %xmm1, (%rcx,%r8,4)
incq %r8
jmp 0x1fcf
incq %rdx
addq $0x190, %rcx            # imm = 0x190
jmp 0x1fc7
addq $0x1184, %rdi           # imm = 0x1184
jmp 0x23da