// File: /workspace/github_cpp_makefile_star2_O3/SYLOH[P]ant-sim/antsim.cpp
// Function: colony::colony(char const*)
colony::colony(const char * fileName){
	mMap.loadFile(fileName);
	mMap.initTrails();
	mMap.initUpdate();
	shortestPathLen = INT_MAX;
	for(int i=0; i< numAnts;i++){
		ants[i].id = i;
	}

	mMap.printDists();
	cout<<endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r14
leaq 0x1184(%rdi), %rbx
movq %rbx, %rdi
callq 0x27c6
movslq 0x3380(%rip), %r15      # 0x60d8
testq %r15, %r15
jle 0x2ec3
leal 0x3(%r15), %eax
leaq -0x1(%r15), %rcx
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
leaq 0xadd0(%r14), %rcx
shrl $0x2, %eax
shlq $0x4, %rax
xorl %edx, %edx
movdqa 0x12b5(%rip), %xmm1     # 0x4040
movdqa 0x12bd(%rip), %xmm2     # 0x4050
movdqa 0x12c5(%rip), %xmm3     # 0x4060
pxor %xmm3, %xmm0
pcmpeqd %xmm4, %xmm4
movdqa 0x12c5(%rip), %xmm5     # 0x4070
xorl %esi, %esi
movdqa %xmm2, %xmm6
movdqa %xmm1, %xmm7
movdqa %xmm6, %xmm8
pxor %xmm3, %xmm8
movdqa %xmm8, %xmm9
pcmpgtd %xmm0, %xmm9
pcmpeqd %xmm0, %xmm8
pshufd $0xf5, %xmm8, %xmm10    # xmm10 = xmm8[1,1,3,3]
pand %xmm9, %xmm10
pshufd $0xf5, %xmm9, %xmm8     # xmm8 = xmm9[1,1,3,3]
por %xmm10, %xmm8
movd %xmm8, %edi
notl %edi
testb $0x1, %dil
je 0x2df9
movl $0x41a00000, -0xc(%rcx,%rsi) # imm = 0x41A00000
pxor %xmm4, %xmm8
pextrw $0x4, %xmm8, %edi
testb $0x1, %dil
je 0x2e12
movl $0x41a00000, -0x8(%rcx,%rsi) # imm = 0x41A00000
movdqa %xmm7, %xmm8
pxor %xmm3, %xmm8
movdqa %xmm8, %xmm9
pcmpgtd %xmm0, %xmm9
pcmpeqd %xmm0, %xmm8
pshufd $0xf5, %xmm8, %xmm10    # xmm10 = xmm8[1,1,3,3]
pand %xmm9, %xmm10
pshufd $0xf5, %xmm9, %xmm8     # xmm8 = xmm9[1,1,3,3]
por %xmm10, %xmm8
pxor %xmm4, %xmm8
pextrw $0x0, %xmm8, %edi
testb $0x1, %dil
je 0x2e5a
movl $0x41a00000, -0x4(%rcx,%rsi) # imm = 0x41A00000
pextrw $0x4, %xmm8, %edi
testb $0x1, %dil
je 0x2e6d
movl $0x41a00000, (%rcx,%rsi) # imm = 0x41A00000
paddq %xmm5, %xmm6
paddq %xmm5, %xmm7
addq $0x10, %rsi
cmpq %rsi, %rax
jne 0x2db5
incq %rdx
addq $0x190, %rcx            # imm = 0x190
cmpq %r15, %rdx
jne 0x2dab
leaq 0x14a04(%r14), %r12
imulq $0x190, %r15, %r13      # imm = 0x190
shlq $0x2, %r15
xorl %ebp, %ebp
leaq (%r12,%rbp), %rdi
xorl %esi, %esi
movq %r15, %rdx
callq 0x1070
addq $0x190, %rbp            # imm = 0x190
cmpq %rbp, %r13
jne 0x2ea9
movl $0x4f000000, 0x1180(%r14) # imm = 0x4F000000
addq $0x194, %r14            # imm = 0x194
movdqa 0x1173(%rip), %xmm0     # 0x4050
xorl %eax, %eax
movdqa 0x1179(%rip), %xmm1     # 0x4060
movdqa 0x1191(%rip), %xmm2     # 0x4080
pshufd $0xf5, %xmm2, %xmm3     # xmm3 = xmm2[1,1,3,3]
movdqa 0x1194(%rip), %xmm4     # 0x4090
movdqa %xmm0, %xmm5
pxor %xmm1, %xmm5
movdqa %xmm2, %xmm6
pcmpgtd %xmm5, %xmm6
pshufd $0xf5, %xmm5, %xmm5     # xmm5 = xmm5[1,1,3,3]
pcmpeqd %xmm3, %xmm5
pand %xmm6, %xmm5
movd %xmm5, %ecx
testb $0x1, %cl
je 0x2f25
movl %eax, (%r14)
pextrw $0x4, %xmm5, %ecx
testb $0x1, %cl
je 0x2f39
leal 0x1(%rax), %ecx
movl %ecx, 0x198(%r14)
addq $0x2, %rax
paddq %xmm4, %xmm0
addq $0x330, %r14            # imm = 0x330
cmpq $0xa, %rax
jne 0x2efc
movq %rbx, %rdi
callq 0x2a24
movq 0x307b(%rip), %rbx      # 0x5fd8
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1090