// File: /workspace/github_cpp_makefile_star2_O3/tylerkaraszewski[P]Argyle/Connection.cpp
// Function: Connection::process(short&, short&)
bool Connection::process(short int& pollEvents, short int& pollRevents)
{
  // Do writing first, since we can tell whether this will finish or not, and we don't want to block our writes on
  // infinite reads.
  if ((pollRevents & POLLOUT) && m_isWriting)
  {
    m_currentResponse->read(m_writeBuffer, S_MAX_WRITE_SIZE - m_writeBuffer.size());
    int bytesSent = send(m_socket, m_writeBuffer.c_str(), m_writeBuffer.size(), 0);
    if (bytesSent == -1)
    {
      if (errno == EPIPE)
      {
        return false; // try again, PIPEs happen.
      }
      m_logger.logError("Connection send error(" + Utils::llToString(errno) + "): " + strerror(errno));
    }
    m_writeBuffer = m_writeBuffer.substr(bytesSent);

    bool retval = false; // Assume we've got more to do unless we're done.
    if (m_currentResponse->done() && m_writeBuffer.empty())
    {
      m_logger.logAccess(Utils::llToString(m_currentResponse->getBytesRead()) + "\t" + 
                         Utils::llToString(m_currentResponse->getHttpResponseCode()) + "\t" + 
                         m_currentResponse->getPath() + "\t" + m_currentRequest->getUserAgent());
      if (m_currentRequest->isKeepAlive() && m_currentResponse->isKeepAlive())
      {
        pollEvents = POLLIN; // Ready for the next request.
      }
      else
      {
        pollEvents = 0; // Done with this connection.
        retval = true;
      }
      m_writeBuffer.resize(0);
      m_isWriting = false;
      delete m_currentResponse;
      m_currentResponse = NULL;
      delete m_currentRequest;
      m_currentRequest = NULL;
    }
    return retval;
  }

  // We don't do this while we're writing, because (for one) we want to keep our request object around till we're
  // finished with it, and we don't want to keep a whole list of requests.
  if (pollRevents & POLLIN)
  {
    char buffer[S_MAX_REQUEST_SIZE];
    int bytesRead = recv(m_socket, buffer, S_MAX_REQUEST_SIZE, 0);

    if (bytesRead == -1)
    {
      if (errno == EPIPE)
      {
        return false; // try again, PIPEs happen.
      }
      m_logger.logError("Recv error(" + Utils::llToString(errno) + "): " + strerror(errno));
      pollEvents = 0;
      return true;
    }

    if (bytesRead == 0)
    {
      return true; // EOF, done.
    }

    m_buffer.append(buffer, bytesRead);
    m_currentRequest = new HttpRequest();
    size_t bytesParsed = m_currentRequest->parse(m_buffer);
    if (bytesParsed == 0)
    {
      if (m_buffer.size() >= S_MAX_REQUEST_SIZE)
      {
        m_currentRequest->setHttpError(413);
      }
      else
      {
        return false;
      }
    }
    // proto-if-modified-since support.
    // @TODO: Make this actually do something useful.
    string ims = m_currentRequest->getHeader("if-modified-since");
    if (!ims.empty())
    {
      //m_logger.logError("Debug: parsed '" + ims + "' to: " + Utils::llToString(m_currentRequest->getIfModifiedSince()));
    }

    m_currentResponse = new HttpResponse(*m_currentRequest, m_logger, m_config);
    m_buffer = m_buffer.substr(bytesParsed); // Trim this off our input buffer since we're done reading it.
    pollEvents = POLLOUT; // Now we want to know if we can write.
    m_isWriting = true;
  }
  
  return false;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x20f8, %rsp           # imm = 0x20F8
movq %rsi, %rbx
movq %rdi, %r14
movzwl (%rdx), %eax
testb $0x4, %al
je 0x5404
cmpb $0x1, 0x48(%r14)
jne 0x5404
movq 0x40(%r14), %rdi
leaq 0x50(%r14), %r15
movl $0x40000, %edx          # imm = 0x40000
subq 0x58(%r14), %rdx
movq %r15, %rsi
callq 0x8874
movl (%r14), %edi
movq 0x50(%r14), %rsi
movq 0x58(%r14), %rdx
xorl %ecx, %ecx
callq 0x3170
movq %rax, %r12
cmpl $-0x1, %r12d
jne 0x589a
callq 0x3040
movslq (%rax), %rsi
cmpq $0x20, %rsi
je 0x5408
movq %rax, %rbp
movq 0x70(%r14), %rax
movq %rax, 0xc8(%rsp)
leaq 0x48(%rsp), %r13
movq %r13, %rdi
callq 0xabbc
leaq 0x6d84(%rip), %rcx      # 0xc148
movl $0x16, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x32e0
leaq 0x18(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x563c
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x5642
testb $0x1, %al
jne 0x541e
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x20f8, %rsp           # imm = 0x20F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl (%r14), %edi
leaq 0xf0(%rsp), %rsi
movl $0x2000, %edx           # imm = 0x2000
xorl %ecx, %ecx
callq 0x3110
movb $0x1, %bpl
testl %eax, %eax
je 0x540a
cmpl $-0x1, %eax
jne 0x54aa
callq 0x3040
movslq (%rax), %rsi
cmpq $0x20, %rsi
je 0x5408
movq %rax, %r15
movq 0x70(%r14), %r14
leaq 0x68(%rsp), %r12
movq %r12, %rdi
callq 0xabbc
leaq 0x6cf7(%rip), %rcx      # 0xc161
movl $0xb, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x32e0
leaq 0x58(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x55e7
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x55ed
leaq 0x8(%r14), %r15
movslq %eax, %rdx
leaq 0xf0(%rsp), %rsi
movq %r15, %rdi
callq 0x3070
movl $0x110, %edi            # imm = 0x110
callq 0x3280
movq %rax, %r12
movq %rax, %rdi
callq 0x6b6c
movq %r12, 0x38(%r14)
movq %r12, %rdi
movq %r15, %rsi
callq 0x6c24
movq %rax, %r12
testq %rax, %rax
jne 0x5509
cmpq $0x2000, 0x10(%r14)     # imm = 0x2000
jb 0x5408
movq 0x38(%r14), %rdi
movl $0x19d, %esi            # imm = 0x19D
callq 0x7532
movq 0x38(%r14), %r13
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x6c50(%rip), %rsi      # 0xc16d
leaq 0x6c5a(%rip), %rdx      # 0xc17e
leaq 0x8(%rsp), %rdi
callq 0x513a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rdx
movq %r13, %rsi
callq 0x754a
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5557
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
movl $0x60, %edi
callq 0x3280
movq %rax, %r13
movq 0x38(%r14), %rsi
movq 0x70(%r14), %rdx
movq 0x78(%r14), %rcx
movq %rax, %rdi
callq 0x7a44
movq %r13, 0x40(%r14)
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
movq $-0x1, %rcx
callq 0x32b0
leaq 0x8(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x3360
movq (%r12), %rdi
cmpq %rbp, %rdi
je 0x55b9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
movw $0x4, (%rbx)
movb $0x1, 0x48(%r14)
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5408
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5408
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6a1e(%rip), %rsi      # 0xc02e
callq 0x3560
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5691
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x5699
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x69c9(%rip), %rsi      # 0xc02e
callq 0x3560
leaq 0x38(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x56f0
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x56f6
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %r12
movq %rdx, 0x8(%r12)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl (%r15), %edi
callq 0x3120
movq %r12, %rdi
movq %rax, %rsi
callq 0x3560
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x575c
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x5763
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x28(%rsp), %r13
movq %rdx, 0x8(%r13)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl (%rbp), %edi
callq 0x3120
movq %r13, %rdi
movq %rax, %rsi
callq 0x3560
leaq 0x100(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x57f6
movq %rdx, 0xf0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x100(%rsp)
jmp 0x57fe
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x28(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r14, %rdi
callq 0xabae
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x579e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x57b5
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x57d1
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x57ec
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x3290
movw $0x0, (%rbx)
jmp 0x540a
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0xf0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0xc8(%rsp), %rdi
callq 0xabae
movq 0xf0(%rsp), %rdi
cmpq %r13, %rdi
je 0x5847
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x5863
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x587f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x589a
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3290
movslq %r12d, %rdx
leaq 0xf0(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
movq $-0x1, %rcx
callq 0x32b0
movq %r15, %rdi
movq %r12, %rsi
callq 0x3360
movq (%r12), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x58e3
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x40(%r14), %rdi
callq 0x8926
xorl %ebp, %ebp
testb %al, %al
je 0x540a
cmpq $0x0, 0x58(%r14)
jne 0x540a
movq 0x70(%r14), %r12
movq 0x40(%r14), %rdi
callq 0x898a
leaq 0xd0(%rsp), %r13
movq %r13, %rdi
movq %rax, %rsi
callq 0xabbc
leaq 0x6837(%rip), %rsi      # 0xc15f
movq %r13, %rdi
callq 0x3560
leaq 0x98(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5960
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x5968
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x90(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x40(%r14), %rdi
callq 0x8980
movslq %eax, %rsi
leaq 0xa8(%rsp), %rdi
callq 0xabbc
movq 0x88(%rsp), %rcx
movq 0x90(%rsp), %r8
movq 0xb0(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r13, %rcx
je 0x59ca
movq 0x98(%rsp), %rdi
movq 0xa8(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x59f6
leaq 0xb8(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x59f1
movq 0xb8(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x5a05
leaq 0x88(%rsp), %rdi
callq 0x30f0
jmp 0x5a16
leaq 0xa8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x32e0
leaq 0x78(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x5a3a
movq %rsi, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x5a40
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x66fb(%rip), %rsi      # 0xc15f
leaq 0x68(%rsp), %rdi
callq 0x3560
leaq 0x58(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5a95
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x5a9b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x40(%r14), %rdi
callq 0x897a
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rdi
callq 0x30f0
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5af4
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x5afb
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6641(%rip), %rsi      # 0xc15f
callq 0x3560
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5b4a
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x5b52
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x38(%r14), %rdi
callq 0x753a
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x28(%rsp), %rdi
callq 0x30f0
leaq 0x100(%rsp), %rsi
movq %rsi, 0xf0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5bb8
movq %rdx, 0xf0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x100(%rsp)
jmp 0x5bbe
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0xf0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r12, %rdi
callq 0xa954
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x5c0a
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x5c21
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
leaq 0x98(%rsp), %r12
je 0x5c40
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x5c5c
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5c77
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5c98
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x5cb5
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5cd6
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x38(%r14), %rdi
callq 0x7520
testb %al, %al
je 0x5cf8
movq 0x40(%r14), %rdi
callq 0x8930
testb %al, %al
je 0x5cf8
movw $0x1, %ax
xorl %ebp, %ebp
jmp 0x5cfd
movb $0x1, %bpl
xorl %eax, %eax
movw %ax, (%rbx)
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x30e0
movb $0x0, 0x48(%r14)
movq 0x40(%r14), %rbx
testq %rbx, %rbx
je 0x5d22
movq %rbx, %rdi
callq 0x8934
movl $0x60, %esi
movq %rbx, %rdi
callq 0x3290
movq $0x0, 0x40(%r14)
movq 0x38(%r14), %rbx
testq %rbx, %rbx
je 0x5d48
movq %rbx, %rdi
callq 0x6078
movl $0x110, %esi            # imm = 0x110
movq %rbx, %rdi
callq 0x3290
movq $0x0, 0x38(%r14)
jmp 0x540a
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
cmpq %r13, %rdi
je 0x5da3
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5da3
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x5dc4
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5dc4
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x5de0
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5de0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x5e01
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5e01
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x5e41
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5e41
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x5e22
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5e22
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5fed
movq 0x78(%rsp), %rsi
jmp 0x5fe5
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5fed
movq 0x58(%rsp), %rsi
jmp 0x5fe5
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x5f17
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5f17
movq %rax, %rbx
jmp 0x5f2e
movq %rax, %rbx
jmp 0x5f66
movq %rax, %rbx
jmp 0x5f81
movq %rax, %rbx
jmp 0x5fcc
jmp 0x5ec2
movq %rax, %rbx
movl $0x60, %esi
movq %r13, %rdi
callq 0x3290
jmp 0x5ec5
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5fed
movq 0x38(%rsp), %rsi
jmp 0x5fe5
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5fed
movq 0x18(%rsp), %rsi
jmp 0x5fe5
movq %rax, %rbx
jmp 0x5fed
movq %rax, %rbx
movl $0x110, %esi            # imm = 0x110
movq %r12, %rdi
jmp 0x5fe8
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x5f2e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5f4a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5f4a
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x5f66
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5f81
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5fa7
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5fa7
movq %rax, %rbx
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x5fcc
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5fed
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x3290
movq %rbx, %rdi
callq 0x3520
nop