// File: maxgodfrey2004[P]gss/main.cc
// Function: cli::CheckArgv(char**, char**)
void CheckArgv(char **arg_start, char **arg_end) {
  if (HasOption(arg_start, arg_end, "-h") ||
      HasOption(arg_start, arg_end, "--help") ||
      arg_end - arg_start == 1) {
    PrintHelpUtil();
    exit(EXIT_SUCCESS);
  }
  if (arg_end - arg_start != 3) {
    std::cerr << "ERROR: incorrect number of arguments.\n"
              << "Execute `gss --help` for more info."
              << std::endl;
    exit(EXIT_FAILURE);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x80(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x22c0
movq -0x78(%rbp), %rdx
movb $0x0, -0x6a(%rbp)
movb $0x0, -0x6b(%rbp)
leaq 0x39fe(%rip), %rsi      # 0x6014
leaq -0x30(%rbp), %rdi
callq 0x2a40
jmp 0x2621
movq -0x80(%rbp), %rsi
movq -0x88(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x2a00
movb %al, -0x89(%rbp)
jmp 0x263d
movb -0x89(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x8a(%rbp)
jne 0x26ed
jmp 0x2656
movq -0x8(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
leaq -0x69(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x22c0
movq -0x98(%rbp), %rdx
movb $0x1, -0x6a(%rbp)
leaq 0x3989(%rip), %rsi      # 0x6017
leaq -0x68(%rbp), %rdi
callq 0x2a40
jmp 0x2699
movq -0xa0(%rbp), %rsi
movq -0xa8(%rbp), %rdi
movb $0x1, -0x6b(%rbp)
leaq -0x68(%rbp), %rdx
callq 0x2a00
movb %al, -0xa9(%rbp)
jmp 0x26bc
movb -0xa9(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x8a(%rbp)
jne 0x26ed
jmp 0x26d1
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
sarq $0x3, %rax
cmpq $0x1, %rax
sete %al
movb %al, -0x8a(%rbp)
movb -0x8a(%rbp), %al
movb %al, -0xaa(%rbp)
testb $0x1, -0x6b(%rbp)
jne 0x2701
jmp 0x270a
leaq -0x68(%rbp), %rdi
callq 0x2308
testb $0x1, -0x6a(%rbp)
jne 0x2712
jmp 0x271b
leaq -0x69(%rbp), %rdi
callq 0x21d0
leaq -0x30(%rbp), %rdi
callq 0x2308
leaq -0x31(%rbp), %rdi
callq 0x21d0
movb -0xaa(%rbp), %al
testb $0x1, %al
jne 0x2739
jmp 0x27b5
callq 0x2af0
xorl %edi, %edi
callq 0x2210
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x278e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0x6b(%rbp)
jne 0x2783
jmp 0x278c
leaq -0x68(%rbp), %rdi
callq 0x2308
jmp 0x278e
testb $0x1, -0x6a(%rbp)
jne 0x2796
jmp 0x279f
leaq -0x69(%rbp), %rdi
callq 0x21d0
jmp 0x27a1
leaq -0x30(%rbp), %rdi
callq 0x2308
leaq -0x31(%rbp), %rdi
callq 0x21d0
jmp 0x280e
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
sarq $0x3, %rax
cmpq $0x3, %rax
je 0x2805
movq 0x681f(%rip), %rdi      # 0x8ff0
leaq 0x3846(%rip), %rsi      # 0x601e
callq 0x2180
movq %rax, %rdi
leaq 0x385e(%rip), %rsi      # 0x6045
callq 0x2180
movq %rax, %rdi
movq 0x67c2(%rip), %rsi      # 0x8fb8
callq 0x21b0
movl $0x1, %edi
callq 0x2210
addq $0xb0, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x22b0
nopw (%rax,%rax)