uint FUN_00400d88(char *param_1,uint param_2)
{
int iVar1;
uint uVar2;
undefined4 *puVar3;
uint uVar4;
int iVar5;
puVar3 = &o_namemap;
iVar5 = -1;
uVar4 = 0;
do {
if (((char *)*puVar3 != (char *)0x0) &&
(iVar1 = strcasecmp((char *)*puVar3,param_1), iVar1 == 0)) {
iVar1 = 0;
uVar2 = 0;
do {
if (((puVar3[1] ^ param_2) >> (uVar2 & 0x1f) & 0xff) != 0) break;
iVar1 = iVar1 + 1;
uVar2 = iVar1 * 8;
} while (iVar1 != 4);
if (iVar5 < iVar1) {
uVar4 = puVar3[1];
iVar5 = iVar1;
}
}
puVar3 = puVar3 + 2;
if (puVar3 == (undefined4 *)&_end) {
return uVar4;
}
} while( true );
}