Clean the chicken pieces and pat them dry thoroughly with paper towels.
In a mini food processor or with a mortar and pestle, combine the garlic, cilantro roots (or cilantro stems without leaves) and the sea salt. Pound or blend until you have a fine paste.
Place the chicken in a large Ziploc bag. Add the garlic–cilantro paste, fish sauce, oyster sauce, and ground black pepper. Seal the bag and massage the marinade into the chicken so all pieces are evenly coated.
Refrigerate the sealed bag and marinate the chicken for 4–6 hours, or preferably overnight.
When ready to fry, combine the all-purpose flour, cornstarch, and rice flour in a clean Ziploc bag and shake to mix thoroughly.
Heat a pot of oil or a deep fryer until the oil reaches 350–375°F (175–190°C), or hot enough that a small pinch of the flour mixture sizzles and rises immediately.
Remove one piece of chicken at a time from the marinade and let excess marinade drip back into the bag. Place the chicken pieces in the flour mixture bag, seal, and shake to coat each piece evenly. Lightly press the coating onto the chicken, then shake off any excess flour.
Fry the chicken in batches without overcrowding the pot. Carefully lower pieces into the hot oil and fry, turning as needed, until the coating is golden brown and crisp and the internal temperature of the thickest part reaches 165°F (74°C). Depending on piece size, this will generally take about 10–15 minutes per batch.
Transfer fried chicken to a plate lined with paper towels or a wire rack to drain. Let rest a few minutes before serving.
Serve the fried chicken immediately.