
char * ieee_md_atof(int type,char *litP,int *sizeP,bfd_boolean big_wordian)

{
  char *pcVar1;
  char *pcVar2;
  LITTLENUM_TYPE *pLVar3;
  LITTLENUM_TYPE *pLVar4;
  int iVar5;
  int local_54;
  long local_50;
  LITTLENUM_TYPE words [6];
  
  pcVar1 = strchr(FLT_CHARS,type);
  if (pcVar1 == (char *)0x0) {
    if (type == 0x66) goto switchD_0013f6c9_caseD_46;
    if (type != 100) goto switchD_0013f6c9_caseD_45;
switchD_0013f6c9_caseD_44:
    local_54 = 3;
    iVar5 = 8;
    local_50 = 4;
  }
  else {
    switch(type) {
    case 0x44:
    case 0x52:
    case 100:
    case 0x72:
      goto switchD_0013f6c9_caseD_44;
    default:
switchD_0013f6c9_caseD_45:
      *sizeP = 0;
      pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);
      return pcVar1;
    case 0x46:
    case 0x53:
    case 0x66:
    case 0x73:
switchD_0013f6c9_caseD_46:
      local_54 = 1;
      iVar5 = 4;
      local_50 = 2;
      break;
    case 0x50:
    case 0x58:
    case 0x70:
    case 0x78:
      local_54 = 4;
      iVar5 = 10;
      local_50 = 5;
      break;
    case 0x54:
    case 0x74:
      local_54 = 4;
      iVar5 = 10;
      type = 0x78;
      local_50 = 5;
    }
  }
  pcVar1 = atof_ieee(input_line_pointer,type,words);
  if (pcVar1 != (char *)0x0) {
    input_line_pointer = pcVar1;
  }
  *sizeP = iVar5;
  if (big_wordian == 0) {
    pLVar4 = words + local_50;
    pcVar1 = litP;
    do {
      pLVar4 = pLVar4 + -1;
      pcVar2 = pcVar1 + 2;
      md_number_to_chars(pcVar1,(ulong)*pLVar4,2);
      pcVar1 = pcVar2;
    } while (litP + (long)local_54 * 2 + 2 != pcVar2);
  }
  else {
    pLVar4 = words;
    do {
      pLVar3 = pLVar4 + 1;
      md_number_to_chars(litP,(ulong)*pLVar4,2);
      litP = litP + 2;
      pLVar4 = pLVar3;
    } while (pLVar3 != words + (long)local_54 + 1);
  }
  return (char *)0x0;
}



undefined8 FUN_0013f680(int param_1,long param_2,undefined4 *param_3,int param_4)

{
  char *pcVar1;
  long lVar2;
  undefined8 uVar3;
  long lVar4;
  undefined2 *puVar5;
  undefined2 *puVar6;
  undefined4 uVar7;
  int local_54;
  long local_50;
  undefined2 local_44 [10];
  
  pcVar1 = strchr("rRsSfFdDxXpP",param_1);
  if (pcVar1 == (char *)0x0) {
    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;
    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;
switchD_0013f6c9_caseD_44:
    local_54 = 3;
    uVar7 = 8;
    local_50 = 4;
  }
  else {
    switch(param_1) {
    case 0x44:
    case 0x52:
    case 100:
    case 0x72:
      goto switchD_0013f6c9_caseD_44;
    default:
switchD_0013f6c9_caseD_45:
      *param_3 = 0;
      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);
      return uVar3;
    case 0x46:
    case 0x53:
    case 0x66:
    case 0x73:
switchD_0013f6c9_caseD_46:
      local_54 = 1;
      uVar7 = 4;
      local_50 = 2;
      break;
    case 0x50:
    case 0x58:
    case 0x70:
    case 0x78:
      local_54 = 4;
      uVar7 = 10;
      local_50 = 5;
      break;
    case 0x54:
    case 0x74:
      local_54 = 4;
      uVar7 = 10;
      param_1 = 0x78;
      local_50 = 5;
    }
  }
  lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);
  if (lVar2 != 0) {
    DAT_00168ae0 = lVar2;
  }
  *param_3 = uVar7;
  if (param_4 == 0) {
    puVar6 = local_44 + local_50;
    lVar2 = param_2;
    do {
      puVar6 = puVar6 + -1;
      lVar4 = lVar2 + 2;
      FUN_0013a230(lVar2,*puVar6,2);
      lVar2 = lVar4;
    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);
  }
  else {
    puVar6 = local_44;
    do {
      puVar5 = puVar6 + 1;
      FUN_0013a230(param_2,*puVar6,2);
      param_2 = param_2 + 2;
      puVar6 = puVar5;
    } while (puVar5 != local_44 + (long)local_54 + 1);
  }
  return 0;
}


PUSH R15
PUSH R14
MOV R14D,ECX
PUSH R13
MOV R13,RDX
PUSH R12
MOV R12D,EDI
PUSH RBP
PUSH RBX
MOV RBX,RSI
MOV ESI,EDI
LEA RDI,[0x149ae0]
SUB RSP,0x28
CALL 0x00109200
TEST RAX,RAX
JZ 0x0013f6d0
LEA EAX,[R12 + -0x44]
CMP EAX,0x34
JA 0x0013f788
LEA RDX,[0x14a754]
MOVSXD RAX,dword ptr [RDX + RAX*0x4]
ADD RAX,RDX
JMP RAX
CMP R12D,0x66
JNZ 0x0013f760
MOV dword ptr [RSP + 0x4],0x1
MOV R15D,0x4
MOV qword ptr [RSP + 0x8],0x2
LEA RBP,[RSP + 0x14]
MOV RDI,qword ptr [0x00168ae0]
MOV ESI,R12D
MOV RDX,RBP
CALL 0x0013f4d0
TEST RAX,RAX
JZ 0x0013f714
MOV qword ptr [0x00168ae0],RAX
MOV dword ptr [R13],R15D
TEST R14D,R14D
JZ 0x0013f7b8
MOVSXD R12,dword ptr [RSP + 0x4]
LEA R12,[RBP + R12*0x2 + 0x2]
NOP dword ptr [RAX + RAX*0x1]
ADD RBP,0x2
MOVZX ESI,word ptr [RBP + -0x2]
MOV RDI,RBX
MOV EDX,0x2
ADD RBX,0x2
CALL 0x0013a230
CMP RBP,R12
JNZ 0x0013f730
ADD RSP,0x28
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP R12D,0x64
JNZ 0x0013f788
MOV dword ptr [RSP + 0x4],0x3
MOV R15D,0x8
MOV qword ptr [RSP + 0x8],0x4
JMP 0x0013f6f1
MOV dword ptr [R13],0x0
MOV EDX,0x5
LEA RSI,[0x14a610]
XOR EDI,EDI
CALL 0x001091c0
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RAX,qword ptr [RSP + 0x8]
MOVSXD R12,dword ptr [RSP + 0x4]
LEA RBP,[RBP + RAX*0x2]
LEA R12,[RBX + R12*0x2 + 0x2]
NOP dword ptr [RAX]
SUB RBP,0x2
MOVZX ESI,word ptr [RBP]
MOV RDI,RBX
MOV EDX,0x2
ADD RBX,0x2
CALL 0x0013a230
CMP R12,RBX
JNZ 0x0013f7d0
JMP 0x0013f74e
MOV dword ptr [RSP + 0x4],0x4
MOV R15D,0xa
MOV R12D,0x78
MOV qword ptr [RSP + 0x8],0x5
JMP 0x0013f6f1
MOV dword ptr [RSP + 0x4],0x4
MOV R15D,0xa
MOV qword ptr [RSP + 0x8],0x5
JMP 0x0013f6f1
(translation_unit "undefined8 FUN_0013f680(int param_1,long param_2,undefined4 *param_3,int param_4)\n\n{\n  char *pcVar1;\n  long lVar2;\n  undefined8 uVar3;\n  long lVar4;\n  undefined2 *puVar5;\n  undefined2 *puVar6;\n  undefined4 uVar7;\n  int local_54;\n  long local_50;\n  undefined2 local_44 [10];\n  \n  pcVar1 = strchr("rRsSfFdDxXpP",param_1);\n  if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }\n  lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);\n  if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }\n  *param_3 = uVar7;\n  if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_0013f680(int param_1,long param_2,undefined4 *param_3,int param_4)\n\n{\n  char *pcVar1;\n  long lVar2;\n  undefined8 uVar3;\n  long lVar4;\n  undefined2 *puVar5;\n  undefined2 *puVar6;\n  undefined4 uVar7;\n  int local_54;\n  long local_50;\n  undefined2 local_44 [10];\n  \n  pcVar1 = strchr("rRsSfFdDxXpP",param_1);\n  if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }\n  lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);\n  if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }\n  *param_3 = uVar7;\n  if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_0013f680(int param_1,long param_2,undefined4 *param_3,int param_4)" identifier (parameter_list "(int param_1,long param_2,undefined4 *param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  long lVar2;\n  undefined8 uVar3;\n  long lVar4;\n  undefined2 *puVar5;\n  undefined2 *puVar6;\n  undefined4 uVar7;\n  int local_54;\n  long local_50;\n  undefined2 local_44 [10];\n  \n  pcVar1 = strchr("rRsSfFdDxXpP",param_1);\n  if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }\n  lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);\n  if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }\n  *param_3 = uVar7;\n  if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined2 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined2 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined2 local_44 [10];" type_identifier (array_declarator "local_44 [10]" identifier [ number_literal ]) ;) (expression_statement "pcVar1 = strchr("rRsSfFdDxXpP",param_1);" (assignment_expression "pcVar1 = strchr("rRsSfFdDxXpP",param_1)" identifier = (call_expression "strchr("rRsSfFdDxXpP",param_1)" identifier (argument_list "("rRsSfFdDxXpP",param_1)" ( (string_literal ""rRsSfFdDxXpP"" " string_content ") , identifier )))) ;) (if_statement "if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }" if (parenthesized_expression "(pcVar1 == (char *)0x0)" ( (binary_expression "pcVar1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }" { (if_statement "if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;" if (parenthesized_expression "(param_1 == 0x66)" ( (binary_expression "param_1 == 0x66" identifier == number_literal) )) (goto_statement "goto switchD_0013f6c9_caseD_46;" goto statement_identifier ;)) (if_statement "if (param_1 != 100) goto switchD_0013f6c9_caseD_45;" if (parenthesized_expression "(param_1 != 100)" ( (binary_expression "param_1 != 100" identifier != number_literal) )) (goto_statement "goto switchD_0013f6c9_caseD_45;" goto statement_identifier ;)) (labeled_statement "switchD_0013f6c9_caseD_44:\n    local_54 = 3;" statement_identifier : (expression_statement "local_54 = 3;" (assignment_expression "local_54 = 3" identifier = number_literal) ;)) (expression_statement "uVar7 = 8;" (assignment_expression "uVar7 = 8" identifier = number_literal) ;) (expression_statement "local_50 = 4;" (assignment_expression "local_50 = 4" identifier = number_literal) ;) }) (else_clause "else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }" else (compound_statement "{\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }" { (switch_statement "switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }" switch (parenthesized_expression "(param_1)" ( identifier )) (compound_statement "{\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }" { (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 100:" case number_literal :) (case_statement "case 0x72:\n      goto switchD_0013f6c9_caseD_44;" case number_literal : (goto_statement "goto switchD_0013f6c9_caseD_44;" goto statement_identifier ;)) (case_statement "default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;" default : (labeled_statement "switchD_0013f6c9_caseD_45:\n      *param_3 = 0;" statement_identifier : (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;)) (expression_statement "uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);" (assignment_expression "uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5)" identifier = (call_expression "dcgettext(0,"Unrecognized or unsupported floating point constant",5)" identifier (argument_list "(0,"Unrecognized or unsupported floating point constant",5)" ( number_literal , (string_literal ""Unrecognized or unsupported floating point constant"" " string_content ") , number_literal )))) ;) (return_statement "return uVar3;" return identifier ;)) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x53:" case number_literal :) (case_statement "case 0x66:" case number_literal :) (case_statement "case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;" case number_literal : (labeled_statement "switchD_0013f6c9_caseD_46:\n      local_54 = 1;" statement_identifier : (expression_statement "local_54 = 1;" (assignment_expression "local_54 = 1" identifier = number_literal) ;)) (expression_statement "uVar7 = 4;" (assignment_expression "uVar7 = 4" identifier = number_literal) ;) (expression_statement "local_50 = 2;" (assignment_expression "local_50 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x58:" case number_literal :) (case_statement "case 0x70:" case number_literal :) (case_statement "case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;" case number_literal : (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" identifier = number_literal) ;) (expression_statement "uVar7 = 10;" (assignment_expression "uVar7 = 10" identifier = number_literal) ;) (expression_statement "local_50 = 5;" (assignment_expression "local_50 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x54:" case number_literal :) (case_statement "case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;" case number_literal : (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" identifier = number_literal) ;) (expression_statement "uVar7 = 10;" (assignment_expression "uVar7 = 10" identifier = number_literal) ;) (expression_statement "param_1 = 0x78;" (assignment_expression "param_1 = 0x78" identifier = number_literal) ;) (expression_statement "local_50 = 5;" (assignment_expression "local_50 = 5" identifier = number_literal) ;)) })) }))) (expression_statement "lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);" (assignment_expression "lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44)" identifier = (call_expression "FUN_0013f4d0(DAT_00168ae0,param_1,local_44)" identifier (argument_list "(DAT_00168ae0,param_1,local_44)" ( identifier , identifier , identifier )))) ;) (if_statement "if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    DAT_00168ae0 = lVar2;\n  }" { (expression_statement "DAT_00168ae0 = lVar2;" (assignment_expression "DAT_00168ae0 = lVar2" identifier = identifier) ;) })) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }" { (expression_statement "puVar6 = local_44 + local_50;" (assignment_expression "puVar6 = local_44 + local_50" identifier = (binary_expression "local_44 + local_50" identifier + identifier)) ;) (expression_statement "lVar2 = param_2;" (assignment_expression "lVar2 = param_2" identifier = identifier) ;) (do_statement "do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);" do (compound_statement "{\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    }" { (expression_statement "puVar6 = puVar6 + -1;" (assignment_expression "puVar6 = puVar6 + -1" identifier = (binary_expression "puVar6 + -1" identifier + number_literal)) ;) (expression_statement "lVar4 = lVar2 + 2;" (assignment_expression "lVar4 = lVar2 + 2" identifier = (binary_expression "lVar2 + 2" identifier + number_literal)) ;) (expression_statement "FUN_0013a230(lVar2,*puVar6,2);" (call_expression "FUN_0013a230(lVar2,*puVar6,2)" identifier (argument_list "(lVar2,*puVar6,2)" ( identifier , (pointer_expression "*puVar6" * identifier) , number_literal ))) ;) (expression_statement "lVar2 = lVar4;" (assignment_expression "lVar2 = lVar4" identifier = identifier) ;) }) while (parenthesized_expression "(param_2 + 2 + (long)local_54 * 2 != lVar4)" ( (binary_expression "param_2 + 2 + (long)local_54 * 2 != lVar4" (binary_expression "param_2 + 2 + (long)local_54 * 2" (binary_expression "param_2 + 2" identifier + number_literal) + (binary_expression "(long)local_54 * 2" (cast_expression "(long)local_54" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) != identifier) )) ;) }) (else_clause "else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }" else (compound_statement "{\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }" { (expression_statement "puVar6 = local_44;" (assignment_expression "puVar6 = local_44" identifier = identifier) ;) (do_statement "do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);" do (compound_statement "{\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    }" { (expression_statement "puVar5 = puVar6 + 1;" (assignment_expression "puVar5 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0013a230(param_2,*puVar6,2);" (call_expression "FUN_0013a230(param_2,*puVar6,2)" identifier (argument_list "(param_2,*puVar6,2)" ( identifier , (pointer_expression "*puVar6" * identifier) , number_literal ))) ;) (expression_statement "param_2 = param_2 + 2;" (assignment_expression "param_2 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar5;" (assignment_expression "puVar6 = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != local_44 + (long)local_54 + 1)" ( (binary_expression "puVar5 != local_44 + (long)local_54 + 1" identifier != (binary_expression "local_44 + (long)local_54 + 1" (binary_expression "local_44 + (long)local_54" identifier + (cast_expression "(long)local_54" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) + number_literal)) )) ;) }))) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "char * ieee_md_atof(int type,char *litP,int *sizeP,bfd_boolean big_wordian)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  LITTLENUM_TYPE *pLVar3;\n  LITTLENUM_TYPE *pLVar4;\n  int iVar5;\n  int local_54;\n  long local_50;\n  LITTLENUM_TYPE words [6];\n  \n  pcVar1 = strchr(FLT_CHARS,type);\n  if (pcVar1 == (char *)0x0) {\n    if (type == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (type != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    iVar5 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(type) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *sizeP = 0;\n      pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return pcVar1;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      iVar5 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      iVar5 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      iVar5 = 10;\n      type = 0x78;\n      local_50 = 5;\n    }\n  }\n  pcVar1 = atof_ieee(input_line_pointer,type,words);\n  if (pcVar1 != (char *)0x0) {\n    input_line_pointer = pcVar1;\n  }\n  *sizeP = iVar5;\n  if (big_wordian == 0) {\n    pLVar4 = words + local_50;\n    pcVar1 = litP;\n    do {\n      pLVar4 = pLVar4 + -1;\n      pcVar2 = pcVar1 + 2;\n      md_number_to_chars(pcVar1,(ulong)*pLVar4,2);\n      pcVar1 = pcVar2;\n    } while (litP + (long)local_54 * 2 + 2 != pcVar2);\n  }\n  else {\n    pLVar4 = words;\n    do {\n      pLVar3 = pLVar4 + 1;\n      md_number_to_chars(litP,(ulong)*pLVar4,2);\n      litP = litP + 2;\n      pLVar4 = pLVar3;\n    } while (pLVar3 != words + (long)local_54 + 1);\n  }\n  return (char *)0x0;\n}\n\n" (function_definition "char * ieee_md_atof(int type,char *litP,int *sizeP,bfd_boolean big_wordian)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  LITTLENUM_TYPE *pLVar3;\n  LITTLENUM_TYPE *pLVar4;\n  int iVar5;\n  int local_54;\n  long local_50;\n  LITTLENUM_TYPE words [6];\n  \n  pcVar1 = strchr(FLT_CHARS,type);\n  if (pcVar1 == (char *)0x0) {\n    if (type == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (type != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    iVar5 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(type) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *sizeP = 0;\n      pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return pcVar1;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      iVar5 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      iVar5 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      iVar5 = 10;\n      type = 0x78;\n      local_50 = 5;\n    }\n  }\n  pcVar1 = atof_ieee(input_line_pointer,type,words);\n  if (pcVar1 != (char *)0x0) {\n    input_line_pointer = pcVar1;\n  }\n  *sizeP = iVar5;\n  if (big_wordian == 0) {\n    pLVar4 = words + local_50;\n    pcVar1 = litP;\n    do {\n      pLVar4 = pLVar4 + -1;\n      pcVar2 = pcVar1 + 2;\n      md_number_to_chars(pcVar1,(ulong)*pLVar4,2);\n      pcVar1 = pcVar2;\n    } while (litP + (long)local_54 * 2 + 2 != pcVar2);\n  }\n  else {\n    pLVar4 = words;\n    do {\n      pLVar3 = pLVar4 + 1;\n      md_number_to_chars(litP,(ulong)*pLVar4,2);\n      litP = litP + 2;\n      pLVar4 = pLVar3;\n    } while (pLVar3 != words + (long)local_54 + 1);\n  }\n  return (char *)0x0;\n}" primitive_type (pointer_declarator "* ieee_md_atof(int type,char *litP,int *sizeP,bfd_boolean big_wordian)" * (function_declarator "ieee_md_atof(int type,char *litP,int *sizeP,bfd_boolean big_wordian)" identifier (parameter_list "(int type,char *litP,int *sizeP,bfd_boolean big_wordian)" ( (parameter_declaration "int type" primitive_type identifier) , (parameter_declaration "char *litP" primitive_type (pointer_declarator "*litP" * identifier)) , (parameter_declaration "int *sizeP" primitive_type (pointer_declarator "*sizeP" * identifier)) , (parameter_declaration "bfd_boolean big_wordian" type_identifier identifier) )))) (compound_statement "{\n  char *pcVar1;\n  char *pcVar2;\n  LITTLENUM_TYPE *pLVar3;\n  LITTLENUM_TYPE *pLVar4;\n  int iVar5;\n  int local_54;\n  long local_50;\n  LITTLENUM_TYPE words [6];\n  \n  pcVar1 = strchr(FLT_CHARS,type);\n  if (pcVar1 == (char *)0x0) {\n    if (type == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (type != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    iVar5 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(type) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *sizeP = 0;\n      pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return pcVar1;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      iVar5 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      iVar5 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      iVar5 = 10;\n      type = 0x78;\n      local_50 = 5;\n    }\n  }\n  pcVar1 = atof_ieee(input_line_pointer,type,words);\n  if (pcVar1 != (char *)0x0) {\n    input_line_pointer = pcVar1;\n  }\n  *sizeP = iVar5;\n  if (big_wordian == 0) {\n    pLVar4 = words + local_50;\n    pcVar1 = litP;\n    do {\n      pLVar4 = pLVar4 + -1;\n      pcVar2 = pcVar1 + 2;\n      md_number_to_chars(pcVar1,(ulong)*pLVar4,2);\n      pcVar1 = pcVar2;\n    } while (litP + (long)local_54 * 2 + 2 != pcVar2);\n  }\n  else {\n    pLVar4 = words;\n    do {\n      pLVar3 = pLVar4 + 1;\n      md_number_to_chars(litP,(ulong)*pLVar4,2);\n      litP = litP + 2;\n      pLVar4 = pLVar3;\n    } while (pLVar3 != words + (long)local_54 + 1);\n  }\n  return (char *)0x0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "LITTLENUM_TYPE *pLVar3;" type_identifier (pointer_declarator "*pLVar3" * identifier) ;) (declaration "LITTLENUM_TYPE *pLVar4;" type_identifier (pointer_declarator "*pLVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (declaration "LITTLENUM_TYPE words [6];" type_identifier (array_declarator "words [6]" identifier [ number_literal ]) ;) (expression_statement "pcVar1 = strchr(FLT_CHARS,type);" (assignment_expression "pcVar1 = strchr(FLT_CHARS,type)" identifier = (call_expression "strchr(FLT_CHARS,type)" identifier (argument_list "(FLT_CHARS,type)" ( identifier , identifier )))) ;) (if_statement "if (pcVar1 == (char *)0x0) {\n    if (type == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (type != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    iVar5 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(type) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *sizeP = 0;\n      pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return pcVar1;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      iVar5 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      iVar5 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      iVar5 = 10;\n      type = 0x78;\n      local_50 = 5;\n    }\n  }" if (parenthesized_expression "(pcVar1 == (char *)0x0)" ( (binary_expression "pcVar1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (type == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (type != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    iVar5 = 8;\n    local_50 = 4;\n  }" { (if_statement "if (type == 0x66) goto switchD_0013f6c9_caseD_46;" if (parenthesized_expression "(type == 0x66)" ( (binary_expression "type == 0x66" identifier == number_literal) )) (goto_statement "goto switchD_0013f6c9_caseD_46;" goto statement_identifier ;)) (if_statement "if (type != 100) goto switchD_0013f6c9_caseD_45;" if (parenthesized_expression "(type != 100)" ( (binary_expression "type != 100" identifier != number_literal) )) (goto_statement "goto switchD_0013f6c9_caseD_45;" goto statement_identifier ;)) (labeled_statement "switchD_0013f6c9_caseD_44:\n    local_54 = 3;" statement_identifier : (expression_statement "local_54 = 3;" (assignment_expression "local_54 = 3" identifier = number_literal) ;)) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "local_50 = 4;" (assignment_expression "local_50 = 4" identifier = number_literal) ;) }) (else_clause "else {\n    switch(type) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *sizeP = 0;\n      pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return pcVar1;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      iVar5 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      iVar5 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      iVar5 = 10;\n      type = 0x78;\n      local_50 = 5;\n    }\n  }" else (compound_statement "{\n    switch(type) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *sizeP = 0;\n      pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return pcVar1;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      iVar5 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      iVar5 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      iVar5 = 10;\n      type = 0x78;\n      local_50 = 5;\n    }\n  }" { (switch_statement "switch(type) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *sizeP = 0;\n      pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return pcVar1;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      iVar5 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      iVar5 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      iVar5 = 10;\n      type = 0x78;\n      local_50 = 5;\n    }" switch (parenthesized_expression "(type)" ( identifier )) (compound_statement "{\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *sizeP = 0;\n      pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return pcVar1;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      iVar5 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      iVar5 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      iVar5 = 10;\n      type = 0x78;\n      local_50 = 5;\n    }" { (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 100:" case number_literal :) (case_statement "case 0x72:\n      goto switchD_0013f6c9_caseD_44;" case number_literal : (goto_statement "goto switchD_0013f6c9_caseD_44;" goto statement_identifier ;)) (case_statement "default:\nswitchD_0013f6c9_caseD_45:\n      *sizeP = 0;\n      pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return pcVar1;" default : (labeled_statement "switchD_0013f6c9_caseD_45:\n      *sizeP = 0;" statement_identifier : (expression_statement "*sizeP = 0;" (assignment_expression "*sizeP = 0" (pointer_expression "*sizeP" * identifier) = number_literal) ;)) (expression_statement "pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5)" identifier = (cast_expression "(char *)dcgettext(0,"Unrecognized or unsupported floating point constant",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unrecognized or unsupported floating point constant",5)" identifier (argument_list "(0,"Unrecognized or unsupported floating point constant",5)" ( number_literal , (string_literal ""Unrecognized or unsupported floating point constant"" " string_content ") , number_literal ))))) ;) (return_statement "return pcVar1;" return identifier ;)) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x53:" case number_literal :) (case_statement "case 0x66:" case number_literal :) (case_statement "case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      iVar5 = 4;\n      local_50 = 2;\n      break;" case number_literal : (labeled_statement "switchD_0013f6c9_caseD_46:\n      local_54 = 1;" statement_identifier : (expression_statement "local_54 = 1;" (assignment_expression "local_54 = 1" identifier = number_literal) ;)) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "local_50 = 2;" (assignment_expression "local_50 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x58:" case number_literal :) (case_statement "case 0x70:" case number_literal :) (case_statement "case 0x78:\n      local_54 = 4;\n      iVar5 = 10;\n      local_50 = 5;\n      break;" case number_literal : (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" identifier = number_literal) ;) (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" identifier = number_literal) ;) (expression_statement "local_50 = 5;" (assignment_expression "local_50 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x54:" case number_literal :) (case_statement "case 0x74:\n      local_54 = 4;\n      iVar5 = 10;\n      type = 0x78;\n      local_50 = 5;" case number_literal : (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" identifier = number_literal) ;) (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" identifier = number_literal) ;) (expression_statement "type = 0x78;" (assignment_expression "type = 0x78" identifier = number_literal) ;) (expression_statement "local_50 = 5;" (assignment_expression "local_50 = 5" identifier = number_literal) ;)) })) }))) (expression_statement "pcVar1 = atof_ieee(input_line_pointer,type,words);" (assignment_expression "pcVar1 = atof_ieee(input_line_pointer,type,words)" identifier = (call_expression "atof_ieee(input_line_pointer,type,words)" identifier (argument_list "(input_line_pointer,type,words)" ( identifier , identifier , identifier )))) ;) (if_statement "if (pcVar1 != (char *)0x0) {\n    input_line_pointer = pcVar1;\n  }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    input_line_pointer = pcVar1;\n  }" { (expression_statement "input_line_pointer = pcVar1;" (assignment_expression "input_line_pointer = pcVar1" identifier = identifier) ;) })) (expression_statement "*sizeP = iVar5;" (assignment_expression "*sizeP = iVar5" (pointer_expression "*sizeP" * identifier) = identifier) ;) (if_statement "if (big_wordian == 0) {\n    pLVar4 = words + local_50;\n    pcVar1 = litP;\n    do {\n      pLVar4 = pLVar4 + -1;\n      pcVar2 = pcVar1 + 2;\n      md_number_to_chars(pcVar1,(ulong)*pLVar4,2);\n      pcVar1 = pcVar2;\n    } while (litP + (long)local_54 * 2 + 2 != pcVar2);\n  }\n  else {\n    pLVar4 = words;\n    do {\n      pLVar3 = pLVar4 + 1;\n      md_number_to_chars(litP,(ulong)*pLVar4,2);\n      litP = litP + 2;\n      pLVar4 = pLVar3;\n    } while (pLVar3 != words + (long)local_54 + 1);\n  }" if (parenthesized_expression "(big_wordian == 0)" ( (binary_expression "big_wordian == 0" identifier == number_literal) )) (compound_statement "{\n    pLVar4 = words + local_50;\n    pcVar1 = litP;\n    do {\n      pLVar4 = pLVar4 + -1;\n      pcVar2 = pcVar1 + 2;\n      md_number_to_chars(pcVar1,(ulong)*pLVar4,2);\n      pcVar1 = pcVar2;\n    } while (litP + (long)local_54 * 2 + 2 != pcVar2);\n  }" { (expression_statement "pLVar4 = words + local_50;" (assignment_expression "pLVar4 = words + local_50" identifier = (binary_expression "words + local_50" identifier + identifier)) ;) (expression_statement "pcVar1 = litP;" (assignment_expression "pcVar1 = litP" identifier = identifier) ;) (do_statement "do {\n      pLVar4 = pLVar4 + -1;\n      pcVar2 = pcVar1 + 2;\n      md_number_to_chars(pcVar1,(ulong)*pLVar4,2);\n      pcVar1 = pcVar2;\n    } while (litP + (long)local_54 * 2 + 2 != pcVar2);" do (compound_statement "{\n      pLVar4 = pLVar4 + -1;\n      pcVar2 = pcVar1 + 2;\n      md_number_to_chars(pcVar1,(ulong)*pLVar4,2);\n      pcVar1 = pcVar2;\n    }" { (expression_statement "pLVar4 = pLVar4 + -1;" (assignment_expression "pLVar4 = pLVar4 + -1" identifier = (binary_expression "pLVar4 + -1" identifier + number_literal)) ;) (expression_statement "pcVar2 = pcVar1 + 2;" (assignment_expression "pcVar2 = pcVar1 + 2" identifier = (binary_expression "pcVar1 + 2" identifier + number_literal)) ;) (expression_statement "md_number_to_chars(pcVar1,(ulong)*pLVar4,2);" (call_expression "md_number_to_chars(pcVar1,(ulong)*pLVar4,2)" identifier (argument_list "(pcVar1,(ulong)*pLVar4,2)" ( identifier , (binary_expression "(ulong)*pLVar4" (parenthesized_expression "(ulong)" ( identifier )) * identifier) , number_literal ))) ;) (expression_statement "pcVar1 = pcVar2;" (assignment_expression "pcVar1 = pcVar2" identifier = identifier) ;) }) while (parenthesized_expression "(litP + (long)local_54 * 2 + 2 != pcVar2)" ( (binary_expression "litP + (long)local_54 * 2 + 2 != pcVar2" (binary_expression "litP + (long)local_54 * 2 + 2" (binary_expression "litP + (long)local_54 * 2" identifier + (binary_expression "(long)local_54 * 2" (cast_expression "(long)local_54" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) != identifier) )) ;) }) (else_clause "else {\n    pLVar4 = words;\n    do {\n      pLVar3 = pLVar4 + 1;\n      md_number_to_chars(litP,(ulong)*pLVar4,2);\n      litP = litP + 2;\n      pLVar4 = pLVar3;\n    } while (pLVar3 != words + (long)local_54 + 1);\n  }" else (compound_statement "{\n    pLVar4 = words;\n    do {\n      pLVar3 = pLVar4 + 1;\n      md_number_to_chars(litP,(ulong)*pLVar4,2);\n      litP = litP + 2;\n      pLVar4 = pLVar3;\n    } while (pLVar3 != words + (long)local_54 + 1);\n  }" { (expression_statement "pLVar4 = words;" (assignment_expression "pLVar4 = words" identifier = identifier) ;) (do_statement "do {\n      pLVar3 = pLVar4 + 1;\n      md_number_to_chars(litP,(ulong)*pLVar4,2);\n      litP = litP + 2;\n      pLVar4 = pLVar3;\n    } while (pLVar3 != words + (long)local_54 + 1);" do (compound_statement "{\n      pLVar3 = pLVar4 + 1;\n      md_number_to_chars(litP,(ulong)*pLVar4,2);\n      litP = litP + 2;\n      pLVar4 = pLVar3;\n    }" { (expression_statement "pLVar3 = pLVar4 + 1;" (assignment_expression "pLVar3 = pLVar4 + 1" identifier = (binary_expression "pLVar4 + 1" identifier + number_literal)) ;) (expression_statement "md_number_to_chars(litP,(ulong)*pLVar4,2);" (call_expression "md_number_to_chars(litP,(ulong)*pLVar4,2)" identifier (argument_list "(litP,(ulong)*pLVar4,2)" ( identifier , (binary_expression "(ulong)*pLVar4" (parenthesized_expression "(ulong)" ( identifier )) * identifier) , number_literal ))) ;) (expression_statement "litP = litP + 2;" (assignment_expression "litP = litP + 2" identifier = (binary_expression "litP + 2" identifier + number_literal)) ;) (expression_statement "pLVar4 = pLVar3;" (assignment_expression "pLVar4 = pLVar3" identifier = identifier) ;) }) while (parenthesized_expression "(pLVar3 != words + (long)local_54 + 1)" ( (binary_expression "pLVar3 != words + (long)local_54 + 1" identifier != (binary_expression "words + (long)local_54 + 1" (binary_expression "words + (long)local_54" identifier + (cast_expression "(long)local_54" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) + number_literal)) )) ;) }))) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "undefined8 FUN_0013f680(int param_1,long param_2,undefined4 *param_3,int param_4)\n\n{\n  char *pcVar1;\n  long lVar2;\n  undefined8 uVar3;\n  long lVar4;\n  undefined2 *puVar5;\n  undefined2 *puVar6;\n  undefined4 uVar7;\n  int local_54;\n  long local_50;\n  undefined2 local_44 [10];\n  \n  pcVar1 = strchr("rRsSfFdDxXpP",param_1);\n  if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }\n  lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);\n  if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }\n  *param_3 = uVar7;\n  if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_0013f680(int param_1,long param_2,undefined4 *param_3,int param_4)\n\n{\n  char *pcVar1;\n  long lVar2;\n  undefined8 uVar3;\n  long lVar4;\n  undefined2 *puVar5;\n  undefined2 *puVar6;\n  undefined4 uVar7;\n  int local_54;\n  long local_50;\n  undefined2 local_44 [10];\n  \n  pcVar1 = strchr("rRsSfFdDxXpP",param_1);\n  if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }\n  lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);\n  if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }\n  *param_3 = uVar7;\n  if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_0013f680(int param_1,long param_2,undefined4 *param_3,int param_4)" identifier (parameter_list "(int param_1,long param_2,undefined4 *param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  long lVar2;\n  undefined8 uVar3;\n  long lVar4;\n  undefined2 *puVar5;\n  undefined2 *puVar6;\n  undefined4 uVar7;\n  int local_54;\n  long local_50;\n  undefined2 local_44 [10];\n  \n  pcVar1 = strchr("rRsSfFdDxXpP",param_1);\n  if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }\n  lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);\n  if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }\n  *param_3 = uVar7;\n  if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined2 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined2 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined2 local_44 [10];" type_identifier (array_declarator "local_44 [10]" identifier [ number_literal ]) ;) (expression_statement "pcVar1 = strchr("rRsSfFdDxXpP",param_1);" (assignment_expression "pcVar1 = strchr("rRsSfFdDxXpP",param_1)" identifier = (call_expression "strchr("rRsSfFdDxXpP",param_1)" identifier (argument_list "("rRsSfFdDxXpP",param_1)" ( (string_literal ""rRsSfFdDxXpP"" " string_content ") , identifier )))) ;) (if_statement "if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }" if (parenthesized_expression "(pcVar1 == (char *)0x0)" ( (binary_expression "pcVar1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }" { (if_statement "if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;" if (parenthesized_expression "(param_1 == 0x66)" ( (binary_expression "param_1 == 0x66" identifier == number_literal) )) (goto_statement "goto switchD_0013f6c9_caseD_46;" goto statement_identifier ;)) (if_statement "if (param_1 != 100) goto switchD_0013f6c9_caseD_45;" if (parenthesized_expression "(param_1 != 100)" ( (binary_expression "param_1 != 100" identifier != number_literal) )) (goto_statement "goto switchD_0013f6c9_caseD_45;" goto statement_identifier ;)) (labeled_statement "switchD_0013f6c9_caseD_44:\n    local_54 = 3;" statement_identifier : (expression_statement "local_54 = 3;" (assignment_expression "local_54 = 3" identifier = number_literal) ;)) (expression_statement "uVar7 = 8;" (assignment_expression "uVar7 = 8" identifier = number_literal) ;) (expression_statement "local_50 = 4;" (assignment_expression "local_50 = 4" identifier = number_literal) ;) }) (else_clause "else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }" else (compound_statement "{\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }" { (switch_statement "switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }" switch (parenthesized_expression "(param_1)" ( identifier )) (compound_statement "{\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }" { (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 100:" case number_literal :) (case_statement "case 0x72:\n      goto switchD_0013f6c9_caseD_44;" case number_literal : (goto_statement "goto switchD_0013f6c9_caseD_44;" goto statement_identifier ;)) (case_statement "default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;" default : (labeled_statement "switchD_0013f6c9_caseD_45:\n      *param_3 = 0;" statement_identifier : (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;)) (expression_statement "uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);" (assignment_expression "uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5)" identifier = (call_expression "dcgettext(0,"Unrecognized or unsupported floating point constant",5)" identifier (argument_list "(0,"Unrecognized or unsupported floating point constant",5)" ( number_literal , (string_literal ""Unrecognized or unsupported floating point constant"" " string_content ") , number_literal )))) ;) (return_statement "return uVar3;" return identifier ;)) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x53:" case number_literal :) (case_statement "case 0x66:" case number_literal :) (case_statement "case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;" case number_literal : (labeled_statement "switchD_0013f6c9_caseD_46:\n      local_54 = 1;" statement_identifier : (expression_statement "local_54 = 1;" (assignment_expression "local_54 = 1" identifier = number_literal) ;)) (expression_statement "uVar7 = 4;" (assignment_expression "uVar7 = 4" identifier = number_literal) ;) (expression_statement "local_50 = 2;" (assignment_expression "local_50 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x58:" case number_literal :) (case_statement "case 0x70:" case number_literal :) (case_statement "case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;" case number_literal : (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" identifier = number_literal) ;) (expression_statement "uVar7 = 10;" (assignment_expression "uVar7 = 10" identifier = number_literal) ;) (expression_statement "local_50 = 5;" (assignment_expression "local_50 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x54:" case number_literal :) (case_statement "case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;" case number_literal : (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" identifier = number_literal) ;) (expression_statement "uVar7 = 10;" (assignment_expression "uVar7 = 10" identifier = number_literal) ;) (expression_statement "param_1 = 0x78;" (assignment_expression "param_1 = 0x78" identifier = number_literal) ;) (expression_statement "local_50 = 5;" (assignment_expression "local_50 = 5" identifier = number_literal) ;)) })) }))) (expression_statement "lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);" (assignment_expression "lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44)" identifier = (call_expression "FUN_0013f4d0(DAT_00168ae0,param_1,local_44)" identifier (argument_list "(DAT_00168ae0,param_1,local_44)" ( identifier , identifier , identifier )))) ;) (if_statement "if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    DAT_00168ae0 = lVar2;\n  }" { (expression_statement "DAT_00168ae0 = lVar2;" (assignment_expression "DAT_00168ae0 = lVar2" identifier = identifier) ;) })) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }" { (expression_statement "puVar6 = local_44 + local_50;" (assignment_expression "puVar6 = local_44 + local_50" identifier = (binary_expression "local_44 + local_50" identifier + identifier)) ;) (expression_statement "lVar2 = param_2;" (assignment_expression "lVar2 = param_2" identifier = identifier) ;) (do_statement "do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);" do (compound_statement "{\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    }" { (expression_statement "puVar6 = puVar6 + -1;" (assignment_expression "puVar6 = puVar6 + -1" identifier = (binary_expression "puVar6 + -1" identifier + number_literal)) ;) (expression_statement "lVar4 = lVar2 + 2;" (assignment_expression "lVar4 = lVar2 + 2" identifier = (binary_expression "lVar2 + 2" identifier + number_literal)) ;) (expression_statement "FUN_0013a230(lVar2,*puVar6,2);" (call_expression "FUN_0013a230(lVar2,*puVar6,2)" identifier (argument_list "(lVar2,*puVar6,2)" ( identifier , (pointer_expression "*puVar6" * identifier) , number_literal ))) ;) (expression_statement "lVar2 = lVar4;" (assignment_expression "lVar2 = lVar4" identifier = identifier) ;) }) while (parenthesized_expression "(param_2 + 2 + (long)local_54 * 2 != lVar4)" ( (binary_expression "param_2 + 2 + (long)local_54 * 2 != lVar4" (binary_expression "param_2 + 2 + (long)local_54 * 2" (binary_expression "param_2 + 2" identifier + number_literal) + (binary_expression "(long)local_54 * 2" (cast_expression "(long)local_54" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) != identifier) )) ;) }) (else_clause "else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }" else (compound_statement "{\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }" { (expression_statement "puVar6 = local_44;" (assignment_expression "puVar6 = local_44" identifier = identifier) ;) (do_statement "do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);" do (compound_statement "{\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    }" { (expression_statement "puVar5 = puVar6 + 1;" (assignment_expression "puVar5 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0013a230(param_2,*puVar6,2);" (call_expression "FUN_0013a230(param_2,*puVar6,2)" identifier (argument_list "(param_2,*puVar6,2)" ( identifier , (pointer_expression "*puVar6" * identifier) , number_literal ))) ;) (expression_statement "param_2 = param_2 + 2;" (assignment_expression "param_2 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar5;" (assignment_expression "puVar6 = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != local_44 + (long)local_54 + 1)" ( (binary_expression "puVar5 != local_44 + (long)local_54 + 1" identifier != (binary_expression "local_44 + (long)local_54 + 1" (binary_expression "local_44 + (long)local_54" identifier + (cast_expression "(long)local_54" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) + number_literal)) )) ;) }))) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement default : (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (return_statement return IDENT ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;)) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) != IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) + LIT)) )) ;) }))) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_0013f680(int param_1,long param_2,undefined4 *param_3,int param_4)\n\n{\n  char *pcVar1;\n  long lVar2;\n  undefined8 uVar3;\n  long lVar4;\n  undefined2 *puVar5;\n  undefined2 *puVar6;\n  undefined4 uVar7;\n  int local_54;\n  long local_50;\n  undefined2 local_44 [10];\n  \n  pcVar1 = strchr("rRsSfFdDxXpP",param_1);\n  if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }\n  lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);\n  if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }\n  *param_3 = uVar7;\n  if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }\n  return 0;\n}" (type_identifier "undefined8") (function_declarator "FUN_0013f680(int param_1,long param_2,undefined4 *param_3,int param_4)" (identifier "FUN_0013f680") (parameter_list "(int param_1,long param_2,undefined4 *param_3,int param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  long lVar2;\n  undefined8 uVar3;\n  long lVar4;\n  undefined2 *puVar5;\n  undefined2 *puVar6;\n  undefined4 uVar7;\n  int local_54;\n  long local_50;\n  undefined2 local_44 [10];\n  \n  pcVar1 = strchr("rRsSfFdDxXpP",param_1);\n  if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }\n  lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);\n  if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }\n  *param_3 = uVar7;\n  if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }\n  return 0;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "undefined2 *puVar5;" (type_identifier "undefined2") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined2 *puVar6;" (type_identifier "undefined2") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "long local_50;" (sized_type_specifier "long" (long "long")) (identifier "local_50") (; ";")) (declaration "undefined2 local_44 [10];" (type_identifier "undefined2") (array_declarator "local_44 [10]" (identifier "local_44") ([ "[") (number_literal "10") (] "]")) (; ";")) (expression_statement "pcVar1 = strchr("rRsSfFdDxXpP",param_1);" (assignment_expression "pcVar1 = strchr("rRsSfFdDxXpP",param_1)" (identifier "pcVar1") (= "=") (call_expression "strchr("rRsSfFdDxXpP",param_1)" (identifier "strchr") (argument_list "("rRsSfFdDxXpP",param_1)" (( "(") (string_literal ""rRsSfFdDxXpP"" (" """) (string_content "rRsSfFdDxXpP") (" """)) (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (pcVar1 == (char *)0x0) {\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }\n  else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }" (if "if") (parenthesized_expression "(pcVar1 == (char *)0x0)" (( "(") (binary_expression "pcVar1 == (char *)0x0" (identifier "pcVar1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;\n    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;\nswitchD_0013f6c9_caseD_44:\n    local_54 = 3;\n    uVar7 = 8;\n    local_50 = 4;\n  }" ({ "{") (if_statement "if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;" (if "if") (parenthesized_expression "(param_1 == 0x66)" (( "(") (binary_expression "param_1 == 0x66" (identifier "param_1") (== "==") (number_literal "0x66")) () ")")) (goto_statement "goto switchD_0013f6c9_caseD_46;" (goto "goto") (statement_identifier "switchD_0013f6c9_caseD_46") (; ";"))) (if_statement "if (param_1 != 100) goto switchD_0013f6c9_caseD_45;" (if "if") (parenthesized_expression "(param_1 != 100)" (( "(") (binary_expression "param_1 != 100" (identifier "param_1") (!= "!=") (number_literal "100")) () ")")) (goto_statement "goto switchD_0013f6c9_caseD_45;" (goto "goto") (statement_identifier "switchD_0013f6c9_caseD_45") (; ";"))) (labeled_statement "switchD_0013f6c9_caseD_44:\n    local_54 = 3;" (statement_identifier "switchD_0013f6c9_caseD_44") (: ":") (expression_statement "local_54 = 3;" (assignment_expression "local_54 = 3" (identifier "local_54") (= "=") (number_literal "3")) (; ";"))) (expression_statement "uVar7 = 8;" (assignment_expression "uVar7 = 8" (identifier "uVar7") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_50 = 4;" (assignment_expression "local_50 = 4" (identifier "local_50") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }" (else "else") (compound_statement "{\n    switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }\n  }" ({ "{") (switch_statement "switch(param_1) {\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }" (switch "switch") (parenthesized_expression "(param_1)" (( "(") (identifier "param_1") () ")")) (compound_statement "{\n    case 0x44:\n    case 0x52:\n    case 100:\n    case 0x72:\n      goto switchD_0013f6c9_caseD_44;\n    default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;\n    case 0x46:\n    case 0x53:\n    case 0x66:\n    case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;\n    case 0x50:\n    case 0x58:\n    case 0x70:\n    case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;\n    case 0x54:\n    case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;\n    }" ({ "{") (case_statement "case 0x44:" (case "case") (number_literal "0x44") (: ":")) (case_statement "case 0x52:" (case "case") (number_literal "0x52") (: ":")) (case_statement "case 100:" (case "case") (number_literal "100") (: ":")) (case_statement "case 0x72:\n      goto switchD_0013f6c9_caseD_44;" (case "case") (number_literal "0x72") (: ":") (goto_statement "goto switchD_0013f6c9_caseD_44;" (goto "goto") (statement_identifier "switchD_0013f6c9_caseD_44") (; ";"))) (case_statement "default:\nswitchD_0013f6c9_caseD_45:\n      *param_3 = 0;\n      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);\n      return uVar3;" (default "default") (: ":") (labeled_statement "switchD_0013f6c9_caseD_45:\n      *param_3 = 0;" (statement_identifier "switchD_0013f6c9_caseD_45") (: ":") (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);" (assignment_expression "uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"Unrecognized or unsupported floating point constant",5)" (identifier "dcgettext") (argument_list "(0,"Unrecognized or unsupported floating point constant",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Unrecognized or unsupported floating point constant"" (" """) (string_content "Unrecognized or unsupported floating point constant") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";"))) (case_statement "case 0x46:" (case "case") (number_literal "0x46") (: ":")) (case_statement "case 0x53:" (case "case") (number_literal "0x53") (: ":")) (case_statement "case 0x66:" (case "case") (number_literal "0x66") (: ":")) (case_statement "case 0x73:\nswitchD_0013f6c9_caseD_46:\n      local_54 = 1;\n      uVar7 = 4;\n      local_50 = 2;\n      break;" (case "case") (number_literal "0x73") (: ":") (labeled_statement "switchD_0013f6c9_caseD_46:\n      local_54 = 1;" (statement_identifier "switchD_0013f6c9_caseD_46") (: ":") (expression_statement "local_54 = 1;" (assignment_expression "local_54 = 1" (identifier "local_54") (= "=") (number_literal "1")) (; ";"))) (expression_statement "uVar7 = 4;" (assignment_expression "uVar7 = 4" (identifier "uVar7") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_50 = 2;" (assignment_expression "local_50 = 2" (identifier "local_50") (= "=") (number_literal "2")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x50:" (case "case") (number_literal "0x50") (: ":")) (case_statement "case 0x58:" (case "case") (number_literal "0x58") (: ":")) (case_statement "case 0x70:" (case "case") (number_literal "0x70") (: ":")) (case_statement "case 0x78:\n      local_54 = 4;\n      uVar7 = 10;\n      local_50 = 5;\n      break;" (case "case") (number_literal "0x78") (: ":") (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" (identifier "local_54") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar7 = 10;" (assignment_expression "uVar7 = 10" (identifier "uVar7") (= "=") (number_literal "10")) (; ";")) (expression_statement "local_50 = 5;" (assignment_expression "local_50 = 5" (identifier "local_50") (= "=") (number_literal "5")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x54:" (case "case") (number_literal "0x54") (: ":")) (case_statement "case 0x74:\n      local_54 = 4;\n      uVar7 = 10;\n      param_1 = 0x78;\n      local_50 = 5;" (case "case") (number_literal "0x74") (: ":") (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" (identifier "local_54") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar7 = 10;" (assignment_expression "uVar7 = 10" (identifier "uVar7") (= "=") (number_literal "10")) (; ";")) (expression_statement "param_1 = 0x78;" (assignment_expression "param_1 = 0x78" (identifier "param_1") (= "=") (number_literal "0x78")) (; ";")) (expression_statement "local_50 = 5;" (assignment_expression "local_50 = 5" (identifier "local_50") (= "=") (number_literal "5")) (; ";"))) (} "}"))) (} "}")))) (expression_statement "lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);" (assignment_expression "lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44)" (identifier "lVar2") (= "=") (call_expression "FUN_0013f4d0(DAT_00168ae0,param_1,local_44)" (identifier "FUN_0013f4d0") (argument_list "(DAT_00168ae0,param_1,local_44)" (( "(") (identifier "DAT_00168ae0") (, ",") (identifier "param_1") (, ",") (identifier "local_44") () ")")))) (; ";")) (if_statement "if (lVar2 != 0) {\n    DAT_00168ae0 = lVar2;\n  }" (if "if") (parenthesized_expression "(lVar2 != 0)" (( "(") (binary_expression "lVar2 != 0" (identifier "lVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    DAT_00168ae0 = lVar2;\n  }" ({ "{") (expression_statement "DAT_00168ae0 = lVar2;" (assignment_expression "DAT_00168ae0 = lVar2" (identifier "DAT_00168ae0") (= "=") (identifier "lVar2")) (; ";")) (} "}"))) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar7")) (; ";")) (if_statement "if (param_4 == 0) {\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }\n  else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar6 = local_44 + local_50;\n    lVar2 = param_2;\n    do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);\n  }" ({ "{") (expression_statement "puVar6 = local_44 + local_50;" (assignment_expression "puVar6 = local_44 + local_50" (identifier "puVar6") (= "=") (binary_expression "local_44 + local_50" (identifier "local_44") (+ "+") (identifier "local_50"))) (; ";")) (expression_statement "lVar2 = param_2;" (assignment_expression "lVar2 = param_2" (identifier "lVar2") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);" (do "do") (compound_statement "{\n      puVar6 = puVar6 + -1;\n      lVar4 = lVar2 + 2;\n      FUN_0013a230(lVar2,*puVar6,2);\n      lVar2 = lVar4;\n    }" ({ "{") (expression_statement "puVar6 = puVar6 + -1;" (assignment_expression "puVar6 = puVar6 + -1" (identifier "puVar6") (= "=") (binary_expression "puVar6 + -1" (identifier "puVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "lVar4 = lVar2 + 2;" (assignment_expression "lVar4 = lVar2 + 2" (identifier "lVar4") (= "=") (binary_expression "lVar2 + 2" (identifier "lVar2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "FUN_0013a230(lVar2,*puVar6,2);" (call_expression "FUN_0013a230(lVar2,*puVar6,2)" (identifier "FUN_0013a230") (argument_list "(lVar2,*puVar6,2)" (( "(") (identifier "lVar2") (, ",") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "lVar2 = lVar4;" (assignment_expression "lVar2 = lVar4" (identifier "lVar2") (= "=") (identifier "lVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 + 2 + (long)local_54 * 2 != lVar4)" (( "(") (binary_expression "param_2 + 2 + (long)local_54 * 2 != lVar4" (binary_expression "param_2 + 2 + (long)local_54 * 2" (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) (+ "+") (binary_expression "(long)local_54 * 2" (cast_expression "(long)local_54" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_54")) (* "*") (number_literal "2"))) (!= "!=") (identifier "lVar4")) () ")")) (; ";")) (} "}")) (else_clause "else {\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }" (else "else") (compound_statement "{\n    puVar6 = local_44;\n    do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);\n  }" ({ "{") (expression_statement "puVar6 = local_44;" (assignment_expression "puVar6 = local_44" (identifier "puVar6") (= "=") (identifier "local_44")) (; ";")) (do_statement "do {\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    } while (puVar5 != local_44 + (long)local_54 + 1);" (do "do") (compound_statement "{\n      puVar5 = puVar6 + 1;\n      FUN_0013a230(param_2,*puVar6,2);\n      param_2 = param_2 + 2;\n      puVar6 = puVar5;\n    }" ({ "{") (expression_statement "puVar5 = puVar6 + 1;" (assignment_expression "puVar5 = puVar6 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0013a230(param_2,*puVar6,2);" (call_expression "FUN_0013a230(param_2,*puVar6,2)" (identifier "FUN_0013a230") (argument_list "(param_2,*puVar6,2)" (( "(") (identifier "param_2") (, ",") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "param_2 = param_2 + 2;" (assignment_expression "param_2 = param_2 + 2" (identifier "param_2") (= "=") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar6 = puVar5;" (assignment_expression "puVar6 = puVar5" (identifier "puVar6") (= "=") (identifier "puVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar5 != local_44 + (long)local_54 + 1)" (( "(") (binary_expression "puVar5 != local_44 + (long)local_54 + 1" (identifier "puVar5") (!= "!=") (binary_expression "local_44 + (long)local_54 + 1" (binary_expression "local_44 + (long)local_54" (identifier "local_44") (+ "+") (cast_expression "(long)local_54" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_54"))) (+ "+") (number_literal "1"))) () ")")) (; ";")) (} "}")))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

char * function_1(int var_3,char *var_11,int *sizeP,type_1 var_6)

{
  char *var_2;
  char *var_12;
  type_2 *var_13;
  type_2 *var_9;
  int iVar5;
  int local_54;
  long var_8;
  type_2 var_7 [6];
  
  var_2 = var_1(FLT_CHARS,var_3);
  if (var_2 == (char *)0x0) {
    if (var_3 == 0x66) goto switchD_0013f6c9_caseD_46;
    if (var_3 != 100) goto switchD_0013f6c9_caseD_45;
switchD_0013f6c9_caseD_44:
    local_54 = 3;
    iVar5 = 8;
    var_8 = 4;
  }
  else {
    switch(var_3) {
    case 0x44:
    case 0x52:
    case 100:
    case 0x72:
      goto switchD_0013f6c9_caseD_44;
    default:
switchD_0013f6c9_caseD_45:
      *sizeP = 0;
      var_2 = (char *)var_4(0,"Unrecognized or unsupported floating point constant",5);
      return var_2;
    case 0x46:
    case 0x53:
    case 0x66:
    case 0x73:
switchD_0013f6c9_caseD_46:
      local_54 = 1;
      iVar5 = 4;
      var_8 = 2;
      break;
    case 0x50:
    case 0x58:
    case 0x70:
    case 0x78:
      local_54 = 4;
      iVar5 = 10;
      var_8 = 5;
      break;
    case 0x54:
    case 0x74:
      local_54 = 4;
      iVar5 = 10;
      var_3 = 0x78;
      var_8 = 5;
    }
  }
  var_2 = var_5(input_line_pointer,var_3,var_7);
  if (var_2 != (char *)0x0) {
    input_line_pointer = var_2;
  }
  *sizeP = iVar5;
  if (var_6 == 0) {
    var_9 = var_7 + var_8;
    var_2 = var_11;
    do {
      var_9 = var_9 + -1;
      var_12 = var_2 + 2;
      var_10(var_2,(ulong)*var_9,2);
      var_2 = var_12;
    } while (var_11 + (long)local_54 * 2 + 2 != var_12);
  }
  else {
    var_9 = var_7;
    do {
      var_13 = var_9 + 1;
      var_10(var_11,(ulong)*var_9,2);
      var_11 = var_11 + 2;
      var_9 = var_13;
    } while (var_13 != var_7 + (long)local_54 + 1);
  }
  return (char *)0x0;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (return_statement (identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (number_literal)))))))) (return_statement (number_literal)))))

undefined8 MASKED(int param_1,long param_2,undefined4 *param_3,int param_4)

{
  char *pcVar1;
  long lVar2;
  undefined8 uVar3;
  long lVar4;
  undefined2 *puVar5;
  undefined2 *puVar6;
  undefined4 uVar7;
  int local_54;
  long local_50;
  undefined2 local_44 [10];
  
  pcVar1 = strchr("rRsSfFdDxXpP",param_1);
  if (pcVar1 == (char *)0x0) {
    if (param_1 == 0x66) goto switchD_0013f6c9_caseD_46;
    if (param_1 != 100) goto switchD_0013f6c9_caseD_45;
switchD_0013f6c9_caseD_44:
    local_54 = 3;
    uVar7 = 8;
    local_50 = 4;
  }
  else {
    switch(param_1) {
    case 0x44:
    case 0x52:
    case 100:
    case 0x72:
      goto switchD_0013f6c9_caseD_44;
    default:
switchD_0013f6c9_caseD_45:
      *param_3 = 0;
      uVar3 = dcgettext(0,"Unrecognized or unsupported floating point constant",5);
      return uVar3;
    case 0x46:
    case 0x53:
    case 0x66:
    case 0x73:
switchD_0013f6c9_caseD_46:
      local_54 = 1;
      uVar7 = 4;
      local_50 = 2;
      break;
    case 0x50:
    case 0x58:
    case 0x70:
    case 0x78:
      local_54 = 4;
      uVar7 = 10;
      local_50 = 5;
      break;
    case 0x54:
    case 0x74:
      local_54 = 4;
      uVar7 = 10;
      param_1 = 0x78;
      local_50 = 5;
    }
  }
  lVar2 = FUN_0013f4d0(DAT_00168ae0,param_1,local_44);
  if (lVar2 != 0) {
    DAT_00168ae0 = lVar2;
  }
  *param_3 = uVar7;
  if (param_4 == 0) {
    puVar6 = local_44 + local_50;
    lVar2 = param_2;
    do {
      puVar6 = puVar6 + -1;
      lVar4 = lVar2 + 2;
      FUN_0013a230(lVar2,*puVar6,2);
      lVar2 = lVar4;
    } while (param_2 + 2 + (long)local_54 * 2 != lVar4);
  }
  else {
    puVar6 = local_44;
    do {
      puVar5 = puVar6 + 1;
      FUN_0013a230(param_2,*puVar6,2);
      param_2 = param_2 + 2;
      puVar6 = puVar5;
    } while (puVar5 != local_44 + (long)local_54 + 1);
  }
  return 0;
}

