// File: IlyaSamoylov45[P]MapReduce-Project/main.cpp
// Function: real_int(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void real_int(std::string num, std::string correct){
  try {
    int test = std::stoi(num);
    if(test <= 0){
      std::cout << "\n" << "Usage is: --app [wordcount, sort] --impl [procs, threads] --maps num_maps --reduces num_reduces --input infile --output outfile" << std::endl;
      std::cout << "Error was in the argument " << correct << std::endl;
      std::cout << "Not a nonnegative digit greater than 0! You wrote: " << test << "\n" << std::endl;
      exit(EXIT_FAILURE);
    }
  }
  catch(std::exception const & e){
    std::cout << "\n" << "Usage is: --app [wordcount, sort] --impl [procs, threads] --maps num_maps --reduces num_reduces --input infile --output outfile" << std::endl;
    std::cout << "Error was in the argument " << correct << std::endl;
    std::cout << "Error was: " << e.what() << std::endl;
    std::cout << "Not a nonnegative digit greater than 0! You wrote: " << num << "\n" << std::endl;
    exit(EXIT_FAILURE);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x48(%rbp)
movq %rsi, -0x40(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x9650
movl %eax, -0x34(%rbp)
jmp 0x90ce
movl -0x34(%rbp), %eax
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jg 0x9340
movq 0x36edb(%rip), %rdi     # 0x3ffc0
leaq 0x1f100(%rip), %rsi     # 0x281ec
callq 0x4340
movq %rax, -0x50(%rbp)
jmp 0x90f7
movq -0x50(%rbp), %rdi
leaq 0x1f0f9(%rip), %rsi     # 0x281fb
callq 0x4340
movq %rax, -0x58(%rbp)
jmp 0x910d
movq -0x58(%rbp), %rdi
movq 0x36e90(%rip), %rsi     # 0x3ffa8
callq 0x4370
jmp 0x911f
movq 0x36e9a(%rip), %rdi     # 0x3ffc0
leaq 0x1f14e(%rip), %rsi     # 0x2827b
callq 0x4340
movq %rax, -0x60(%rbp)
jmp 0x9138
movq -0x40(%rbp), %rsi
movq -0x60(%rbp), %rdi
callq 0x42c0
movq %rax, -0x68(%rbp)
jmp 0x914b
movq -0x68(%rbp), %rdi
movq 0x36e52(%rip), %rsi     # 0x3ffa8
callq 0x4370
jmp 0x915d
movq 0x36e5c(%rip), %rdi     # 0x3ffc0
leaq 0x1f12b(%rip), %rsi     # 0x28296
callq 0x4340
movq %rax, -0x70(%rbp)
jmp 0x9176
movq -0x70(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x45b0
movq %rax, -0x78(%rbp)
jmp 0x9188
movq -0x78(%rbp), %rdi
leaq 0x1f059(%rip), %rsi     # 0x281ec
callq 0x4340
movq %rax, -0x80(%rbp)
jmp 0x919e
movq -0x80(%rbp), %rdi
movq 0x36dff(%rip), %rsi     # 0x3ffa8
callq 0x4370
jmp 0x91b0
movl $0x1, %edi
callq 0x43c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x9360
movq -0x20(%rbp), %rdi
callq 0x4100
movq %rax, -0x30(%rbp)
movq 0x36dd6(%rip), %rdi     # 0x3ffc0
leaq 0x1effb(%rip), %rsi     # 0x281ec
callq 0x4340
movq %rax, -0x88(%rbp)
jmp 0x91ff
movq -0x88(%rbp), %rdi
leaq 0x1efee(%rip), %rsi     # 0x281fb
callq 0x4340
movq %rax, -0x90(%rbp)
jmp 0x921b
movq -0x90(%rbp), %rdi
movq 0x36d7f(%rip), %rsi     # 0x3ffa8
callq 0x4370
jmp 0x9230
movq 0x36d89(%rip), %rdi     # 0x3ffc0
leaq 0x1f03d(%rip), %rsi     # 0x2827b
callq 0x4340
movq %rax, -0x98(%rbp)
jmp 0x924c
movq -0x40(%rbp), %rsi
movq -0x98(%rbp), %rdi
callq 0x42c0
movq %rax, -0xa0(%rbp)
jmp 0x9265
movq -0xa0(%rbp), %rdi
movq 0x36d35(%rip), %rsi     # 0x3ffa8
callq 0x4370
jmp 0x927a
movq 0x36d3f(%rip), %rdi     # 0x3ffc0
leaq 0x1f042(%rip), %rsi     # 0x282ca
callq 0x4340
movq %rax, -0xa8(%rbp)
jmp 0x9296
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x4340
movq %rax, -0xb0(%rbp)
jmp 0x92bb
movq -0xb0(%rbp), %rdi
movq 0x36cdf(%rip), %rsi     # 0x3ffa8
callq 0x4370
jmp 0x92d0
movq 0x36ce9(%rip), %rdi     # 0x3ffc0
leaq 0x1efb8(%rip), %rsi     # 0x28296
callq 0x4340
movq %rax, -0xb8(%rbp)
jmp 0x92ec
movq -0x48(%rbp), %rsi
movq -0xb8(%rbp), %rdi
callq 0x42c0
movq %rax, -0xc0(%rbp)
jmp 0x9305
movq -0xc0(%rbp), %rdi
leaq 0x1eed9(%rip), %rsi     # 0x281ec
callq 0x4340
movq %rax, -0xc8(%rbp)
jmp 0x9321
movq -0xc8(%rbp), %rdi
movq 0x36c79(%rip), %rsi     # 0x3ffa8
callq 0x4370
jmp 0x9336
movl $0x1, %edi
callq 0x43c0
jmp 0x9357
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
callq 0x4540
jmp 0x9355
jmp 0x9360
addq $0xd0, %rsp
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0x45c0
movq %rax, %rdi
callq 0xac50
nopw %cs:(%rax,%rax)