protected function processDetails(Buffer $buffer)
    {

        // Decode into items
        $items = $this->decode($buffer);

        // Set the result to a new result instance
        $result = new Result();

        // Server is always dedicated
        $result->add('dedicated', 1);

        // These are the same no matter what mode the server is in
        $result->add('hostname', $items[1]);
        $result->add('num_players', (int)$items[2]);
        $result->add('max_players', (int)$items[3]);
        $result->add('gametype', $items[4]);
        $result->add('map', $items[5]);
        $result->add('roundsplayed', (int)$items[6]);
        $result->add('roundstotal', (int)$items[7]);
        $result->add('num_teams', (int)$items[8]);

        // Set the current index
        $index_current = 9;

        // Pull the team count
        $teamCount = $result->get('num_teams');

        // Loop for the number of teams found, increment along the way
        for ($id = 1; $id <= $teamCount; $id++, $index_current++) {
            // Shows the tickets
            $result->addTeam('tickets', $items[$index_current]);
            // We add an id so we know which team this is
            $result->addTeam('id', $id);
        }

        // Get and set the rest of the data points.
        $result->add('targetscore', (int)$items[$index_current]);
        $result->add('online', 1); // Forced true, it seems $words[$index_current + 1] is always empty
        $result->add('ranked', (int)$items[$index_current + 2]);
        $result->add('punkbuster', (int)$items[$index_current + 3]);
        $result->add('password', (int)$items[$index_current + 4]);
        $result->add('uptime', (int)$items[$index_current + 5]);
        $result->add('roundtime', (int)$items[$index_current + 6]);
        // Added in R9
        $result->add('ip_port', $items[$index_current + 7]);
        $result->add('punkbuster_version', $items[$index_current + 8]);
        $result->add('join_queue', (int)$items[$index_current + 9]);
        $result->add('region', $items[$index_current + 10]);
        $result->add('pingsite', $items[$index_current + 11]);
        $result->add('country', $items[$index_current + 12]);
        // Added in R29, No docs as of yet
        $result->add('quickmatch', (int)$items[$index_current + 13]); // Guessed from research

        unset($items, $index_current, $teamCount, $buffer);

        return $result->fetch();
    }