// File: /workspace/github_cpp_makefile_star2_O3/akshithasriraman[P]Accelerometer/run.cc
// Function: main
int main(int argc, char** argv) {
    std::cout <<"\n\n**********************Conducting analytical model validation experiments (Table 6)************************\n";
    std::cout << "1. Estimating speedup for AES-NI case study:\n    Result: ";
    std::cout << ExecuteShellCommand("./accelerometer validation/aesni.txt");

    std::cout << "2. Estimating speedup for Encryption case study:\n    Result: ";
    std::cout << ExecuteShellCommand("./accelerometer validation/encryption.txt");

    std::cout << "3. Estimating speedup for Inference case study:\n    Result: ";
    std::cout << ExecuteShellCommand("./accelerometer validation/inference.txt");

    std::cout <<"\n\n**********************Conducting analytical model application experiments (Figure 17)************************\n";
    std::cout << "1. Estimating speedup for Compression On-chip:Sync application:\n    Result: ";
    std::cout << ExecuteShellCommand("./accelerometer application/compression_on-chip-sync.txt");

    std::cout << "2. Estimating speedup for Compression Off-chip:Sync application:\n    Result: ";
    std::cout << ExecuteShellCommand("./accelerometer application/compression_off-chip-sync.txt");

    std::cout << "3. Estimating speedup for Compression Off-chip:Sync-OS application:\n    Result: ";
    std::cout << ExecuteShellCommand("./accelerometer application/compression_off-chip-sync-os.txt");

    std::cout << "4. Estimating speedup for Compression Off-chip:Async application:\n    Result: ";
    std::cout << ExecuteShellCommand("./accelerometer application/compression_off-chip-async.txt");

    std::cout << "5. Estimating speedup for Memory Copy On-chip:Sync application:\n    Result: ";
    std::cout << ExecuteShellCommand("./accelerometer application/memcpy_on-chip-sync.txt");

    std::cout << "6. Estimating speedup for Memory Allocation On-chip:Sync application:\n    Result: ";
    std::cout << ExecuteShellCommand("./accelerometer application/malloc_on-chip-sync.txt");

    std::cout << "\n\n************************DONE************************\n\n";

    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq 0x2bd1(%rip), %rbx      # 0x4fc8
leaq 0xc18(%rip), %rsi       # 0x3016
movl $0x6d, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xc72(%rip), %rsi       # 0x3084
movl $0x39, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xc98(%rip), %rsi       # 0x30be
movq %rsp, %r14
movq %r14, %rdi
callq 0x22bc
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x20e0
leaq 0x10(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x245b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2b66(%rip), %rbx      # 0x4fc8
leaq 0xc7a(%rip), %rsi       # 0x30e3
movl $0x3d, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xca4(%rip), %rsi       # 0x3121
movq %rsp, %r14
movq %r14, %rdi
callq 0x22bc
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x20e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x24ad
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2b14(%rip), %rbx      # 0x4fc8
leaq 0xc90(%rip), %rsi       # 0x314b
movl $0x3c, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xcb9(%rip), %rsi       # 0x3188
movq %rsp, %r14
movq %r14, %rdi
callq 0x22bc
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x20e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x24ff
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2ac2(%rip), %rbx      # 0x4fc8
leaq 0xca4(%rip), %rsi       # 0x31b1
movl $0x70, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xd01(%rip), %rsi       # 0x3222
movl $0x4c, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xd3a(%rip), %rsi       # 0x326f
movq %rsp, %r14
movq %r14, %rdi
callq 0x22bc
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x20e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x2565
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2a5c(%rip), %rbx      # 0x4fc8
leaq 0xd35(%rip), %rsi       # 0x32a8
movl $0x4d, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xd6f(%rip), %rsi       # 0x32f6
movq %rsp, %r14
movq %r14, %rdi
callq 0x22bc
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x20e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x25b7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2a0a(%rip), %rbx      # 0x4fc8
leaq 0xd6b(%rip), %rsi       # 0x3330
movl $0x50, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xda8(%rip), %rsi       # 0x3381
movq %rsp, %r14
movq %r14, %rdi
callq 0x22bc
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x20e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x2609
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x29b8(%rip), %rbx      # 0x4fc8
leaq 0xda7(%rip), %rsi       # 0x33be
movl $0x4e, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xde2(%rip), %rsi       # 0x340d
movq %rsp, %r14
movq %r14, %rdi
callq 0x22bc
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x20e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x265b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2966(%rip), %rbx      # 0x4fc8
leaq 0xddf(%rip), %rsi       # 0x3448
movl $0x4c, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xe18(%rip), %rsi       # 0x3495
movq %rsp, %r14
movq %r14, %rdi
callq 0x22bc
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x20e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x26ad
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2914(%rip), %rbx      # 0x4fc8
leaq 0xe0e(%rip), %rsi       # 0x34c9
movl $0x52, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xe4d(%rip), %rsi       # 0x351c
movq %rsp, %r14
movq %r14, %rdi
callq 0x22bc
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x20e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x26ff
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x28c2(%rip), %rdi      # 0x4fc8
leaq 0xe43(%rip), %rsi       # 0x3550
movl $0x38, %edx
callq 0x20e0
xorl %eax, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x2731
jmp 0x2731
jmp 0x2731
jmp 0x2731
jmp 0x2731
jmp 0x2731
jmp 0x2731
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x274a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x273d
jmp 0x274a
nop