// File: GAStudyGroup[P]GPX2/src/base/sources/Log.cpp
// Function: Log::initLogFile()
ofstream* Log::initLogFile(){
    string logName{"log/"+to_string(Config::NEW_POP_TYPE)+"/log_"+to_string(Config::ID)+"_"+Config::NAME+"_"+to_string(Config::POP_SIZE)+(Config::LK_PERCENTAGE>0?("_LK-"+to_string(Config::LK_PERCENTAGE*100)):(""))+"_"+to_string(Config::NEW_TOUR_MODE)+".log"};
    
    ofstream *logFile = new ofstream(logName);
    if(!logFile->is_open()){
        cout<<"falha na abertura do arquivo de log"<<endl;
        exit(0);
    }

    return logFile;
}

// Assembly:
subq $0x278, %rsp            # imm = 0x278
leaq 0x868e6(%rip), %rax     # 0x9c8e4
movl (%rax), %esi
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x188a0
movq 0x30(%rsp), %rdx
leaq 0x5e3d2(%rip), %rsi     # 0x743f0
leaq 0x118(%rsp), %rdi
callq 0x18850
jmp 0x1602d
leaq 0x5e3c1(%rip), %rdx     # 0x743f5
leaq 0x138(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x186c0
jmp 0x1604b
leaq 0x8695e(%rip), %rax     # 0x9c9b0
movl (%rax), %esi
leaq 0xc8(%rsp), %rdi
callq 0x188a0
jmp 0x16063
leaq 0x158(%rsp), %rdi
leaq 0x138(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x18710
jmp 0x16082
leaq 0x5e370(%rip), %rdx     # 0x743f9
leaq 0x178(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x186c0
jmp 0x160a0
leaq 0x86911(%rip), %rdx     # 0x9c9b8
leaq 0x198(%rsp), %rdi
leaq 0x178(%rsp), %rsi
callq 0x18800
jmp 0x160be
leaq 0x5e334(%rip), %rdx     # 0x743f9
leaq 0x1b8(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x186c0
jmp 0x160dc
leaq 0x8691d(%rip), %rax     # 0x9ca00
movl (%rax), %esi
leaq 0xa8(%rsp), %rdi
callq 0x188a0
jmp 0x160f4
leaq 0x1d8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x18710
jmp 0x16113
leaq 0x868de(%rip), %rax     # 0x9c9f8
movsd (%rax), %xmm0
movb $0x0, 0x67(%rsp)
movb $0x0, 0x65(%rsp)
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x16176
leaq 0x868c0(%rip), %rax     # 0x9c9f8
movsd (%rax), %xmm0
movsd 0x5e294(%rip), %xmm1    # 0x743d8
mulsd %xmm1, %xmm0
leaq 0x68(%rsp), %rdi
callq 0x189a0
jmp 0x16154
movb $0x1, 0x67(%rsp)
leaq 0x5e29b(%rip), %rsi     # 0x743fb
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x18850
jmp 0x16174
jmp 0x161a7
leaq 0x66(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x6860
movq 0x28(%rsp), %rdx
movb $0x1, 0x65(%rsp)
leaq 0x5f85e(%rip), %rsi     # 0x759f4
leaq 0x88(%rsp), %rdi
callq 0x92b0
jmp 0x161a5
jmp 0x161a7
leaq 0x1f8(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x18710
jmp 0x161c6
leaq 0x5e22c(%rip), %rdx     # 0x743f9
leaq 0x218(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x186c0
jmp 0x161e4
leaq 0x8670d(%rip), %rax     # 0x9c8f8
movl (%rax), %esi
leaq 0x40(%rsp), %rdi
callq 0x188a0
jmp 0x161f9
leaq 0x238(%rsp), %rdi
leaq 0x218(%rsp), %rsi
leaq 0x40(%rsp), %rdx
callq 0x18710
jmp 0x16215
leaq 0x5e1e4(%rip), %rdx     # 0x74400
leaq 0x258(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x186c0
jmp 0x16233
leaq 0x238(%rsp), %rdi
callq 0x6988
leaq 0x40(%rsp), %rdi
callq 0x6988
leaq 0x218(%rsp), %rdi
callq 0x6988
leaq 0x1f8(%rsp), %rdi
callq 0x6988
leaq 0x88(%rsp), %rdi
callq 0x6988
testb $0x1, 0x65(%rsp)
jne 0x1627a
jmp 0x16284
leaq 0x66(%rsp), %rdi
callq 0x6520
testb $0x1, 0x67(%rsp)
jne 0x1628d
jmp 0x16297
leaq 0x68(%rsp), %rdi
callq 0x6988
leaq 0x1d8(%rsp), %rdi
callq 0x6988
leaq 0xa8(%rsp), %rdi
callq 0x6988
leaq 0x1b8(%rsp), %rdi
callq 0x6988
leaq 0x198(%rsp), %rdi
callq 0x6988
leaq 0x178(%rsp), %rdi
callq 0x6988
leaq 0x158(%rsp), %rdi
callq 0x6988
leaq 0xc8(%rsp), %rdi
callq 0x6988
leaq 0x138(%rsp), %rdi
callq 0x6988
leaq 0x118(%rsp), %rdi
callq 0x6988
leaq 0xf8(%rsp), %rdi
callq 0x6988
movl $0x200, %edi            # imm = 0x200
callq 0x64b0
movq %rax, 0x20(%rsp)
jmp 0x1632a
movq 0x20(%rsp), %rdi
leaq 0x258(%rsp), %rsi
movl $0x10, %edx
callq 0x6920
jmp 0x16343
movq 0x20(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0x63b0
movb %al, 0x1f(%rsp)
jmp 0x1635d
movb 0x1f(%rsp), %al
testb $0x1, %al
jne 0x16661
jmp 0x1636b
movq 0x85c26(%rip), %rdi     # 0x9bf98
leaq 0x5e08c(%rip), %rsi     # 0x74405
callq 0x64a0
movq %rax, 0x10(%rsp)
jmp 0x16385
movq 0x10(%rsp), %rdi
movq 0x85bbf(%rip), %rsi     # 0x9bf50
callq 0x6500
jmp 0x16398
xorl %edi, %edi
callq 0x65c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x16617
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x1660a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x165fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x165f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x165e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x165d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x165c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x165bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x165af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x165a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x1658d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x16578
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x1656b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x1655e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x16551
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x16547
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
leaq 0x238(%rsp), %rdi
callq 0x6988
leaq 0x40(%rsp), %rdi
callq 0x6988
leaq 0x218(%rsp), %rdi
callq 0x6988
leaq 0x1f8(%rsp), %rdi
callq 0x6988
leaq 0x88(%rsp), %rdi
callq 0x6988
testb $0x1, 0x65(%rsp)
jne 0x16581
jmp 0x1658b
leaq 0x66(%rsp), %rdi
callq 0x6520
jmp 0x1658d
testb $0x1, 0x67(%rsp)
jne 0x16596
jmp 0x165a0
leaq 0x68(%rsp), %rdi
callq 0x6988
jmp 0x165a2
leaq 0x1d8(%rsp), %rdi
callq 0x6988
leaq 0xa8(%rsp), %rdi
callq 0x6988
leaq 0x1b8(%rsp), %rdi
callq 0x6988
leaq 0x198(%rsp), %rdi
callq 0x6988
leaq 0x178(%rsp), %rdi
callq 0x6988
leaq 0x158(%rsp), %rdi
callq 0x6988
leaq 0xc8(%rsp), %rdi
callq 0x6988
leaq 0x138(%rsp), %rdi
callq 0x6988
leaq 0x118(%rsp), %rdi
callq 0x6988
leaq 0xf8(%rsp), %rdi
callq 0x6988
jmp 0x16692
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x16685
movq 0x20(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
movl $0x200, %esi            # imm = 0x200
callq 0x64c0
jmp 0x16685
movq 0x38(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x258(%rsp), %rdi
callq 0x6988
movq 0x8(%rsp), %rax
addq $0x278, %rsp            # imm = 0x278
retq
leaq 0x258(%rsp), %rdi
callq 0x6988
movq 0xf0(%rsp), %rdi
callq 0x6850
nop