// File: /workspace/github_cpp_makefile_star2_O2/Thomas1995[P]Rentz/src/client.cpp
// Function: parseArgs[abi:cxx11](int, char**)
std::unordered_map<std::string, std::string>
parseArgs(int argc, char ** argv) {

  std::vector<std::string> args(argv + 1, argv + argc);

  std::reverse(args.begin(), args.end());

  std::unordered_map<std::string, std::string> options;

  while(!args.empty()) {

    if(addOptions(args, options, "address", {"--address", "-a"}))
      continue;

    if(addOptions(args, options, "name", {"--name", "-n"}))
      continue;

    if(addOptions(args, options, "help", {"--help", "-h"}))
      goto args_error;

    goto args_error;
  }

  return options;

args_error:
  printf("Usage: %s [OPTIONS]\n", argv[0]);
  printf("Optional arguments:\n");
  printf("%-20s ADDRESS\n", "-a, --address");
  printf("%-20s NAME\n", "-n, --name");
  printf("%-20s display this help message\n", "-h, --help");
  exit(1);

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rdi, %r13
leaq 0x8(%rdx), %rax
movslq %esi, %rcx
movq %rdx, 0x40(%rsp)
leaq (%rdx,%rcx,8), %rdx
leaq 0x10(%rsp), %rbx
leaq 0x48(%rsp), %rcx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x6190
movq (%rbx), %rdi
movq 0x8(%rbx), %rsi
callq 0xb4ed
leaq 0x30(%r13), %rax
movq %rax, (%r13)
movq $0x1, 0x8(%r13)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r13)
movl $0x3f800000, 0x20(%r13) # imm = 0x3F800000
movups %xmm0, 0x28(%r13)
leaq 0x88(%rsp), %rbp
leaq 0x48(%rsp), %r15
leaq 0x28(%rsp), %rbx
pushq $0x20
popq %r12
movq %r13, 0x8(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x18(%rsp), %rax
je 0x5fe0
movq %rbp, %rdi
leaq 0x66c9(%rip), %rsi      # 0xc463
leaq 0x7(%rsp), %rdx
callq 0x4006
movq %r15, %rdi
leaq 0x66b3(%rip), %rsi      # 0xc461
leaq 0x6(%rsp), %rdx
callq 0x4006
leaq 0x68(%rsp), %rdi
leaq 0x666c(%rip), %rsi      # 0xc430
leaq 0x5(%rsp), %rdx
callq 0x4006
movq %rbx, %rdi
movq %r15, %rsi
pushq $0x2
popq %rdx
leaq 0x4(%rsp), %rcx
callq 0x4042
leaq 0x10(%rsp), %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq %rbx, %rcx
callq 0x5c5c
movl %eax, %r14d
movq %rbx, %rdi
callq 0x407c
movq %r12, %r13
leaq (%rsp,%r13), %rdi
addq $0x48, %rdi
callq 0x3120
addq $-0x20, %r13
cmpq $-0x20, %r13
jne 0x5e02
movq %rbp, %rdi
callq 0x3120
testb %r14b, %r14b
movq 0x8(%rsp), %r13
jne 0x5d80
movq %rbp, %rdi
leaq 0x6644(%rip), %rsi      # 0xc47d
leaq 0x7(%rsp), %rdx
callq 0x4006
movq %r15, %rdi
leaq 0x662e(%rip), %rsi      # 0xc47b
leaq 0x6(%rsp), %rdx
callq 0x4006
leaq 0x68(%rsp), %rdi
leaq 0x65d0(%rip), %rsi      # 0xc433
leaq 0x5(%rsp), %rdx
callq 0x4006
movq %rbx, %rdi
movq %r15, %rsi
pushq $0x2
popq %rdx
leaq 0x4(%rsp), %rcx
callq 0x4042
leaq 0x10(%rsp), %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq %rbx, %rcx
callq 0x5c5c
movl %eax, %r14d
movq %rbx, %rdi
callq 0x407c
movq %r12, %r13
leaq (%rsp,%r13), %rdi
addq $0x48, %rdi
callq 0x3120
addq $-0x20, %r13
cmpq $-0x20, %r13
jne 0x5ea1
movq %rbp, %rdi
callq 0x3120
testb %r14b, %r14b
movq 0x8(%rsp), %r13
jne 0x5d80
leaq 0x65d4(%rip), %rsi      # 0xc4a9
leaq 0x88(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4006
leaq 0x65b9(%rip), %rsi      # 0xc4a7
leaq 0x48(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x4006
leaq 0x68(%rsp), %rdi
leaq 0x652d(%rip), %rsi      # 0xc436
leaq 0x5(%rsp), %rdx
callq 0x4006
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rsi
pushq $0x2
popq %rdx
leaq 0x4(%rsp), %rcx
callq 0x4042
leaq 0x10(%rsp), %rdi
leaq 0x88(%rsp), %rdx
leaq 0x28(%rsp), %rcx
movq 0x8(%rsp), %rsi
callq 0x5c5c
leaq 0x28(%rsp), %rdi
callq 0x407c
pushq $0x20
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x48, %rdi
callq 0x3120
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x5f53
leaq 0x88(%rsp), %rdi
callq 0x3120
movq 0x40(%rsp), %rax
movq (%rax), %rsi
leaq 0x64b3(%rip), %rdi      # 0xc439
xorl %eax, %eax
callq 0x3050
leaq 0x67db(%rip), %rdi      # 0xc76f
callq 0x3380
leaq 0x64ae(%rip), %rdi      # 0xc44e
leaq 0x64b6(%rip), %rsi      # 0xc45d
xorl %eax, %eax
callq 0x3050
leaq 0x64b6(%rip), %rdi      # 0xc46b
leaq 0x64bb(%rip), %rsi      # 0xc477
xorl %eax, %eax
callq 0x3050
leaq 0x64b8(%rip), %rdi      # 0xc482
leaq 0x64d2(%rip), %rsi      # 0xc4a3
xorl %eax, %eax
callq 0x3050
pushq $0x1
popq %rdi
callq 0x32b0
leaq 0x10(%rsp), %rdi
callq 0x407c
movq %r13, %rax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x407c
jmp 0x6011
movq %rax, %r14
pushq $0x20
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x48, %rdi
callq 0x3120
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x6014
jmp 0x6080
movq %rax, %r14
jmp 0x60f3
jmp 0x6040
jmp 0x605e
movq %rax, %r14
jmp 0x608d
jmp 0x60a3
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0x3120
jmp 0x6080
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x407c
jmp 0x6066
movq %rax, %r14
jmp 0x6080
movq %rax, %r14
pushq $0x20
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x48, %rdi
callq 0x3120
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x6069
leaq 0x88(%rsp), %rdi
callq 0x3120
movq 0x8(%rsp), %r13
jmp 0x60eb
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x407c
jmp 0x60bf
movq %rax, %r14
jmp 0x60eb
movq %rax, %r14
jmp 0x60de
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0x3120
jmp 0x60de
movq %rax, %r14
pushq $0x20
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x48, %rdi
callq 0x3120
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x60c2
movq 0x8(%rsp), %r13
leaq 0x88(%rsp), %rdi
callq 0x3120
movq %r13, %rdi
callq 0x6c50
leaq 0x10(%rsp), %rdi
callq 0x407c
movq %r14, %rdi
callq 0x33b0