#C, 148 + 2 (`-lm`) bytes
This function returns how many real solutions, and return them by pointer.
Use binary search to find a solution. It handles up to x = 9e<sup>9</sup>.
<!-- language: lang-c -->
#define h(x)for(l=-1;x=(l+r)/2,fabs(l-r)>1e-6;)x*exp(x)>a?r=x:(l=x);
f(a,b,c,l,r)float*b,*c,a,l,r;{r=9;h(*b)r=-99;h(*c)return-1/exp(1)>a?0:a<0?2:1;}
[Try it online!](https://tio.run/##ZU9ha8MgEP0cf4WkrGimrWaj0KZJf8vFaCOYtBjLAqX76cu0HzbG4O58vPfuySl@VmpZVp02dtS4JzM1F09czWU118S9erotmYF2Io572kjNdxWdCz1fo7WBk6/nQ7TPtEKGAGuZYo55atwFQtGyQjFIRHX39b7qSdFSX/P9Eyrqdbj5kcttipMpThzgKE7lQVaPZWVH5W6dxscBQr/pG/TLTKGzl0QhOwY8gB0JRXeUPf/FIBmGMnaFsqSH@H701mlMPicFoyH5i8kZXgOlOG5lVx9tie1wpEOdTlnHlDWUNF6WZdZgEnCDBcU/XpO8IP/o8p9ePvXrLUwkzxN@oMfCxeYdxfG2S1MigSJGEkkRS3wp4@A8LdwN3w "C (gcc) – Try It Online")