How to parse a Bluetooth LE Extendend Inquiry Response (EIR)

Hello everybody, I'm getting crazy.

I' trying to read the UUID and the sensor name from a bluetooth LE sensor and I have only the EIR, the Extended Entity Response.

I'm using an api that return me the info object

LGATTDeviceInfo info;
  boolean ret = getScanResult(1, info);

The info object is a struct

typedef struct {
  LGATTAddress bd_addr;
  int32_t rssi;
  uint8_t eir_len;
  uint8_t eir[256];
} LGATTDeviceInfo;

I can print the address and the rssi

Serial.printf("[LGATTC ino]dev address : [%x:%x:%x:%x:%x:%x] rssi [%d]\n", 
      info.bd_addr.addr[5], info.bd_addr.addr[4], info.bd_addr.addr[3], info.bd_addr.addr[2], info.bd_addr.addr[1], info.bd_addr.addr[0],
      info.rssi);

And the result is

[LGATTC ino]dev address : [20:c3:8f:86:b5:96] rssi [-72]

But I cannot find a way to parse the EIR response. If I try to print the array

for(int i = 0; i < 255; i++)
      {
        Serial.print(info.eir[i], HEX);
      }
      Serial.println();

The result is:

216320A0109524543414D3532474A5830313235315125005002A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

I need to obtain the same data i obtain using a BLE scanner on iPhone

The element I need is the manufacturer data, but I cannot understand how can I obtain the manufacturer data from the eir response...

Any idea?

I find this library for linux on GitHub

https://android.googlesource.com/platform/external/bluetooth/bluez/+/master/src/eir.c

But of course I cannot unterstand how to use the eir_parse function...

Another update: the eir above is from a device I know, an action camera from HTC.

The portion: 524543414D3532474A5830313235315

converted from HEX to text give me

RECAM52GJX01251 that is the device name.

If you printed the data withsomespaces,I'msureyoucouldseewhichindiceshavethe data that is interesting.