Does the text represent a signed or an unsigned number? Which type is the variable Dec?
That's why we ask to post complete code (or a representative example that exhibits the behaviour) so we don't have to guess. If unsigned, fix the above pointed out mistake and make Dec an unsigned variable and use strtoul().
char hexText = "90c2ea61";
uint32_t dec32u = strtoul(hexText, NULL, 16);
What is the maximum value that is represented by the text? Will it fit in an uint32_t or do you need a bigger variable.
Which architecture are you using? 8-bit AVR or 32-bit processor? There is limited support for 64-bit numbers in the AVR implementation in the Arduino environment. It seems that e.g. strtoll() (note the double 'L') is not available; in which case you need to roll your own. And there is no print function to print 64-bit numbers as a any text representation.