void FUN_0040330c(int param_1)
{
time_t tVar1;
int iVar2;
uint uVar3;
int *piVar4;
uint uVar5;
uint uVar6;
tVar1 = time((time_t *)0x0);
uVar6 = tVar1 - *(int *)(param_1 + 0x28);
if (tVar1 < *(int *)(param_1 + 0x28)) {
uVar6 = 0;
}
if (*(int *)(param_1 + 8) != 0) {
dprintf(3,"update_binding_duration","unknown binding type (%d)");
return;
}
piVar4 = *(int **)(param_1 + 0x1c);
if (piVar4 == (int *)0x0) {
iVar2 = 0;
}
else {
uVar5 = 0;
do {
while( true ) {
if ((*(int *)(param_1 + 0x14) != 4) && (*(int *)(param_1 + 0x14) != 6)) {
dprintf(3,"update_binding_duration","unsupported IA type");
return;
}
uVar3 = piVar4[4];
if ((uVar5 == 0) || ((uVar3 != 0xffffffff && (uVar3 < uVar5)))) break;
piVar4 = (int *)*piVar4;
uVar3 = uVar5;
if (piVar4 == (int *)0x0) goto LAB_00403408;
}
piVar4 = (int *)*piVar4;
uVar5 = uVar3;
} while (piVar4 != (int *)0x0);
LAB_00403408:
iVar2 = 0;
if (uVar6 < uVar3) {
iVar2 = uVar3 - uVar6;
}
}
*(int *)(param_1 + 0x24) = iVar2;
return;
}