// File: /workspace/github_cpp_makefile_star2_O1/joraso[P]Glassius/main.cpp
// Function: main
int main(int argc, const char * argv[]) {

    // Check:
    if(argc != 6){
        std::cout << "Error: wrong number of command line inputs!" << std::endl;
        return 1;
    }

    // Current command line arguments:
    int mode = std::stoi(argv[1]);
    double T = std::stod(argv[2]);
    double relax = std::stod(argv[3]);
    int record = std::stoi(argv[4]);
    int JobID = std::stoi(argv[5]);

    // start the clock
    Stopwatch timer;
    timer.StampLaunch();
    
    // seed the random number generator
    chaos::seed(JobID);
    
    // running the protocol
    
    if (mode==0) {Protocol::KobAndersonTest(T, relax, record, &timer);};
    if (mode==1) {Protocol::SzamelTest(T, relax, record, &timer);};
    //Protocol::LennardJonesTest(5.0 ,1000, &timer);
    //Protocol::DiffusionTest(T, relax, &timer);
    //Protocol::KobAndersonReplication(T, relax, &timer);
    
    // timestamping the end
    timer.EndStamp();
    
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
cmpl $0x6, %edi
jne 0x25ec
movq %rsi, %r15
movq 0x8(%rsi), %rsi
leaq 0x8(%rsp), %rdi
leaq 0x3(%rsp), %rdx
callq 0x20b0
movq 0x8(%rsp), %r12
callq 0x2050
movq %rax, %rbx
movl (%rax), %ebp
movl $0x0, (%rax)
leaq 0x28(%rsp), %r13
movq %r12, %rdi
movq %r13, %rsi
movl $0xa, %edx
callq 0x2210
cmpq %r12, (%r13)
je 0x2836
movslq %eax, %rcx
cmpq %rax, %rcx
jne 0x2842
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x2842
movq %rax, 0x40(%rsp)
testl %ecx, %ecx
jne 0x257f
movl %ebp, (%rbx)
leaq 0x18(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x2592
callq 0x21b0
movq 0x10(%r15), %rsi
leaq 0x8(%rsp), %rdi
leaq 0x3(%rsp), %rdx
callq 0x20b0
movq 0x8(%rsp), %r12
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x28(%rsp), %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x2140
movsd %xmm0, 0x38(%rsp)
cmpq %r12, (%r13)
je 0x284e
movl (%rbx), %eax
testl %eax, %eax
je 0x2638
cmpl $0x22, %eax
jne 0x263a
movq %r14, %r15
leaq 0x5a4e(%rip), %rdi      # 0x8035
callq 0x2230
movq 0x89e5(%rip), %rbx      # 0xafd8
leaq 0x5a0a(%rip), %rsi      # 0x8004
movl $0x2b, %edx
movq %rbx, %rdi
callq 0x21e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
movl $0x1, %eax
jmp 0x2827
movl %ebp, (%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2649
callq 0x21b0
movq 0x18(%r15), %rsi
leaq 0x8(%rsp), %rdi
leaq 0x3(%rsp), %rdx
callq 0x20b0
movq 0x8(%rsp), %r12
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x28(%rsp), %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x2140
cmpq %r12, (%r13)
je 0x285d
movl (%rbx), %eax
testl %eax, %eax
movsd %xmm0, 0x30(%rsp)
je 0x26a3
cmpl $0x22, %eax
jne 0x26a5
movq %r14, %r15
leaq 0x5997(%rip), %rdi      # 0x8035
callq 0x2230
movl %ebp, (%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x26b4
callq 0x21b0
movq 0x20(%r15), %rsi
leaq 0x8(%rsp), %rdi
leaq 0x3(%rsp), %rdx
callq 0x20b0
movq 0x8(%rsp), %r13
movl (%rbx), %eax
movl %eax, 0x4(%rsp)
movl $0x0, (%rbx)
leaq 0x28(%rsp), %rbp
movq %r13, %rdi
movq %rbp, %rsi
movl $0xa, %edx
callq 0x2210
cmpq %r13, (%rbp)
je 0x286c
movq %rax, %r12
movabsq $-0x100000000, %r14     # imm = 0xFFFFFFFF00000000
addq $-0x80000000, %rax      # imm = 0x80000000
cmpq %r14, %rax
jb 0x2878
movl (%rbx), %eax
cmpl $0x22, %eax
je 0x2878
testl %eax, %eax
jne 0x2728
movl 0x4(%rsp), %eax
movl %eax, (%rbx)
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x273c
callq 0x21b0
movq 0x28(%r15), %rsi
leaq 0x8(%rsp), %rdi
leaq 0x3(%rsp), %rdx
callq 0x20b0
movq 0x8(%rsp), %r13
movl (%rbx), %eax
movl %eax, 0x4(%rsp)
movl $0x0, (%rbx)
leaq 0x28(%rsp), %rbp
movq %r13, %rdi
movq %rbp, %rsi
movl $0xa, %edx
callq 0x2210
cmpq %r13, (%rbp)
je 0x2884
movq %rax, %r15
addq $-0x80000000, %rax      # imm = 0x80000000
cmpq %r14, %rax
jb 0x2890
movl (%rbx), %eax
cmpl $0x22, %eax
je 0x2890
testl %eax, %eax
leaq 0x18(%rsp), %rax
jne 0x27ab
movl 0x4(%rsp), %ecx
movl %ecx, (%rbx)
movq 0x8(%rsp), %rdi
cmpq %rax, %rdi
je 0x27ba
callq 0x21b0
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x2af8
movq %rbx, %rdi
callq 0x2b1e
cvtsi2sd %r15d, %xmm0
callq 0x2904
movq 0x40(%rsp), %rax
cmpl $0x1, %eax
je 0x2802
testl %eax, %eax
jne 0x281b
leaq 0x8(%rsp), %rsi
movsd 0x38(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
movl %r12d, %edi
callq 0x4e50
jmp 0x281b
leaq 0x8(%rsp), %rsi
movsd 0x38(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
movl %r12d, %edi
callq 0x5860
leaq 0x8(%rsp), %rdi
callq 0x2c8c
xorl %eax, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x57f3(%rip), %rdi      # 0x8030
callq 0x2110
leaq 0x57e7(%rip), %rdi      # 0x8030
callq 0x2230
movq %r14, %r15
leaq 0x57dd(%rip), %rdi      # 0x8035
callq 0x2110
movq %r14, %r15
leaq 0x57ce(%rip), %rdi      # 0x8035
callq 0x2110
leaq 0x57bd(%rip), %rdi      # 0x8030
callq 0x2110
leaq 0x57b1(%rip), %rdi      # 0x8030
callq 0x2230
leaq 0x57a5(%rip), %rdi      # 0x8030
callq 0x2110
leaq 0x5799(%rip), %rdi      # 0x8030
callq 0x2230
jmp 0x28a4
jmp 0x28a4
jmp 0x28a4
jmp 0x28a4
movq %rax, %r14
jmp 0x28fa
jmp 0x28ab
movq %rax, %r14
cmpl $0x0, (%rbx)
jne 0x28b5
movl %ebp, (%rbx)
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
jne 0x28f5
jmp 0x28fa
jmp 0x28c3
movq %rax, %r14
cmpl $0x0, (%rbx)
jne 0x28d1
movl 0x4(%rsp), %eax
movl %eax, (%rbx)
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
jmp 0x28f0
movq %rax, %r14
cmpl $0x0, (%rbx)
jne 0x28e7
movl %ebp, (%rbx)
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x28fa
callq 0x21b0
movq %r14, %rdi
callq 0x22b0
nop