// File: /workspace/github_cpp_makefile_star2_O1/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 0x5400
cmpb $0x1, 0x48(%r14)
jne 0x5400
movq 0x40(%r14), %rdi
leaq 0x50(%r14), %r15
movl $0x40000, %edx          # imm = 0x40000
subq 0x58(%r14), %rdx
movq %r15, %rsi
callq 0x88cc
movl (%r14), %edi
movq 0x50(%r14), %rsi
movq 0x58(%r14), %rdx
xorl %ecx, %ecx
callq 0x3170
movq %rax, %r12
cmpl $-0x1, %r12d
jne 0x58ad
callq 0x3040
cmpl $0x20, (%rax)
je 0x57f3
movq %rax, %rbp
movq 0x70(%r14), %rax
movq %rax, 0xc8(%rsp)
movslq (%rbp), %rsi
leaq 0x48(%rsp), %r13
movq %r13, %rdi
callq 0xac34
leaq 0x6d88(%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 0x5636
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x563c
testb $0x1, %al
je 0x57f3
movl (%r14), %edi
leaq 0xf0(%rsp), %rsi
xorl %r15d, %r15d
movl $0x2000, %edx           # imm = 0x2000
xorl %ecx, %ecx
callq 0x3110
movb $0x1, %bpl
testl %eax, %eax
je 0x57ee
cmpl $-0x1, %eax
jne 0x549e
callq 0x3040
cmpl $0x20, (%rax)
je 0x55d7
movq %rax, %r15
movq 0x70(%r14), %r14
movslq (%rax), %rsi
leaq 0x68(%rsp), %r12
movq %r12, %rdi
callq 0xac34
leaq 0x6d03(%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 0x55e1
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x55e7
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 0x6bd4
movq %r12, 0x38(%r14)
movq %r12, %rdi
movq %r15, %rsi
callq 0x6c8c
movq %rax, %r12
testq %rax, %rax
jne 0x54fd
cmpq $0x2000, 0x10(%r14)     # imm = 0x2000
jb 0x55d7
movq 0x38(%r14), %rdi
movl $0x19d, %esi            # imm = 0x19D
callq 0x7596
movq 0x38(%r14), %r13
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x6c5c(%rip), %rsi      # 0xc16d
leaq 0x6c66(%rip), %rdx      # 0xc17e
leaq 0x8(%rsp), %rdi
callq 0x513e
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rdx
movq %r13, %rsi
callq 0x75ae
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x554b
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 0x7aa0
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 0x55ad
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 0x55d2
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
movb $0x1, %r15b
jmp 0x55da
xorl %r15d, %r15d
xorl %ebp, %ebp
jmp 0x57ee
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 0x6a24(%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 0x568b
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x5693
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 0x69cf(%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 0x56ea
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x56f0
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 0x5756
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x575d
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 0x5809
movq %rdx, 0xf0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x100(%rsp)
jmp 0x5811
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 0xac26
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x5798
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x57af
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x57cb
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x57e6
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x3290
movw $0x0, (%rbx)
xorl %r15d, %r15d
testb %r15b, %r15b
je 0x57f5
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x20f8, %rsp           # imm = 0x20F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
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 0xac26
movq 0xf0(%rsp), %rdi
cmpq %r13, %rdi
je 0x585a
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x5876
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x5892
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x58ad
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 0x58f6
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x40(%r14), %rdi
callq 0x897e
xorl %ebp, %ebp
testb %al, %al
je 0x57f5
cmpq $0x0, 0x58(%r14)
jne 0x57f5
movq 0x70(%r14), %r12
movq 0x40(%r14), %rdi
callq 0x89e2
leaq 0xd0(%rsp), %r13
movq %r13, %rdi
movq %rax, %rsi
callq 0xac34
leaq 0x6824(%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 0x5973
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x597b
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 0x89d8
movslq %eax, %rsi
leaq 0xa8(%rsp), %rdi
callq 0xac34
movq 0x88(%rsp), %rcx
movq 0x90(%rsp), %r8
movq 0xb0(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r13, %rcx
je 0x59dd
movq 0x98(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5a02
leaq 0xb8(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x59fd
movq 0xb8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5a19
movq 0xa8(%rsp), %rsi
leaq 0x88(%rsp), %rdi
callq 0x30f0
jmp 0x5a2a
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 0x5a4e
movq %rsi, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x5a54
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 0x66e7(%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 0x5aa9
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x5aaf
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 0x89d2
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 0x5b08
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x5b0f
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 0x662d(%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 0x5b5e
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x5b66
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 0x759e
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 0x5bcc
movq %rdx, 0xf0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x100(%rsp)
jmp 0x5bd2
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 0xa9cc
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x5c1e
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x5c35
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
leaq 0x98(%rsp), %r12
je 0x5c54
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x5c70
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5c8b
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5cac
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x5cc9
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5cea
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x38(%r14), %rdi
callq 0x7584
testb %al, %al
je 0x5d0c
movq 0x40(%r14), %rdi
callq 0x8988
testb %al, %al
je 0x5d0c
movw $0x1, %ax
xorl %ebp, %ebp
jmp 0x5d11
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 0x5d43
movq %rbx, %rdi
callq 0x898c
movl $0x60, %esi
movq %rbx, %rdi
callq 0x3290
movq $0x0, 0x40(%r14)
movq 0x38(%r14), %rbx
testq %rbx, %rbx
je 0x5d69
movq %rbx, %rdi
callq 0x608c
movl $0x110, %esi            # imm = 0x110
movq %rbx, %rdi
callq 0x3290
movq $0x0, 0x38(%r14)
jmp 0x57f5
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
cmpq %r13, %rdi
je 0x5db7
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5db7
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x5dd8
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5dd8
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x5df4
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5df4
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x5e15
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5e15
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x5e55
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5e55
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x5e36
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5e36
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6001
movq 0x78(%rsp), %rsi
jmp 0x5ff9
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6001
movq 0x58(%rsp), %rsi
jmp 0x5ff9
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x5f2b
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5f2b
movq %rax, %rbx
jmp 0x5f42
movq %rax, %rbx
jmp 0x5f7a
movq %rax, %rbx
jmp 0x5f95
movq %rax, %rbx
jmp 0x5fe0
jmp 0x5ed6
movq %rax, %rbx
movl $0x60, %esi
movq %r13, %rdi
callq 0x3290
jmp 0x5ed9
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6001
movq 0x38(%rsp), %rsi
jmp 0x5ff9
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6001
movq 0x18(%rsp), %rsi
jmp 0x5ff9
movq %rax, %rbx
jmp 0x6001
movq %rax, %rbx
movl $0x110, %esi            # imm = 0x110
movq %r12, %rdi
jmp 0x5ffc
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x5f42
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3290
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5f5e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5f5e
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x5f7a
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5f95
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5fbb
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x3290
jmp 0x5fbb
movq %rax, %rbx
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x5fe0
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x3290
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6001
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x3290
movq %rbx, %rdi
callq 0x3520
nop