uint FUN_00417ef8(byte *param_1,undefined4 *param_2)
{
uint uVar1;
uVar1 = (uint)*param_1;
if (0x7f < uVar1) {
if (((uVar1 & 0xe0) == 0xc0) && ((param_1[1] & 0xc0) == 0x80)) {
*param_2 = 2;
uVar1 = param_1[1] & 0x3f | (uVar1 & 0x1f) << 6;
}
else if ((((uVar1 & 0xf0) == 0xe0) && ((param_1[1] & 0xc0) == 0x80)) &&
((param_1[2] & 0xc0) == 0x80)) {
*param_2 = 3;
uVar1 = param_1[2] & 0x3f | (uVar1 & 0xf) << 0xc | (param_1[1] & 0x3f) << 6;
}
else if ((((uVar1 & 0xf8) == 0xf0) && ((param_1[1] & 0xc0) == 0x80)) &&
(((param_1[2] & 0xc0) == 0x80 && ((param_1[3] & 0xc0) == 0x80)))) {
*param_2 = 4;
uVar1 = param_1[3] & 0x3f | (uVar1 & 7) << 0x12 | (param_1[1] & 0x3f) << 0xc |
(param_1[2] & 0x3f) << 6;
}
else if ((((uVar1 & 0xfc) == 0xf8) && ((param_1[1] & 0xc0) == 0x80)) &&
(((param_1[2] & 0xc0) == 0x80 &&
(((param_1[3] & 0xc0) == 0x80 && ((param_1[4] & 0xc0) == 0x80)))))) {
*param_2 = 5;
uVar1 = param_1[4] & 0x3f | (uVar1 & 3) << 0x18 | (param_1[1] & 0x3f) << 0x12 |
(param_1[2] & 0x3f) << 0xc | (param_1[3] & 0x3f) << 6;
}
else if ((((((uVar1 & 0xfe) == 0xfc) && ((param_1[1] & 0xc0) == 0x80)) &&
((param_1[2] & 0xc0) == 0x80)) &&
(((param_1[3] & 0xc0) == 0x80 && ((param_1[4] & 0xc0) == 0x80)))) &&
((param_1[5] & 0xc0) == 0x80)) {
*param_2 = 6;
uVar1 = param_1[5] & 0x3f | (uVar1 & 1) << 0x1e | (param_1[1] & 0x3f) << 0x18 |
(param_1[2] & 0x3f) << 0x12 | (param_1[3] & 0x3f) << 0xc | (param_1[4] & 0x3f) << 6;
}
else {
*param_2 = 0;
uVar1 = 0xffffffff;
}
return uVar1;
}
*param_2 = 1;
return uVar1;
}