ushort FUN_00400c20(ushort *param_1,int param_2)
{
int iVar1;
ushort *local_18;
uint local_14;
int local_10;
local_14 = 0;
local_18 = param_1;
for (local_10 = param_2; 1 < local_10; local_10 = local_10 + -2) {
local_14 = local_14 + *local_18;
local_18 = local_18 + 1;
}
if (local_10 == 1) {
local_14 = local_14 + (byte)*local_18;
}
iVar1 = ((int)local_14 >> 0x10) + (local_14 & 0xffff);
return ~((short)iVar1 + (short)((uint)iVar1 >> 0x10));
}