U32 è unsigned long
U8 è unsigned char

Va è un vettore di tipo U8
value un valore di tipo U32

cosa fa l'istruzione

value = * (U8 *) (Va[3]+0x4) ?

mi confondono le parantesi e gli asterischi