// File: /workspace/github_cpp_makefile_star2_O3/sumanishs[P]boost-edif-parser2/main.cpp
// Function: main
int main(int argc, char* argv[])
{
    if(argc < 2){ 
        std::cout << "Usage:" << argv[0] << " <file name>" << std::endl;
        return 1;
    }   

    std::string file (argv[1]);
    EdifReader reader;
    clock_t start, end;
    
    start = clock();
    if(reader.Read(file)){
        std::cout << "Done...." << std::endl;
        end = clock();
        double time_taken = ((double)(end - start))/CLOCKS_PER_SEC;
        std::cout << "Time taken to parse the design: " << time_taken << "seconds" << std::endl;
        return 0;
    }   
    else {
        std::cout << "Failed...." << std::endl;
        end = clock();
        double time_taken = ((double)(end - start))/CLOCKS_PER_SEC;
        std::cout << "Execution time: " << time_taken << "seconds" << std::endl;
        return 1;
    }  
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
cmpl $0x1, %edi
jg 0x2ca01
movq 0x1a616(%rip), %rbx     # 0x46fd8
leaq 0xb5df(%rip), %rsi      # 0x37fa8
movl $0x6, %edx
movq %rbx, %rdi
callq 0x5300
movq (%r14), %r14
testq %r14, %r14
je 0x2cbdd
movq %r14, %rdi
callq 0x5120
movq 0x1a5e7(%rip), %rdi     # 0x46fd8
movq %r14, %rsi
movq %rax, %rdx
callq 0x5300
jmp 0x2cbf4
movq 0x8(%r14), %rsi
leaq 0x8(%rsp), %r14
leaq 0x7(%rsp), %rdx
movq %r14, %rdi
callq 0xde4c
callq 0x51c0
movq %rax, %rbx
leaq 0x7(%rsp), %rdi
movq %r14, %rsi
callq 0x5b2c
testb %al, %al
je 0x2cafb
movq 0x1a59d(%rip), %r14     # 0x46fd8
leaq 0xb57a(%rip), %rsi      # 0x37fbc
movl $0x8, %edx
movq %r14, %rdi
callq 0x5300
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x1a56b(%rip), %rdi     # 0x46fd8
callq 0x5030
movq %rax, %rdi
callq 0x51e0
callq 0x51c0
movq %rax, %r14
movq 0x1a54f(%rip), %rdi     # 0x46fd8
leaq 0xb535(%rip), %rsi      # 0x37fc5
movl $0x20, %edx
callq 0x5300
subq %rbx, %r14
cvtsi2sd %r14, %xmm0
divsd 0xb4f6(%rip), %xmm0     # 0x37fa0
movq 0x1a527(%rip), %rdi     # 0x46fd8
callq 0x53f0
movq %rax, %rbx
leaq 0xb526(%rip), %rsi      # 0x37fe6
movl $0x7, %edx
movq %rax, %rdi
callq 0x5300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5030
xorl %ebx, %ebx
movq %rax, %rdi
callq 0x51e0
jmp 0x2cbc0
movq 0x1a4d6(%rip), %r14     # 0x46fd8
leaq 0xb4e5(%rip), %rsi      # 0x37fee
movl $0xa, %edx
movq %r14, %rdi
callq 0x5300
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x1a4a4(%rip), %rdi     # 0x46fd8
callq 0x5030
movq %rax, %rdi
callq 0x51e0
callq 0x51c0
movq %rax, %r14
movq 0x1a488(%rip), %rdi     # 0x46fd8
leaq 0xb4a2(%rip), %rsi      # 0x37ff9
movl $0x10, %edx
callq 0x5300
subq %rbx, %r14
cvtsi2sd %r14, %xmm0
divsd 0xb42f(%rip), %xmm0     # 0x37fa0
movq 0x1a460(%rip), %rdi     # 0x46fd8
callq 0x53f0
movq %rax, %rbx
leaq 0xb45f(%rip), %rsi      # 0x37fe6
movl $0x7, %edx
movq %rax, %rdi
callq 0x5300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x51e0
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2cc34
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x52b0
jmp 0x2cc34
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x5430
leaq 0xb3b4(%rip), %rsi      # 0x37faf
movl $0xc, %edx
movq %rbx, %rdi
callq 0x5300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51e0
movl $0x1, %ebx
movl %ebx, %eax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
jmp 0x2cc42
jmp 0x2cc42
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2cc60
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460