undefined1 * FUN_00400d30(undefined1 *param_1,uint param_2,uint param_3)
{
long lVar1;
uint uVar2;
uint uVar3;
undefined1 uVar4;
uint uVar5;
undefined1 uVar6;
undefined1 uVar8;
undefined1 uVar9;
uint uVar7;
param_2 = param_2 & 0xff;
param_3 = param_3 & 0xff;
uVar7 = param_3;
if (param_3 < param_2) {
uVar7 = param_2;
param_2 = param_3;
}
uVar6 = (undefined1)uVar7;
uVar5 = uVar7 - param_2 & 0xff;
if (uVar5 == 0) {
uVar5 = 1;
}
lVar1 = random();
if (uVar5 == 0) {
trap(0x1c00);
}
uVar2 = param_2 + lVar1 % (int)uVar5;
uVar9 = (undefined1)uVar2;
lVar1 = random();
if (uVar5 == 0) {
trap(0x1c00);
}
uVar3 = param_2 + lVar1 % (int)uVar5;
uVar8 = (undefined1)uVar3;
lVar1 = random();
if (uVar5 == 0) {
trap(0x1c00);
}
param_2 = param_2 + lVar1 % (int)uVar5;
uVar4 = (undefined1)param_2;
if (uVar7 != 0) {
if (uVar7 < (uVar2 & 0xff)) {
uVar9 = uVar6;
}
if (uVar7 < (uVar3 & 0xff)) {
uVar8 = uVar6;
}
if (uVar7 < (param_2 & 0xff)) {
uVar4 = uVar6;
}
}
param_1[2] = uVar9;
param_1[1] = uVar8;
*param_1 = uVar4;
return param_1;
}