
void lang_leave_overlay_section(fill_type *fill,lang_output_section_phdr_list *phdrs)

{
  byte bVar1;
  byte *__s;
  size_t sVar2;
  byte *__s_00;
  char *pcVar3;
  etree_type *peVar4;
  etree_type *lhs;
  byte *pbVar5;
  byte *pbVar6;
  
  __s = (byte *)current_section->name;
  lang_leave_output_section_statement(fill,"*default*",phdrs,(char *)0x0);
  sVar2 = strlen((char *)__s);
  __s_00 = (byte *)xmalloc(sVar2 + 1);
  bVar1 = *__s;
  pbVar6 = __s;
  pbVar5 = __s_00;
  while (bVar1 != 0) {
    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {
      *pbVar5 = bVar1;
      pbVar5 = pbVar5 + 1;
    }
    pbVar6 = pbVar6 + 1;
    bVar1 = *pbVar6;
  }
  *pbVar5 = 0;
  sVar2 = strlen((char *)__s_00);
  pcVar3 = (char *)xmalloc(sVar2 + 0xe);
  sprintf(pcVar3,"__load_start_%s",__s_00);
  peVar4 = exp_nameop(0x144,(char *)__s);
  peVar4 = exp_provide(pcVar3,peVar4,0);
  lang_add_assignment(peVar4);
  sVar2 = strlen((char *)__s_00);
  pcVar3 = (char *)xmalloc(sVar2 + 0xd);
  sprintf(pcVar3,"__load_stop_%s",__s_00);
  peVar4 = exp_nameop(0x141,(char *)__s);
  lhs = exp_nameop(0x144,(char *)__s);
  peVar4 = exp_binop(0x2b,lhs,peVar4);
  peVar4 = exp_provide(pcVar3,peVar4,0);
  lang_add_assignment(peVar4);
  free(__s_00);
  return;
}



void FUN_0011f4a0(undefined8 param_1,undefined8 param_2)

{
  byte bVar1;
  byte *__s;
  size_t sVar2;
  byte *__s_00;
  char *pcVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  byte *pbVar6;
  byte *pbVar7;
  
  __s = *(byte **)(DAT_002b4cd0 + 0x30);
  FUN_0011eba0(param_1,"*default*",param_2,0);
  sVar2 = strlen((char *)__s);
  __s_00 = (byte *)xmalloc(sVar2 + 1);
  bVar1 = *__s;
  pbVar7 = __s;
  pbVar6 = __s_00;
  while (bVar1 != 0) {
    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {
      *pbVar6 = bVar1;
      pbVar6 = pbVar6 + 1;
    }
    pbVar7 = pbVar7 + 1;
    bVar1 = *pbVar7;
  }
  *pbVar6 = 0;
  sVar2 = strlen((char *)__s_00);
  pcVar3 = (char *)xmalloc(sVar2 + 0xe);
  sprintf(pcVar3,"__load_start_%s",__s_00);
  uVar4 = FUN_001274a0(0x144,__s);
  uVar4 = FUN_00127580(pcVar3,uVar4,0);
  FUN_0011eac0(uVar4);
  sVar2 = strlen((char *)__s_00);
  pcVar3 = (char *)xmalloc(sVar2 + 0xd);
  sprintf(pcVar3,"__load_stop_%s",__s_00);
  uVar4 = FUN_001274a0(0x141,__s);
  uVar5 = FUN_001274a0(0x144,__s);
  uVar4 = FUN_00127320(0x2b,uVar5,uVar4);
  uVar4 = FUN_00127580(pcVar3,uVar4,0);
  FUN_0011eac0(uVar4);
  free(__s_00);
  return;
}


PUSH R13
MOV RDX,RSI
XOR ECX,ECX
LEA RSI,[0x15d0ef]
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x8
MOV RAX,qword ptr [0x002b4cd0]
MOV RBP,qword ptr [RAX + 0x30]
CALL 0x0011eba0
MOV RDI,RBP
CALL 0x0010d330
LEA RDI,[RAX + 0x1]
CALL 0x0010dda0
MOV RBX,RAX
MOVZX EAX,byte ptr [RBP]
TEST AL,AL
JZ 0x0011f5e0
MOV RDX,RBP
MOV RCX,RBX
LEA RDI,[0x2b1a80]
NOP dword ptr [RAX + RAX*0x1]
MOVZX ESI,AL
TEST byte ptr [RDI + RSI*0x2],0x8c
JNZ 0x0011f505
CMP AL,0x5f
JNZ 0x0011f50b
MOV byte ptr [RCX],AL
ADD RCX,0x1
ADD RDX,0x1
MOVZX EAX,byte ptr [RDX]
TEST AL,AL
JNZ 0x0011f4f8
MOV byte ptr [RCX],0x0
MOV RDI,RBX
CALL 0x0010d330
LEA RDI,[RAX + 0xe]
CALL 0x0010dda0
MOV RDX,RBX
LEA RSI,[0x16c311]
MOV R12,RAX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0010dbc0
MOV RSI,RBP
MOV EDI,0x144
CALL 0x001274a0
XOR EDX,EDX
MOV RDI,R12
MOV RSI,RAX
CALL 0x00127580
MOV RDI,RAX
CALL 0x0011eac0
MOV RDI,RBX
CALL 0x0010d330
LEA RDI,[RAX + 0xd]
CALL 0x0010dda0
MOV RDX,RBX
LEA RSI,[0x16c321]
MOV R12,RAX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0010dbc0
MOV RSI,RBP
MOV EDI,0x141
CALL 0x001274a0
MOV RSI,RBP
MOV EDI,0x144
MOV R13,RAX
CALL 0x001274a0
MOV RDX,R13
MOV EDI,0x2b
MOV RSI,RAX
CALL 0x00127320
MOV RDI,R12
XOR EDX,EDX
MOV RSI,RAX
CALL 0x00127580
MOV RDI,RAX
CALL 0x0011eac0
ADD RSP,0x8
MOV RDI,RBX
POP RBX
POP RBP
POP R12
POP R13
JMP 0x0010dd90
MOV RCX,RBX
JMP 0x0011f516
(translation_unit "void FUN_0011f4a0(undefined8 param_1,undefined8 param_2)\n\n{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  \n  __s = *(byte **)(DAT_002b4cd0 + 0x30);\n  FUN_0011eba0(param_1,"*default*",param_2,0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar7 = __s;\n  pbVar6 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }\n  *pbVar6 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  uVar4 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  uVar4 = FUN_001274a0(0x141,__s);\n  uVar5 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127320(0x2b,uVar5,uVar4);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  free(__s_00);\n  return;\n}\n\n" (function_definition "void FUN_0011f4a0(undefined8 param_1,undefined8 param_2)\n\n{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  \n  __s = *(byte **)(DAT_002b4cd0 + 0x30);\n  FUN_0011eba0(param_1,"*default*",param_2,0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar7 = __s;\n  pbVar6 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }\n  *pbVar6 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  uVar4 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  uVar4 = FUN_001274a0(0x141,__s);\n  uVar5 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127320(0x2b,uVar5,uVar4);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  free(__s_00);\n  return;\n}" primitive_type (function_declarator "FUN_0011f4a0(undefined8 param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  \n  __s = *(byte **)(DAT_002b4cd0 + 0x30);\n  FUN_0011eba0(param_1,"*default*",param_2,0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar7 = __s;\n  pbVar6 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }\n  *pbVar6 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  uVar4 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  uVar4 = FUN_001274a0(0x141,__s);\n  uVar5 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127320(0x2b,uVar5,uVar4);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  free(__s_00);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "byte *__s_00;" type_identifier (pointer_declarator "*__s_00" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (expression_statement "__s = *(byte **)(DAT_002b4cd0 + 0x30);" (assignment_expression "__s = *(byte **)(DAT_002b4cd0 + 0x30)" identifier = (pointer_expression "*(byte **)(DAT_002b4cd0 + 0x30)" * (cast_expression "(byte **)(DAT_002b4cd0 + 0x30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_002b4cd0 + 0x30)" ( (binary_expression "DAT_002b4cd0 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "FUN_0011eba0(param_1,"*default*",param_2,0);" (call_expression "FUN_0011eba0(param_1,"*default*",param_2,0)" identifier (argument_list "(param_1,"*default*",param_2,0)" ( identifier , (string_literal ""*default*"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "sVar2 = strlen((char *)__s);" (assignment_expression "sVar2 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "__s_00 = (byte *)xmalloc(sVar2 + 1);" (assignment_expression "__s_00 = (byte *)xmalloc(sVar2 + 1)" identifier = (cast_expression "(byte *)xmalloc(sVar2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 1)" identifier (argument_list "(sVar2 + 1)" ( (binary_expression "sVar2 + 1" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *__s;" (assignment_expression "bVar1 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "pbVar7 = __s;" (assignment_expression "pbVar7 = __s" identifier = identifier) ;) (expression_statement "pbVar6 = __s_00;" (assignment_expression "pbVar6 = __s_00" identifier = identifier) ;) (while_statement "while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }" { (if_statement "if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f))" ( (binary_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)" (parenthesized_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c)" ( (binary_expression "_sch_istable[(ulong)bVar1 * 2] & 0x8c" (subscript_expression "_sch_istable[(ulong)bVar1 * 2]" identifier [ (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar1 == 0x5f)" ( (binary_expression "bVar1 == 0x5f" identifier == number_literal) ))) )) (compound_statement "{\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }" { (expression_statement "*pbVar6 = bVar1;" (assignment_expression "*pbVar6 = bVar1" (pointer_expression "*pbVar6" * identifier) = identifier) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) })) (expression_statement "*pbVar6 = 0;" (assignment_expression "*pbVar6 = 0" (pointer_expression "*pbVar6" * identifier) = number_literal) ;) (expression_statement "sVar2 = strlen((char *)__s_00);" (assignment_expression "sVar2 = strlen((char *)__s_00)" identifier = (call_expression "strlen((char *)__s_00)" identifier (argument_list "((char *)__s_00)" ( (cast_expression "(char *)__s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar3 = (char *)xmalloc(sVar2 + 0xe);" (assignment_expression "pcVar3 = (char *)xmalloc(sVar2 + 0xe)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 0xe)" identifier (argument_list "(sVar2 + 0xe)" ( (binary_expression "sVar2 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar3,"__load_start_%s",__s_00);" (call_expression "sprintf(pcVar3,"__load_start_%s",__s_00)" identifier (argument_list "(pcVar3,"__load_start_%s",__s_00)" ( identifier , (string_literal ""__load_start_%s"" " string_content ") , identifier ))) ;) (expression_statement "uVar4 = FUN_001274a0(0x144,__s);" (assignment_expression "uVar4 = FUN_001274a0(0x144,__s)" identifier = (call_expression "FUN_001274a0(0x144,__s)" identifier (argument_list "(0x144,__s)" ( number_literal , identifier )))) ;) (expression_statement "uVar4 = FUN_00127580(pcVar3,uVar4,0);" (assignment_expression "uVar4 = FUN_00127580(pcVar3,uVar4,0)" identifier = (call_expression "FUN_00127580(pcVar3,uVar4,0)" identifier (argument_list "(pcVar3,uVar4,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "FUN_0011eac0(uVar4);" (call_expression "FUN_0011eac0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "sVar2 = strlen((char *)__s_00);" (assignment_expression "sVar2 = strlen((char *)__s_00)" identifier = (call_expression "strlen((char *)__s_00)" identifier (argument_list "((char *)__s_00)" ( (cast_expression "(char *)__s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar3 = (char *)xmalloc(sVar2 + 0xd);" (assignment_expression "pcVar3 = (char *)xmalloc(sVar2 + 0xd)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 0xd)" identifier (argument_list "(sVar2 + 0xd)" ( (binary_expression "sVar2 + 0xd" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar3,"__load_stop_%s",__s_00);" (call_expression "sprintf(pcVar3,"__load_stop_%s",__s_00)" identifier (argument_list "(pcVar3,"__load_stop_%s",__s_00)" ( identifier , (string_literal ""__load_stop_%s"" " string_content ") , identifier ))) ;) (expression_statement "uVar4 = FUN_001274a0(0x141,__s);" (assignment_expression "uVar4 = FUN_001274a0(0x141,__s)" identifier = (call_expression "FUN_001274a0(0x141,__s)" identifier (argument_list "(0x141,__s)" ( number_literal , identifier )))) ;) (expression_statement "uVar5 = FUN_001274a0(0x144,__s);" (assignment_expression "uVar5 = FUN_001274a0(0x144,__s)" identifier = (call_expression "FUN_001274a0(0x144,__s)" identifier (argument_list "(0x144,__s)" ( number_literal , identifier )))) ;) (expression_statement "uVar4 = FUN_00127320(0x2b,uVar5,uVar4);" (assignment_expression "uVar4 = FUN_00127320(0x2b,uVar5,uVar4)" identifier = (call_expression "FUN_00127320(0x2b,uVar5,uVar4)" identifier (argument_list "(0x2b,uVar5,uVar4)" ( number_literal , identifier , identifier )))) ;) (expression_statement "uVar4 = FUN_00127580(pcVar3,uVar4,0);" (assignment_expression "uVar4 = FUN_00127580(pcVar3,uVar4,0)" identifier = (call_expression "FUN_00127580(pcVar3,uVar4,0)" identifier (argument_list "(pcVar3,uVar4,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "FUN_0011eac0(uVar4);" (call_expression "FUN_0011eac0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void lang_leave_overlay_section(fill_type *fill,lang_output_section_phdr_list *phdrs)\n\n{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  etree_type *peVar4;\n  etree_type *lhs;\n  byte *pbVar5;\n  byte *pbVar6;\n  \n  __s = (byte *)current_section->name;\n  lang_leave_output_section_statement(fill,"*default*",phdrs,(char *)0x0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar6 = __s;\n  pbVar5 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar5 = bVar1;\n      pbVar5 = pbVar5 + 1;\n    }\n    pbVar6 = pbVar6 + 1;\n    bVar1 = *pbVar6;\n  }\n  *pbVar5 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  peVar4 = exp_nameop(0x144,(char *)__s);\n  peVar4 = exp_provide(pcVar3,peVar4,0);\n  lang_add_assignment(peVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  peVar4 = exp_nameop(0x141,(char *)__s);\n  lhs = exp_nameop(0x144,(char *)__s);\n  peVar4 = exp_binop(0x2b,lhs,peVar4);\n  peVar4 = exp_provide(pcVar3,peVar4,0);\n  lang_add_assignment(peVar4);\n  free(__s_00);\n  return;\n}\n\n" (function_definition "void lang_leave_overlay_section(fill_type *fill,lang_output_section_phdr_list *phdrs)\n\n{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  etree_type *peVar4;\n  etree_type *lhs;\n  byte *pbVar5;\n  byte *pbVar6;\n  \n  __s = (byte *)current_section->name;\n  lang_leave_output_section_statement(fill,"*default*",phdrs,(char *)0x0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar6 = __s;\n  pbVar5 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar5 = bVar1;\n      pbVar5 = pbVar5 + 1;\n    }\n    pbVar6 = pbVar6 + 1;\n    bVar1 = *pbVar6;\n  }\n  *pbVar5 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  peVar4 = exp_nameop(0x144,(char *)__s);\n  peVar4 = exp_provide(pcVar3,peVar4,0);\n  lang_add_assignment(peVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  peVar4 = exp_nameop(0x141,(char *)__s);\n  lhs = exp_nameop(0x144,(char *)__s);\n  peVar4 = exp_binop(0x2b,lhs,peVar4);\n  peVar4 = exp_provide(pcVar3,peVar4,0);\n  lang_add_assignment(peVar4);\n  free(__s_00);\n  return;\n}" primitive_type (function_declarator "lang_leave_overlay_section(fill_type *fill,lang_output_section_phdr_list *phdrs)" identifier (parameter_list "(fill_type *fill,lang_output_section_phdr_list *phdrs)" ( (parameter_declaration "fill_type *fill" type_identifier (pointer_declarator "*fill" * identifier)) , (parameter_declaration "lang_output_section_phdr_list *phdrs" type_identifier (pointer_declarator "*phdrs" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  etree_type *peVar4;\n  etree_type *lhs;\n  byte *pbVar5;\n  byte *pbVar6;\n  \n  __s = (byte *)current_section->name;\n  lang_leave_output_section_statement(fill,"*default*",phdrs,(char *)0x0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar6 = __s;\n  pbVar5 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar5 = bVar1;\n      pbVar5 = pbVar5 + 1;\n    }\n    pbVar6 = pbVar6 + 1;\n    bVar1 = *pbVar6;\n  }\n  *pbVar5 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  peVar4 = exp_nameop(0x144,(char *)__s);\n  peVar4 = exp_provide(pcVar3,peVar4,0);\n  lang_add_assignment(peVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  peVar4 = exp_nameop(0x141,(char *)__s);\n  lhs = exp_nameop(0x144,(char *)__s);\n  peVar4 = exp_binop(0x2b,lhs,peVar4);\n  peVar4 = exp_provide(pcVar3,peVar4,0);\n  lang_add_assignment(peVar4);\n  free(__s_00);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "byte *__s_00;" type_identifier (pointer_declarator "*__s_00" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "etree_type *peVar4;" type_identifier (pointer_declarator "*peVar4" * identifier) ;) (declaration "etree_type *lhs;" type_identifier (pointer_declarator "*lhs" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (expression_statement "__s = (byte *)current_section->name;" (assignment_expression "__s = (byte *)current_section->name" identifier = (cast_expression "(byte *)current_section->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "current_section->name" identifier -> field_identifier))) ;) (expression_statement "lang_leave_output_section_statement(fill,"*default*",phdrs,(char *)0x0);" (call_expression "lang_leave_output_section_statement(fill,"*default*",phdrs,(char *)0x0)" identifier (argument_list "(fill,"*default*",phdrs,(char *)0x0)" ( identifier , (string_literal ""*default*"" " string_content ") , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "sVar2 = strlen((char *)__s);" (assignment_expression "sVar2 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "__s_00 = (byte *)xmalloc(sVar2 + 1);" (assignment_expression "__s_00 = (byte *)xmalloc(sVar2 + 1)" identifier = (cast_expression "(byte *)xmalloc(sVar2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 1)" identifier (argument_list "(sVar2 + 1)" ( (binary_expression "sVar2 + 1" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *__s;" (assignment_expression "bVar1 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "pbVar6 = __s;" (assignment_expression "pbVar6 = __s" identifier = identifier) ;) (expression_statement "pbVar5 = __s_00;" (assignment_expression "pbVar5 = __s_00" identifier = identifier) ;) (while_statement "while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar5 = bVar1;\n      pbVar5 = pbVar5 + 1;\n    }\n    pbVar6 = pbVar6 + 1;\n    bVar1 = *pbVar6;\n  }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar5 = bVar1;\n      pbVar5 = pbVar5 + 1;\n    }\n    pbVar6 = pbVar6 + 1;\n    bVar1 = *pbVar6;\n  }" { (if_statement "if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar5 = bVar1;\n      pbVar5 = pbVar5 + 1;\n    }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f))" ( (binary_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)" (parenthesized_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c)" ( (binary_expression "_sch_istable[(ulong)bVar1 * 2] & 0x8c" (subscript_expression "_sch_istable[(ulong)bVar1 * 2]" identifier [ (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar1 == 0x5f)" ( (binary_expression "bVar1 == 0x5f" identifier == number_literal) ))) )) (compound_statement "{\n      *pbVar5 = bVar1;\n      pbVar5 = pbVar5 + 1;\n    }" { (expression_statement "*pbVar5 = bVar1;" (assignment_expression "*pbVar5 = bVar1" (pointer_expression "*pbVar5" * identifier) = identifier) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar6;" (assignment_expression "bVar1 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) })) (expression_statement "*pbVar5 = 0;" (assignment_expression "*pbVar5 = 0" (pointer_expression "*pbVar5" * identifier) = number_literal) ;) (expression_statement "sVar2 = strlen((char *)__s_00);" (assignment_expression "sVar2 = strlen((char *)__s_00)" identifier = (call_expression "strlen((char *)__s_00)" identifier (argument_list "((char *)__s_00)" ( (cast_expression "(char *)__s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar3 = (char *)xmalloc(sVar2 + 0xe);" (assignment_expression "pcVar3 = (char *)xmalloc(sVar2 + 0xe)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 0xe)" identifier (argument_list "(sVar2 + 0xe)" ( (binary_expression "sVar2 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar3,"__load_start_%s",__s_00);" (call_expression "sprintf(pcVar3,"__load_start_%s",__s_00)" identifier (argument_list "(pcVar3,"__load_start_%s",__s_00)" ( identifier , (string_literal ""__load_start_%s"" " string_content ") , identifier ))) ;) (expression_statement "peVar4 = exp_nameop(0x144,(char *)__s);" (assignment_expression "peVar4 = exp_nameop(0x144,(char *)__s)" identifier = (call_expression "exp_nameop(0x144,(char *)__s)" identifier (argument_list "(0x144,(char *)__s)" ( number_literal , (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "peVar4 = exp_provide(pcVar3,peVar4,0);" (assignment_expression "peVar4 = exp_provide(pcVar3,peVar4,0)" identifier = (call_expression "exp_provide(pcVar3,peVar4,0)" identifier (argument_list "(pcVar3,peVar4,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "lang_add_assignment(peVar4);" (call_expression "lang_add_assignment(peVar4)" identifier (argument_list "(peVar4)" ( identifier ))) ;) (expression_statement "sVar2 = strlen((char *)__s_00);" (assignment_expression "sVar2 = strlen((char *)__s_00)" identifier = (call_expression "strlen((char *)__s_00)" identifier (argument_list "((char *)__s_00)" ( (cast_expression "(char *)__s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar3 = (char *)xmalloc(sVar2 + 0xd);" (assignment_expression "pcVar3 = (char *)xmalloc(sVar2 + 0xd)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 0xd)" identifier (argument_list "(sVar2 + 0xd)" ( (binary_expression "sVar2 + 0xd" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar3,"__load_stop_%s",__s_00);" (call_expression "sprintf(pcVar3,"__load_stop_%s",__s_00)" identifier (argument_list "(pcVar3,"__load_stop_%s",__s_00)" ( identifier , (string_literal ""__load_stop_%s"" " string_content ") , identifier ))) ;) (expression_statement "peVar4 = exp_nameop(0x141,(char *)__s);" (assignment_expression "peVar4 = exp_nameop(0x141,(char *)__s)" identifier = (call_expression "exp_nameop(0x141,(char *)__s)" identifier (argument_list "(0x141,(char *)__s)" ( number_literal , (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "lhs = exp_nameop(0x144,(char *)__s);" (assignment_expression "lhs = exp_nameop(0x144,(char *)__s)" identifier = (call_expression "exp_nameop(0x144,(char *)__s)" identifier (argument_list "(0x144,(char *)__s)" ( number_literal , (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "peVar4 = exp_binop(0x2b,lhs,peVar4);" (assignment_expression "peVar4 = exp_binop(0x2b,lhs,peVar4)" identifier = (call_expression "exp_binop(0x2b,lhs,peVar4)" identifier (argument_list "(0x2b,lhs,peVar4)" ( number_literal , identifier , identifier )))) ;) (expression_statement "peVar4 = exp_provide(pcVar3,peVar4,0);" (assignment_expression "peVar4 = exp_provide(pcVar3,peVar4,0)" identifier = (call_expression "exp_provide(pcVar3,peVar4,0)" identifier (argument_list "(pcVar3,peVar4,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "lang_add_assignment(peVar4);" (call_expression "lang_add_assignment(peVar4)" identifier (argument_list "(peVar4)" ( identifier ))) ;) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0011f4a0(undefined8 param_1,undefined8 param_2)\n\n{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  \n  __s = *(byte **)(DAT_002b4cd0 + 0x30);\n  FUN_0011eba0(param_1,"*default*",param_2,0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar7 = __s;\n  pbVar6 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }\n  *pbVar6 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  uVar4 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  uVar4 = FUN_001274a0(0x141,__s);\n  uVar5 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127320(0x2b,uVar5,uVar4);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  free(__s_00);\n  return;\n}\n\n" (function_definition "void FUN_0011f4a0(undefined8 param_1,undefined8 param_2)\n\n{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  \n  __s = *(byte **)(DAT_002b4cd0 + 0x30);\n  FUN_0011eba0(param_1,"*default*",param_2,0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar7 = __s;\n  pbVar6 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }\n  *pbVar6 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  uVar4 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  uVar4 = FUN_001274a0(0x141,__s);\n  uVar5 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127320(0x2b,uVar5,uVar4);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  free(__s_00);\n  return;\n}" primitive_type (function_declarator "FUN_0011f4a0(undefined8 param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  \n  __s = *(byte **)(DAT_002b4cd0 + 0x30);\n  FUN_0011eba0(param_1,"*default*",param_2,0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar7 = __s;\n  pbVar6 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }\n  *pbVar6 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  uVar4 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  uVar4 = FUN_001274a0(0x141,__s);\n  uVar5 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127320(0x2b,uVar5,uVar4);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  free(__s_00);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "byte *__s_00;" type_identifier (pointer_declarator "*__s_00" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (expression_statement "__s = *(byte **)(DAT_002b4cd0 + 0x30);" (assignment_expression "__s = *(byte **)(DAT_002b4cd0 + 0x30)" identifier = (pointer_expression "*(byte **)(DAT_002b4cd0 + 0x30)" * (cast_expression "(byte **)(DAT_002b4cd0 + 0x30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_002b4cd0 + 0x30)" ( (binary_expression "DAT_002b4cd0 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "FUN_0011eba0(param_1,"*default*",param_2,0);" (call_expression "FUN_0011eba0(param_1,"*default*",param_2,0)" identifier (argument_list "(param_1,"*default*",param_2,0)" ( identifier , (string_literal ""*default*"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "sVar2 = strlen((char *)__s);" (assignment_expression "sVar2 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "__s_00 = (byte *)xmalloc(sVar2 + 1);" (assignment_expression "__s_00 = (byte *)xmalloc(sVar2 + 1)" identifier = (cast_expression "(byte *)xmalloc(sVar2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 1)" identifier (argument_list "(sVar2 + 1)" ( (binary_expression "sVar2 + 1" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *__s;" (assignment_expression "bVar1 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "pbVar7 = __s;" (assignment_expression "pbVar7 = __s" identifier = identifier) ;) (expression_statement "pbVar6 = __s_00;" (assignment_expression "pbVar6 = __s_00" identifier = identifier) ;) (while_statement "while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }" { (if_statement "if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f))" ( (binary_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)" (parenthesized_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c)" ( (binary_expression "_sch_istable[(ulong)bVar1 * 2] & 0x8c" (subscript_expression "_sch_istable[(ulong)bVar1 * 2]" identifier [ (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar1 == 0x5f)" ( (binary_expression "bVar1 == 0x5f" identifier == number_literal) ))) )) (compound_statement "{\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }" { (expression_statement "*pbVar6 = bVar1;" (assignment_expression "*pbVar6 = bVar1" (pointer_expression "*pbVar6" * identifier) = identifier) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) })) (expression_statement "*pbVar6 = 0;" (assignment_expression "*pbVar6 = 0" (pointer_expression "*pbVar6" * identifier) = number_literal) ;) (expression_statement "sVar2 = strlen((char *)__s_00);" (assignment_expression "sVar2 = strlen((char *)__s_00)" identifier = (call_expression "strlen((char *)__s_00)" identifier (argument_list "((char *)__s_00)" ( (cast_expression "(char *)__s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar3 = (char *)xmalloc(sVar2 + 0xe);" (assignment_expression "pcVar3 = (char *)xmalloc(sVar2 + 0xe)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 0xe)" identifier (argument_list "(sVar2 + 0xe)" ( (binary_expression "sVar2 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar3,"__load_start_%s",__s_00);" (call_expression "sprintf(pcVar3,"__load_start_%s",__s_00)" identifier (argument_list "(pcVar3,"__load_start_%s",__s_00)" ( identifier , (string_literal ""__load_start_%s"" " string_content ") , identifier ))) ;) (expression_statement "uVar4 = FUN_001274a0(0x144,__s);" (assignment_expression "uVar4 = FUN_001274a0(0x144,__s)" identifier = (call_expression "FUN_001274a0(0x144,__s)" identifier (argument_list "(0x144,__s)" ( number_literal , identifier )))) ;) (expression_statement "uVar4 = FUN_00127580(pcVar3,uVar4,0);" (assignment_expression "uVar4 = FUN_00127580(pcVar3,uVar4,0)" identifier = (call_expression "FUN_00127580(pcVar3,uVar4,0)" identifier (argument_list "(pcVar3,uVar4,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "FUN_0011eac0(uVar4);" (call_expression "FUN_0011eac0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "sVar2 = strlen((char *)__s_00);" (assignment_expression "sVar2 = strlen((char *)__s_00)" identifier = (call_expression "strlen((char *)__s_00)" identifier (argument_list "((char *)__s_00)" ( (cast_expression "(char *)__s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar3 = (char *)xmalloc(sVar2 + 0xd);" (assignment_expression "pcVar3 = (char *)xmalloc(sVar2 + 0xd)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 0xd)" identifier (argument_list "(sVar2 + 0xd)" ( (binary_expression "sVar2 + 0xd" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar3,"__load_stop_%s",__s_00);" (call_expression "sprintf(pcVar3,"__load_stop_%s",__s_00)" identifier (argument_list "(pcVar3,"__load_stop_%s",__s_00)" ( identifier , (string_literal ""__load_stop_%s"" " string_content ") , identifier ))) ;) (expression_statement "uVar4 = FUN_001274a0(0x141,__s);" (assignment_expression "uVar4 = FUN_001274a0(0x141,__s)" identifier = (call_expression "FUN_001274a0(0x141,__s)" identifier (argument_list "(0x141,__s)" ( number_literal , identifier )))) ;) (expression_statement "uVar5 = FUN_001274a0(0x144,__s);" (assignment_expression "uVar5 = FUN_001274a0(0x144,__s)" identifier = (call_expression "FUN_001274a0(0x144,__s)" identifier (argument_list "(0x144,__s)" ( number_literal , identifier )))) ;) (expression_statement "uVar4 = FUN_00127320(0x2b,uVar5,uVar4);" (assignment_expression "uVar4 = FUN_00127320(0x2b,uVar5,uVar4)" identifier = (call_expression "FUN_00127320(0x2b,uVar5,uVar4)" identifier (argument_list "(0x2b,uVar5,uVar4)" ( number_literal , identifier , identifier )))) ;) (expression_statement "uVar4 = FUN_00127580(pcVar3,uVar4,0);" (assignment_expression "uVar4 = FUN_00127580(pcVar3,uVar4,0)" identifier = (call_expression "FUN_00127580(pcVar3,uVar4,0)" identifier (argument_list "(pcVar3,uVar4,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "FUN_0011eac0(uVar4);" (call_expression "FUN_0011eac0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0011f4a0(undefined8 param_1,undefined8 param_2)\n\n{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  \n  __s = *(byte **)(DAT_002b4cd0 + 0x30);\n  FUN_0011eba0(param_1,"*default*",param_2,0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar7 = __s;\n  pbVar6 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }\n  *pbVar6 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  uVar4 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  uVar4 = FUN_001274a0(0x141,__s);\n  uVar5 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127320(0x2b,uVar5,uVar4);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  free(__s_00);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0011f4a0(undefined8 param_1,undefined8 param_2)" (identifier "FUN_0011f4a0") (parameter_list "(undefined8 param_1,undefined8 param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte bVar1;\n  byte *__s;\n  size_t sVar2;\n  byte *__s_00;\n  char *pcVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  \n  __s = *(byte **)(DAT_002b4cd0 + 0x30);\n  FUN_0011eba0(param_1,"*default*",param_2,0);\n  sVar2 = strlen((char *)__s);\n  __s_00 = (byte *)xmalloc(sVar2 + 1);\n  bVar1 = *__s;\n  pbVar7 = __s;\n  pbVar6 = __s_00;\n  while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }\n  *pbVar6 = 0;\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xe);\n  sprintf(pcVar3,"__load_start_%s",__s_00);\n  uVar4 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  sVar2 = strlen((char *)__s_00);\n  pcVar3 = (char *)xmalloc(sVar2 + 0xd);\n  sprintf(pcVar3,"__load_stop_%s",__s_00);\n  uVar4 = FUN_001274a0(0x141,__s);\n  uVar5 = FUN_001274a0(0x144,__s);\n  uVar4 = FUN_00127320(0x2b,uVar5,uVar4);\n  uVar4 = FUN_00127580(pcVar3,uVar4,0);\n  FUN_0011eac0(uVar4);\n  free(__s_00);\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte *__s;" (type_identifier "byte") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "byte *__s_00;" (type_identifier "byte") (pointer_declarator "*__s_00" (* "*") (identifier "__s_00")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (expression_statement "__s = *(byte **)(DAT_002b4cd0 + 0x30);" (assignment_expression "__s = *(byte **)(DAT_002b4cd0 + 0x30)" (identifier "__s") (= "=") (pointer_expression "*(byte **)(DAT_002b4cd0 + 0x30)" (* "*") (cast_expression "(byte **)(DAT_002b4cd0 + 0x30)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_002b4cd0 + 0x30)" (( "(") (binary_expression "DAT_002b4cd0 + 0x30" (identifier "DAT_002b4cd0") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "FUN_0011eba0(param_1,"*default*",param_2,0);" (call_expression "FUN_0011eba0(param_1,"*default*",param_2,0)" (identifier "FUN_0011eba0") (argument_list "(param_1,"*default*",param_2,0)" (( "(") (identifier "param_1") (, ",") (string_literal ""*default*"" (" """) (string_content "*default*") (" """)) (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "sVar2 = strlen((char *)__s);" (assignment_expression "sVar2 = strlen((char *)__s)" (identifier "sVar2") (= "=") (call_expression "strlen((char *)__s)" (identifier "strlen") (argument_list "((char *)__s)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) () ")")))) (; ";")) (expression_statement "__s_00 = (byte *)xmalloc(sVar2 + 1);" (assignment_expression "__s_00 = (byte *)xmalloc(sVar2 + 1)" (identifier "__s_00") (= "=") (cast_expression "(byte *)xmalloc(sVar2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar2 + 1)" (identifier "xmalloc") (argument_list "(sVar2 + 1)" (( "(") (binary_expression "sVar2 + 1" (identifier "sVar2") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "bVar1 = *__s;" (assignment_expression "bVar1 = *__s" (identifier "bVar1") (= "=") (pointer_expression "*__s" (* "*") (identifier "__s"))) (; ";")) (expression_statement "pbVar7 = __s;" (assignment_expression "pbVar7 = __s" (identifier "pbVar7") (= "=") (identifier "__s")) (; ";")) (expression_statement "pbVar6 = __s_00;" (assignment_expression "pbVar6 = __s_00" (identifier "pbVar6") (= "=") (identifier "__s_00")) (; ";")) (while_statement "while (bVar1 != 0) {\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }" (while "while") (parenthesized_expression "(bVar1 != 0)" (( "(") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }\n    pbVar7 = pbVar7 + 1;\n    bVar1 = *pbVar7;\n  }" ({ "{") (if_statement "if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }" (if "if") (parenthesized_expression "(((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f))" (( "(") (binary_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)" (parenthesized_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0)" (( "(") (binary_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c)" (( "(") (binary_expression "_sch_istable[(ulong)bVar1 * 2] & 0x8c" (subscript_expression "_sch_istable[(ulong)bVar1 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "0x8c")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar1 == 0x5f)" (( "(") (binary_expression "bVar1 == 0x5f" (identifier "bVar1") (== "==") (number_literal "0x5f")) () ")"))) () ")")) (compound_statement "{\n      *pbVar6 = bVar1;\n      pbVar6 = pbVar6 + 1;\n    }" ({ "{") (expression_statement "*pbVar6 = bVar1;" (assignment_expression "*pbVar6 = bVar1" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 1" (identifier "pbVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" (identifier "bVar1") (= "=") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7"))) (; ";")) (} "}"))) (expression_statement "*pbVar6 = 0;" (assignment_expression "*pbVar6 = 0" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar2 = strlen((char *)__s_00);" (assignment_expression "sVar2 = strlen((char *)__s_00)" (identifier "sVar2") (= "=") (call_expression "strlen((char *)__s_00)" (identifier "strlen") (argument_list "((char *)__s_00)" (( "(") (cast_expression "(char *)__s_00" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s_00")) () ")")))) (; ";")) (expression_statement "pcVar3 = (char *)xmalloc(sVar2 + 0xe);" (assignment_expression "pcVar3 = (char *)xmalloc(sVar2 + 0xe)" (identifier "pcVar3") (= "=") (cast_expression "(char *)xmalloc(sVar2 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar2 + 0xe)" (identifier "xmalloc") (argument_list "(sVar2 + 0xe)" (( "(") (binary_expression "sVar2 + 0xe" (identifier "sVar2") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (expression_statement "sprintf(pcVar3,"__load_start_%s",__s_00);" (call_expression "sprintf(pcVar3,"__load_start_%s",__s_00)" (identifier "sprintf") (argument_list "(pcVar3,"__load_start_%s",__s_00)" (( "(") (identifier "pcVar3") (, ",") (string_literal ""__load_start_%s"" (" """) (string_content "__load_start_%s") (" """)) (, ",") (identifier "__s_00") () ")"))) (; ";")) (expression_statement "uVar4 = FUN_001274a0(0x144,__s);" (assignment_expression "uVar4 = FUN_001274a0(0x144,__s)" (identifier "uVar4") (= "=") (call_expression "FUN_001274a0(0x144,__s)" (identifier "FUN_001274a0") (argument_list "(0x144,__s)" (( "(") (number_literal "0x144") (, ",") (identifier "__s") () ")")))) (; ";")) (expression_statement "uVar4 = FUN_00127580(pcVar3,uVar4,0);" (assignment_expression "uVar4 = FUN_00127580(pcVar3,uVar4,0)" (identifier "uVar4") (= "=") (call_expression "FUN_00127580(pcVar3,uVar4,0)" (identifier "FUN_00127580") (argument_list "(pcVar3,uVar4,0)" (( "(") (identifier "pcVar3") (, ",") (identifier "uVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0011eac0(uVar4);" (call_expression "FUN_0011eac0(uVar4)" (identifier "FUN_0011eac0") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "sVar2 = strlen((char *)__s_00);" (assignment_expression "sVar2 = strlen((char *)__s_00)" (identifier "sVar2") (= "=") (call_expression "strlen((char *)__s_00)" (identifier "strlen") (argument_list "((char *)__s_00)" (( "(") (cast_expression "(char *)__s_00" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s_00")) () ")")))) (; ";")) (expression_statement "pcVar3 = (char *)xmalloc(sVar2 + 0xd);" (assignment_expression "pcVar3 = (char *)xmalloc(sVar2 + 0xd)" (identifier "pcVar3") (= "=") (cast_expression "(char *)xmalloc(sVar2 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar2 + 0xd)" (identifier "xmalloc") (argument_list "(sVar2 + 0xd)" (( "(") (binary_expression "sVar2 + 0xd" (identifier "sVar2") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (expression_statement "sprintf(pcVar3,"__load_stop_%s",__s_00);" (call_expression "sprintf(pcVar3,"__load_stop_%s",__s_00)" (identifier "sprintf") (argument_list "(pcVar3,"__load_stop_%s",__s_00)" (( "(") (identifier "pcVar3") (, ",") (string_literal ""__load_stop_%s"" (" """) (string_content "__load_stop_%s") (" """)) (, ",") (identifier "__s_00") () ")"))) (; ";")) (expression_statement "uVar4 = FUN_001274a0(0x141,__s);" (assignment_expression "uVar4 = FUN_001274a0(0x141,__s)" (identifier "uVar4") (= "=") (call_expression "FUN_001274a0(0x141,__s)" (identifier "FUN_001274a0") (argument_list "(0x141,__s)" (( "(") (number_literal "0x141") (, ",") (identifier "__s") () ")")))) (; ";")) (expression_statement "uVar5 = FUN_001274a0(0x144,__s);" (assignment_expression "uVar5 = FUN_001274a0(0x144,__s)" (identifier "uVar5") (= "=") (call_expression "FUN_001274a0(0x144,__s)" (identifier "FUN_001274a0") (argument_list "(0x144,__s)" (( "(") (number_literal "0x144") (, ",") (identifier "__s") () ")")))) (; ";")) (expression_statement "uVar4 = FUN_00127320(0x2b,uVar5,uVar4);" (assignment_expression "uVar4 = FUN_00127320(0x2b,uVar5,uVar4)" (identifier "uVar4") (= "=") (call_expression "FUN_00127320(0x2b,uVar5,uVar4)" (identifier "FUN_00127320") (argument_list "(0x2b,uVar5,uVar4)" (( "(") (number_literal "0x2b") (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "uVar4 = FUN_00127580(pcVar3,uVar4,0);" (assignment_expression "uVar4 = FUN_00127580(pcVar3,uVar4,0)" (identifier "uVar4") (= "=") (call_expression "FUN_00127580(pcVar3,uVar4,0)" (identifier "FUN_00127580") (argument_list "(pcVar3,uVar4,0)" (( "(") (identifier "pcVar3") (, ",") (identifier "uVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0011eac0(uVar4);" (call_expression "FUN_0011eac0(uVar4)" (identifier "FUN_0011eac0") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" (identifier "free") (argument_list "(__s_00)" (( "(") (identifier "__s_00") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *fill,type_2 *phdrs)

{
  type_3 var_5;
  type_3 *__s;
  size_t var_4;
  type_3 *__s_00;
  char *pcVar3;
  type_4 *peVar4;
  type_4 *lhs;
  type_3 *var_6;
  type_3 *var_7;
  
  __s = (type_3 *)current_section->name;
  var_1(fill,"*default*",phdrs,(char *)0x0);
  var_4 = var_2((char *)__s);
  __s_00 = (type_3 *)var_3(var_4 + 1);
  var_5 = *__s;
  var_7 = __s;
  var_6 = __s_00;
  while (var_5 != 0) {
    if (((_sch_istable[(type_5)var_5 * 2] & 0x8c) != 0) || (var_5 == 0x5f)) {
      *var_6 = var_5;
      var_6 = var_6 + 1;
    }
    var_7 = var_7 + 1;
    var_5 = *var_7;
  }
  *var_6 = 0;
  var_4 = var_2((char *)__s_00);
  pcVar3 = (char *)var_3(var_4 + 0xe);
  var_8(pcVar3,"__load_start_%s",__s_00);
  peVar4 = var_9(0x144,(char *)__s);
  peVar4 = var_10(pcVar3,peVar4,0);
  var_11(peVar4);
  var_4 = var_2((char *)__s_00);
  pcVar3 = (char *)var_3(var_4 + 0xd);
  var_8(pcVar3,"__load_stop_%s",__s_00);
  peVar4 = var_9(0x141,(char *)__s);
  lhs = var_9(0x144,(char *)__s);
  peVar4 = var_12(0x2b,lhs,peVar4);
  peVar4 = var_10(pcVar3,peVar4,0);
  var_11(peVar4);
  var_13(__s_00);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (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 (assignment_expression left: (identifier) right: (pointer_expression argument: (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 (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement))))

void MASKED(undefined8 param_1,undefined8 param_2)

{
  byte bVar1;
  byte *__s;
  size_t sVar2;
  byte *__s_00;
  char *pcVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  byte *pbVar6;
  byte *pbVar7;
  
  __s = *(byte **)(DAT_002b4cd0 + 0x30);
  FUN_0011eba0(param_1,"*default*",param_2,0);
  sVar2 = strlen((char *)__s);
  __s_00 = (byte *)xmalloc(sVar2 + 1);
  bVar1 = *__s;
  pbVar7 = __s;
  pbVar6 = __s_00;
  while (bVar1 != 0) {
    if (((_sch_istable[(ulong)bVar1 * 2] & 0x8c) != 0) || (bVar1 == 0x5f)) {
      *pbVar6 = bVar1;
      pbVar6 = pbVar6 + 1;
    }
    pbVar7 = pbVar7 + 1;
    bVar1 = *pbVar7;
  }
  *pbVar6 = 0;
  sVar2 = strlen((char *)__s_00);
  pcVar3 = (char *)xmalloc(sVar2 + 0xe);
  sprintf(pcVar3,"__load_start_%s",__s_00);
  uVar4 = FUN_001274a0(0x144,__s);
  uVar4 = FUN_00127580(pcVar3,uVar4,0);
  FUN_0011eac0(uVar4);
  sVar2 = strlen((char *)__s_00);
  pcVar3 = (char *)xmalloc(sVar2 + 0xd);
  sprintf(pcVar3,"__load_stop_%s",__s_00);
  uVar4 = FUN_001274a0(0x141,__s);
  uVar5 = FUN_001274a0(0x144,__s);
  uVar4 = FUN_00127320(0x2b,uVar5,uVar4);
  uVar4 = FUN_00127580(pcVar3,uVar4,0);
  FUN_0011eac0(uVar4);
  free(__s_00);
  return;
}

