// File: /workspace/github_c_makefile_star2_O3/evanwire[P]GitClone/client.c
// Function: main
int main(int argc, char** argv){

  //Check command line arguments before commiting any runtime
  checkArgs(argc, argv);

  if(strcmp(argv[1], "configure") == 0){
    printf("\nconfigure with IP address %s and port number %s\n", argv[2], argv[3]);
    configure(argv[2], argv[3]);
    return 0;
  }else if(strcmp(argv[1], "checkout") == 0){
    printf("\ncheckout project %s", argv[2]);
    checkout(argv[2]);
  }else if(strcmp(argv[1], "update") == 0){
    printf("\nupdate project %s\n", argv[2]);
    update(argv[2]);
  }else if(strcmp(argv[1], "upgrade") == 0){
    printf("\nupgrade project %s\n", argv[2]);
    upgrade(argv[2]);
  }else if(strcmp(argv[1], "commit") == 0){
    printf("\ncommit project %s\n", argv[2]);
    commit(argv[2]);
  }else if(strcmp(argv[1], "push") == 0){
    printf("\npush project %s\n", argv[2]);
    push(argv[2]);
  }else if(strcmp(argv[1], "create") == 0){
    printf("\ncreate project %s\n", argv[2]);
    create(argv[2]);
  }else if(strcmp(argv[1], "destroy") == 0){
    printf("\ndestroy project %s\n", argv[2]);
    destroy(argv[2]);
  }else if(strcmp(argv[1], "add") == 0){
    printf("\nadd %s to project %s\n", argv[3], argv[2]);
    add(argv[2], argv[3]);
  }else if(strcmp(argv[1], "remove") == 0){
    printf("\nremove file %s from project %s\n", argv[2], argv[3]);
    remove_file(argv[2], argv[3]);
  }else if(strcmp(argv[1], "currentversion") == 0){
    printf("\ncurrent version of project %s\n", argv[2]);
    currentVersion(argv[2]);
  }else if(strcmp(argv[1], "history") == 0){
    printf("\nhistory of project %s\n", argv[2]);
  }else if(strcmp(argv[1], "rollback") == 0){
    printf("\nrollback project %s to version %s\n", argv[2], argv[3]);
  }

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %rbx
callq 0x163a
movq 0x8(%rbx), %r14
leaq 0x400c(%rip), %rsi      # 0x5382
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x14b5
leaq 0x3ca9(%rip), %rsi      # 0x5036
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x14dd
leaq 0x3cb0(%rip), %rsi      # 0x5054
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x14fd
leaq 0x3cb4(%rip), %rsi      # 0x506f
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x151d
leaq 0x3cba(%rip), %rsi      # 0x508c
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x153d
leaq 0x3cbe(%rip), %rsi      # 0x50a7
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x155d
leaq 0x3cbe(%rip), %rsi      # 0x50be
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x157d
leaq 0x3cc2(%rip), %rsi      # 0x50d9
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x159d
leaq 0x3cc8(%rip), %rsi      # 0x50f6
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x15ba
leaq 0x3ccc(%rip), %rsi      # 0x5111
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x15df
leaq 0x3cdd(%rip), %rsi      # 0x5139
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x1604
leaq 0x3cf5(%rip), %rsi      # 0x5168
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
je 0x1621
leaq 0x3cfe(%rip), %rsi      # 0x5188
movq %r14, %rdi
callq 0x11b0
testl %eax, %eax
jne 0x1633
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
leaq 0x3ce8(%rip), %rdi      # 0x5191
xorl %eax, %eax
callq 0x1040
jmp 0x1633
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
leaq 0x3b40(%rip), %rdi      # 0x5004
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
callq 0x18a3
jmp 0x1633
movq 0x10(%rbx), %rsi
leaq 0x3b57(%rip), %rdi      # 0x503f
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x1977
jmp 0x1633
movq 0x10(%rbx), %rsi
leaq 0x3b53(%rip), %rdi      # 0x505b
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x1dca
jmp 0x1633
movq 0x10(%rbx), %rsi
leaq 0x3b4f(%rip), %rdi      # 0x5077
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x25e9
jmp 0x1633
movq 0x10(%rbx), %rsi
leaq 0x3b4b(%rip), %rdi      # 0x5093
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x2b8b
jmp 0x1633
movq 0x10(%rbx), %rsi
leaq 0x3b44(%rip), %rdi      # 0x50ac
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x35d7
jmp 0x1633
movq 0x10(%rbx), %rsi
leaq 0x3b3d(%rip), %rdi      # 0x50c5
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x3a67
jmp 0x1633
movq 0x10(%rbx), %rsi
leaq 0x3b39(%rip), %rdi      # 0x50e1
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x3c6b
jmp 0x1633
movq 0x10(%rbx), %rdx
movq 0x18(%rbx), %rsi
leaq 0x3b31(%rip), %rdi      # 0x50fa
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
callq 0x3d5a
jmp 0x1633
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
leaq 0x3b2a(%rip), %rdi      # 0x5118
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
callq 0x3f4f
jmp 0x1633
movq 0x10(%rbx), %rsi
leaq 0x3b39(%rip), %rdi      # 0x5148
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x40d7
jmp 0x1633
movq 0x10(%rbx), %rsi
leaq 0x3b44(%rip), %rdi      # 0x5170
xorl %eax, %eax
callq 0x1040
xorl %eax, %eax
popq %rbx
popq %r14
popq %rbp
retq