// File: /workspace/github_c_makefile_star2_O2/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 0x162a
movq 0x8(%rbx), %r14
leaq 0x401c(%rip), %rsi      # 0x5382
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x14a5
leaq 0x3cb9(%rip), %rsi      # 0x5036
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x14cd
leaq 0x3cc0(%rip), %rsi      # 0x5054
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x14ed
leaq 0x3cc4(%rip), %rsi      # 0x506f
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x150d
leaq 0x3cca(%rip), %rsi      # 0x508c
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x152d
leaq 0x3cce(%rip), %rsi      # 0x50a7
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x154d
leaq 0x3cce(%rip), %rsi      # 0x50be
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x156d
leaq 0x3cd2(%rip), %rsi      # 0x50d9
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x158d
leaq 0x3cd8(%rip), %rsi      # 0x50f6
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x15aa
leaq 0x3cdc(%rip), %rsi      # 0x5111
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x15cf
leaq 0x3ced(%rip), %rsi      # 0x5139
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x15f4
leaq 0x3d05(%rip), %rsi      # 0x5168
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
je 0x1611
leaq 0x3d0e(%rip), %rsi      # 0x5188
movq %r14, %rdi
callq 0x11a0
testl %eax, %eax
jne 0x1623
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
leaq 0x3cf8(%rip), %rdi      # 0x5191
xorl %eax, %eax
callq 0x1040
jmp 0x1623
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
leaq 0x3b50(%rip), %rdi      # 0x5004
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
callq 0x1891
jmp 0x1623
movq 0x10(%rbx), %rsi
leaq 0x3b67(%rip), %rdi      # 0x503f
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x1963
jmp 0x1623
movq 0x10(%rbx), %rsi
leaq 0x3b63(%rip), %rdi      # 0x505b
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x1d36
jmp 0x1623
movq 0x10(%rbx), %rsi
leaq 0x3b5f(%rip), %rdi      # 0x5077
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x24e1
jmp 0x1623
movq 0x10(%rbx), %rsi
leaq 0x3b5b(%rip), %rdi      # 0x5093
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x2a18
jmp 0x1623
movq 0x10(%rbx), %rsi
leaq 0x3b54(%rip), %rdi      # 0x50ac
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x3438
jmp 0x1623
movq 0x10(%rbx), %rsi
leaq 0x3b4d(%rip), %rdi      # 0x50c5
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x38d1
jmp 0x1623
movq 0x10(%rbx), %rsi
leaq 0x3b49(%rip), %rdi      # 0x50e1
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x3ad5
jmp 0x1623
movq 0x10(%rbx), %rdx
movq 0x18(%rbx), %rsi
leaq 0x3b41(%rip), %rdi      # 0x50fa
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
callq 0x3bc6
jmp 0x1623
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
leaq 0x3b3a(%rip), %rdi      # 0x5118
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
callq 0x3db8
jmp 0x1623
movq 0x10(%rbx), %rsi
leaq 0x3b49(%rip), %rdi      # 0x5148
xorl %eax, %eax
callq 0x1040
movq 0x10(%rbx), %rdi
callq 0x3f25
jmp 0x1623
movq 0x10(%rbx), %rsi
leaq 0x3b54(%rip), %rdi      # 0x5170
xorl %eax, %eax
callq 0x1040
xorl %eax, %eax
popq %rbx
popq %r14
popq %rbp
retq