def METHOD_NAME(filename):
    tumbler_pos = 0
    current_buffer = {}
    with open(filename) as mb:
        lines = mb.readlines()
    pool = {}
    pool_key_lookup = {}
    for line in lines:
        buf = re.search('\(mpBuf_t\s\*\)\s(0x[0-9a-fA-F]+)', line)
        if buf:
            current_buffer = int(buf.groups()[0], 16)
            pool[TUMBLER[tumbler_pos]] = current_buffer
            tumbler_pos += 1
        buf = re.search('\(mpBuf_t\s\*\)\s(0x[0-9a-fA-F]+)', line)
        if buf:
            current_buffer = int(buf.groups()[0], 16)
            pool[current_buffer] = {}
            if current_buffer == pool['r']:
                pool[current_buffer]['is_r'] = True
            if current_buffer == pool['w']:
                pool[current_buffer]['is_w'] = True
            if current_buffer == pool['p']:
                pool[current_buffer]['is_p'] = True
            if current_buffer == pool['c']:
                pool[current_buffer]['is_c'] = True
        else:
            match = re.search('([a-zA-Z_]+[a-zA-Z0-9_]+)\s=\s((?:0x[0-9a-fA-F]+|[0-9.]+(?:e[-+0-9]+)?|[A-Z_]+[a-zA-Z0-9_]+)|true|false)', line)
            if match:
                key, val = match.groups()
                if key == 'pv':
                    pv = int(val, 16)
                    pool[current_buffer]['pv'] = pv
                # if key == 'locked':
                #     pool[current_buffer]['locked'] = True if val == 'true' else False
                elif key == 'nx':
                    nv = int(val, 16)
                    pool[current_buffer]['nx'] = nv
                elif key == 'buffer_state':
                    pool[current_buffer]['buffer_state'] = val
                elif key == 'move_time_ms':
                    pool[current_buffer]['move_time_ms'] = val
                elif key == 'linenum':
                    pool[current_buffer]['linenum'] = val
                elif key == 'buffer_number':
                    pool[current_buffer]['buffer_number'] = val
                    pool_key_lookup[int(val)] = current_buffer
                    print "found buf %d" % (int(val))
                # elif key == 'entry_velocity':
                #     pool[current_buffer]['entry_velocity'] = val
                elif key == 'cruise_velocity':
                    pool[current_buffer]['cruise_velocity'] = val
                elif key == 'exit_velocity':
                    pool[current_buffer]['exit_velocity'] = val
                elif key == 'head_length':
                    pool[current_buffer]['head_length'] = val
                elif key == 'body_length':
                    pool[current_buffer]['body_length'] = val
                elif key == 'tail_length':
                    pool[current_buffer]['tail_length'] = val
                elif key == 'head_time':
                    pool[current_buffer]['head_time'] = val
                elif key == 'body_time':
                    pool[current_buffer]['body_time'] = val
                elif key == 'tail_time':
                    pool[current_buffer]['tail_time'] = val
                elif key == 'move_time':
                    pool[current_buffer]['move_time'] = val
                elif key == 'hint':
                    pool[current_buffer]['hint'] = val
                # elif key == 'zoid_exit':
                #     pool[current_buffer]['zoid_exit'] = val
    return pool, pool_key_lookup