// File: /workspace/github_cpp_makefile_star2_O1/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 0x2bcf(%rip), %rbx      # 0x4fc8
leaq 0xc16(%rip), %rsi       # 0x3016
movl $0x6d, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xc70(%rip), %rsi       # 0x3084
movl $0x39, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xc96(%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 0x245d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2b64(%rip), %rbx      # 0x4fc8
leaq 0xc78(%rip), %rsi       # 0x30e3
movl $0x3d, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xca2(%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 0x24af
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2b12(%rip), %rbx      # 0x4fc8
leaq 0xc8e(%rip), %rsi       # 0x314b
movl $0x3c, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xcb7(%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 0x2501
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2ac0(%rip), %rbx      # 0x4fc8
leaq 0xca2(%rip), %rsi       # 0x31b1
movl $0x70, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xcff(%rip), %rsi       # 0x3222
movl $0x4c, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xd38(%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 0x2567
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2a5a(%rip), %rbx      # 0x4fc8
leaq 0xd33(%rip), %rsi       # 0x32a8
movl $0x4d, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xd6d(%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 0x25b9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2a08(%rip), %rbx      # 0x4fc8
leaq 0xd69(%rip), %rsi       # 0x3330
movl $0x50, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xda6(%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 0x260b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x29b6(%rip), %rbx      # 0x4fc8
leaq 0xda5(%rip), %rsi       # 0x33be
movl $0x4e, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xde0(%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 0x265d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2964(%rip), %rbx      # 0x4fc8
leaq 0xddd(%rip), %rsi       # 0x3448
movl $0x4c, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xe16(%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 0x26af
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x2912(%rip), %rbx      # 0x4fc8
leaq 0xe0c(%rip), %rsi       # 0x34c9
movl $0x52, %edx
movq %rbx, %rdi
callq 0x20e0
leaq 0xe4b(%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 0x2701
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x20d0
movq 0x28c0(%rip), %rdi      # 0x4fc8
leaq 0xe41(%rip), %rsi       # 0x3550
movl $0x38, %edx
callq 0x20e0
xorl %eax, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x2733
jmp 0x2733
jmp 0x2733
jmp 0x2733
jmp 0x2733
jmp 0x2733
jmp 0x2733
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x274c
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 0x273f
jmp 0x274c
nop