int FUN_004730c0(int param_1)

{
  bool bVar1;
  char *pcVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  
  pcVar2 = *(char **)(param_1 + 0xc);
  iVar4 = (int)*pcVar2;
  bVar1 = iVar4 == 0x6e;
  if (bVar1) {
    *(char **)(param_1 + 0xc) = pcVar2 + 1;
    iVar4 = (int)pcVar2[1];
  }
  iVar5 = 0;
  iVar6 = 0;
  while ((iVar4 - 0x30U & 0xff) < 10) {
    iVar3 = *(int *)(param_1 + 0xc);
    iVar5 = iVar6 + iVar4 + -0x30;
    *(int *)(param_1 + 0xc) = iVar3 + 1;
    iVar6 = iVar5 * 10;
    iVar4 = (int)*(char *)(iVar3 + 1);
  }
  if (bVar1) {
    iVar5 = -iVar5;
  }
  return iVar5;
}