// File: gasparfm[P]anapache/anapacheapp.cpp
// Function: AnapacheApp::ipCount_Input(long, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&, AnapacheApp::AnalizerOptions)
void AnapacheApp::ipCount_Input(time_t moment, ParsedInput & parsed, AnalizerOptions opts)
{
  auto ipAddress = parsed.find("h");
  if (ipAddress == parsed.end())
    {
      std::cerr << "No IP found on request"<<std::endl;
      return;
    }

  auto fip = ipCount_data.queryCount.find(ipAddress->second);
  if (fip == ipCount_data.queryCount.end())
    ipCount_data.queryCount.insert({ipAddress->second, 1});
  else
    fip->second++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movl %ecx, -0x4(%rbp)
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xc8(%rbp)
leaq -0x49(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x46e0
movq -0xc0(%rbp), %rdx
leaq 0xc34a(%rip), %rsi      # 0x13378
leaq -0x48(%rbp), %rdi
callq 0x5700
jmp 0x7039
movq -0xc8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x8a90
movq %rax, -0xd8(%rbp)
jmp 0x7052
movq -0xd8(%rbp), %rax
movq %rax, -0x28(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x47a8
leaq -0x49(%rbp), %rdi
callq 0x4490
movq -0x20(%rbp), %rdi
callq 0x8af0
movq %rax, -0x68(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x8ac0
testb $0x1, %al
jne 0x708f
jmp 0x70e7
movq 0x14f4a(%rip), %rdi     # 0x1bfe0
leaq 0xc281(%rip), %rsi      # 0x1331e
callq 0x4410
movq %rax, %rdi
movq 0x14ecc(%rip), %rsi     # 0x1bf78
callq 0x4470
jmp 0x7202
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x70d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x47a8
leaq -0x49(%rbp), %rdi
callq 0x4490
jmp 0x720b
movq -0xd0(%rbp), %rax
addq $0x78, %rax
movq %rax, -0xe0(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x8b50
movq -0xe0(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
callq 0x8b20
movq -0xd0(%rbp), %rdi
movq %rax, -0x70(%rbp)
addq $0x78, %rdi
callq 0x8ba0
movq %rax, -0x78(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x8b70
testb $0x1, %al
jne 0x7143
jmp 0x71ed
movq -0xd0(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x100(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x8b50
movq %rax, %rsi
addq $0x20, %rsi
movl $0x1, -0xa4(%rbp)
leaq -0xa0(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
leaq -0xa4(%rbp), %rdx
callq 0x8c10
movq -0x100(%rbp), %rdi
movq -0xf8(%rbp), %rsi
callq 0x8bd0
movb %dl, -0xe9(%rbp)
movq %rax, -0xe8(%rbp)
jmp 0x71ab
movb -0xe9(%rbp), %al
movq -0xe8(%rbp), %rcx
movq %rcx, -0xb8(%rbp)
movb %al, -0xb0(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x8c50
jmp 0x7202
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x8c50
jmp 0x720b
leaq -0x70(%rbp), %rdi
callq 0x8c70
movq 0x20(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x20(%rax)
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x46c0
nopw %cs:(%rax,%rax)