
void macro_build_lui(expressionS *ep,int regnum)

{
  undefined *puVar1;
  char *pcVar2;
  int iVar3;
  undefined4 uVar4;
  
  puVar1 = PTR_DAT_000b5ca8;
  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;
  if (ep->field_0x10 != '\x02') {
    if (ep->field_0x10 != '\x03') {
      uVar4 = 0x2366;
      goto LAB_0006c424;
    }
    if (*(int *)PTR_mips_pic_000b63d4 != 0) {
      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {
        pcVar2 = S_GET_NAME(ep->X_add_symbol);
        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);
        if (iVar3 == 0) {
          iVar3 = *(int *)(puVar1 + 0x53b4);
          goto LAB_0006c3a0;
        }
      }
      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {
        pcVar2 = S_GET_NAME(ep->X_add_symbol);
        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);
        if (iVar3 == 0) goto LAB_0006c39c;
      }
      uVar4 = 0x236e;
LAB_0006c424:
      do {
        (*(code *)PTR_as_abort_000b5cec)
                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);
LAB_0006c43c:
        uVar4 = 0x2362;
      } while( true );
    }
  }
LAB_0006c39c:
  iVar3 = *(int *)(puVar1 + 0x53b4);
LAB_0006c3a0:
                    /* WARNING: Subroutine does not return */
  macro_build(ep,PTR_s_operand_000b5e4c + -0x4df0,*(char **)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),
              regnum,0xc5);
}



void FUN_0006c2ec(undefined4 *param_1,undefined4 param_2)

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  
  puVar1 = PTR_DAT_000b5ca8;
  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;
  if (*(char *)(param_1 + 4) != '\x02') {
    if (*(char *)(param_1 + 4) != '\x03') {
      uVar2 = 0x2366;
      goto LAB_0006c424;
    }
    if (*(int *)PTR_mips_pic_000b63d4 != 0) {
      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {
        uVar2 = S_GET_NAME(*param_1);
        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);
        if (iVar3 == 0) {
          iVar3 = *(int *)(puVar1 + 0x53b4);
          goto LAB_0006c3a0;
        }
      }
      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {
        uVar2 = S_GET_NAME(*param_1);
        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);
        if (iVar3 == 0) goto LAB_0006c39c;
      }
      uVar2 = 0x236e;
LAB_0006c424:
      do {
        (*(code *)PTR_as_abort_000b5cec)
                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);
LAB_0006c43c:
        uVar2 = 0x2362;
      } while( true );
    }
  }
LAB_0006c39c:
  iVar3 = *(int *)(puVar1 + 0x53b4);
LAB_0006c3a0:
  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,
               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);
  return;
}


lui gp,0x5
addiu gp,gp,0x1994
addu gp,gp,t9
addiu sp,sp,-0x30
sw s0,0x24(sp)
lw s0,-0x7fd8(gp)
sw gp,0x18(sp)
sw ra,0x2c(sp)
addiu s0,s0,0x53a8
sw s1,0x28(sp)
lw v0,0x8(s0)
bne v0,zero,0x0006c43c
_li v1,0x2
lbu v0,0x10(a0)
or s1,a0,zero
beq v0,v1,0x0006c39c
_or a3,a1,zero
li v1,0x3
bne v0,v1,0x0006c444
_lw v0,-0x78ac(gp)
lw v0,0x0(v0)
beq v0,zero,0x0006c39c
_lw v0,-0x7fb0(gp)
lw v0,-0x93c(v0)
addiu v0,v0,-0x3
sltiu v0,v0,0x2
beq v0,zero,0x0006c3e8
_lw t9,-0x7c74(gp)
lw v0,-0x7fd8(gp)
lw v0,0x543c(v0)
bne v0,zero,0x0006c420
_lw t9,-0x7c74(gp)
lw a0,0x0(s1)
bal 0x0004e2f4
_sw a3,0x34(sp)
lw gp,0x18(sp)
or a0,v0,zero
lw a1,-0x7e34(gp)
lw t9,-0x74b8(gp)
jalr t9
_addiu a1,a1,-0x4cc4
lw gp,0x18(sp)
bne v0,zero,0x0006c420
_lw a3,0x34(sp)
lw v0,0xc(s0)
li a1,0xc5
lw v1,-0x7fd8(gp)
or a0,s1,zero
lw t9,-0x787c(gp)
sll v0,v0,0x2
sw a1,0x10(sp)
addiu v1,v1,0x3a2c
lw a1,-0x7e34(gp)
addiu t9,t9,-0x4874
addu v0,v0,v1
addiu a1,a1,-0x4df0
bal 0x0006b78c
_lw a2,0x0(v0)
lw ra,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x30
lw a0,0x0(a0)
bal 0x0004e2f4
_sw a1,0x34(sp)
lw gp,0x18(sp)
or a0,v0,zero
lw a1,-0x7e34(gp)
lw t9,-0x74b8(gp)
jalr t9
_addiu a1,a1,-0x5458
lw gp,0x18(sp)
bne v0,zero,0x0006c35c
_lw a3,0x34(sp)
b 0x0006c3a0
_lw v0,0xc(s0)
li a1,0x236e
lw a2,-0x7e34(gp)
lw a0,-0x7e34(gp)
lw t9,-0x7f94(gp)
addiu a2,a2,0x54
jalr t9
_addiu a0,a0,-0x5d34
b 0x0006c424
_li a1,0x2362
b 0x0006c424
_li a1,0x2366
(translation_unit "void FUN_0006c2ec(undefined4 *param_1,undefined4 param_2)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);\n  return;\n}\n\n" (function_definition "void FUN_0006c2ec(undefined4 *param_1,undefined4 param_2)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);\n  return;\n}" primitive_type (function_declarator "FUN_0006c2ec(undefined4 *param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "puVar1 = PTR_DAT_000b5ca8;" (assignment_expression "puVar1 = PTR_DAT_000b5ca8" identifier = identifier) ;) (if_statement "if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;" if (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b0)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53b0)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x53b0" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0006c43c;" goto statement_identifier ;)) (if_statement "if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }" if (parenthesized_expression "(*(char *)(param_1 + 4) != '\x02')" ( (binary_expression "*(char *)(param_1 + 4) != '\x02'" (pointer_expression "*(char *)(param_1 + 4)" * (cast_expression "(char *)(param_1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }" { (if_statement "if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 4) != '\x03')" ( (binary_expression "*(char *)(param_1 + 4) != '\x03'" (pointer_expression "*(char *)(param_1 + 4)" * (cast_expression "(char *)(param_1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }" { (expression_statement "uVar2 = 0x2366;" (assignment_expression "uVar2 = 0x2366" identifier = number_literal) ;) (goto_statement "goto LAB_0006c424;" goto statement_identifier ;) })) (if_statement "if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }" if (parenthesized_expression "(*(int *)PTR_mips_pic_000b63d4 != 0)" ( (binary_expression "*(int *)PTR_mips_pic_000b63d4 != 0" (pointer_expression "*(int *)PTR_mips_pic_000b63d4" * (cast_expression "(int *)PTR_mips_pic_000b63d4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }" { (if_statement "if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }" if (parenthesized_expression "(1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U)" ( (binary_expression "1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U" number_literal < (binary_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U" (pointer_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c)" * (cast_expression "(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_mips_opcodes_000b5cd0 + -0x93c)" ( (binary_expression "PTR_mips_opcodes_000b5cd0 + -0x93c" identifier + number_literal) )))) - number_literal)) )) (compound_statement "{\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }" { (expression_statement "uVar2 = S_GET_NAME(*param_1);" (assignment_expression "uVar2 = S_GET_NAME(*param_1)" identifier = (call_expression "S_GET_NAME(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458)" identifier = (call_expression "(*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458)" (parenthesized_expression "(*(code *)PTR_strcmp_000b67c8)" ( (pointer_expression "*(code *)PTR_strcmp_000b67c8" * (cast_expression "(code *)PTR_strcmp_000b67c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,PTR_s_operand_000b5e4c + -0x5458)" ( identifier , (binary_expression "PTR_s_operand_000b5e4c + -0x5458" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }" { (expression_statement "iVar3 = *(int *)(puVar1 + 0x53b4);" (assignment_expression "iVar3 = *(int *)(puVar1 + 0x53b4)" identifier = (pointer_expression "*(int *)(puVar1 + 0x53b4)" * (cast_expression "(int *)(puVar1 + 0x53b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x53b4)" ( (binary_expression "puVar1 + 0x53b4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006c3a0;" goto statement_identifier ;) })) })) (if_statement "if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }" if (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x543c)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x543c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x543c)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x543c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }" { (expression_statement "uVar2 = S_GET_NAME(*param_1);" (assignment_expression "uVar2 = S_GET_NAME(*param_1)" identifier = (call_expression "S_GET_NAME(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4)" identifier = (call_expression "(*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4)" (parenthesized_expression "(*(code *)PTR_strcmp_000b67c8)" ( (pointer_expression "*(code *)PTR_strcmp_000b67c8" * (cast_expression "(code *)PTR_strcmp_000b67c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,PTR_s_operand_000b5e4c + -0x4cc4)" ( identifier , (binary_expression "PTR_s_operand_000b5e4c + -0x4cc4" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0006c39c;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006c39c;" goto statement_identifier ;)) })) (expression_statement "uVar2 = 0x236e;" (assignment_expression "uVar2 = 0x236e" identifier = number_literal) ;) (labeled_statement "LAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );" statement_identifier : (do_statement "do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );" do (compound_statement "{\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      }" { (expression_statement "(*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);" (call_expression "(*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54)" (parenthesized_expression "(*(code *)PTR_as_abort_000b5cec)" ( (pointer_expression "*(code *)PTR_as_abort_000b5cec" * (cast_expression "(code *)PTR_as_abort_000b5cec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54)" ( (binary_expression "PTR_s_operand_000b5e4c + -0x5d34" identifier + number_literal) , identifier , (binary_expression "PTR_s_operand_000b5e4c + 0x54" identifier + number_literal) ))) ;) (labeled_statement "LAB_0006c43c:\n        uVar2 = 0x2362;" statement_identifier : (expression_statement "uVar2 = 0x2362;" (assignment_expression "uVar2 = 0x2362" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) })) (labeled_statement "LAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar1 + 0x53b4);" (assignment_expression "iVar3 = *(int *)(puVar1 + 0x53b4)" identifier = (pointer_expression "*(int *)(puVar1 + 0x53b4)" * (cast_expression "(int *)(puVar1 + 0x53b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x53b4)" ( (binary_expression "puVar1 + 0x53b4" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);" statement_identifier : (expression_statement "FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);" (call_expression "FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5)" identifier (argument_list "(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5)" ( identifier , (binary_expression "PTR_s_operand_000b5e4c + -0x4df0" identifier + number_literal) , (pointer_expression "*(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" * (cast_expression "(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" ( (binary_expression "PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c" (binary_expression "PTR_DAT_000b5ca8 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) + number_literal) )))) , identifier , number_literal ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void macro_build_lui(expressionS *ep,int regnum)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (ep->field_0x10 != '\x02') {\n    if (ep->field_0x10 != '\x03') {\n      uVar4 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar4 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar4 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n                    /* WARNING: Subroutine does not return */\n  macro_build(ep,PTR_s_operand_000b5e4c + -0x4df0,*(char **)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),\n              regnum,0xc5);\n}\n\n" (function_definition "void macro_build_lui(expressionS *ep,int regnum)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (ep->field_0x10 != '\x02') {\n    if (ep->field_0x10 != '\x03') {\n      uVar4 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar4 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar4 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n                    /* WARNING: Subroutine does not return */\n  macro_build(ep,PTR_s_operand_000b5e4c + -0x4df0,*(char **)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),\n              regnum,0xc5);\n}" primitive_type (function_declarator "macro_build_lui(expressionS *ep,int regnum)" identifier (parameter_list "(expressionS *ep,int regnum)" ( (parameter_declaration "expressionS *ep" type_identifier (pointer_declarator "*ep" * identifier)) , (parameter_declaration "int regnum" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (ep->field_0x10 != '\x02') {\n    if (ep->field_0x10 != '\x03') {\n      uVar4 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar4 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar4 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n                    /* WARNING: Subroutine does not return */\n  macro_build(ep,PTR_s_operand_000b5e4c + -0x4df0,*(char **)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),\n              regnum,0xc5);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (expression_statement "puVar1 = PTR_DAT_000b5ca8;" (assignment_expression "puVar1 = PTR_DAT_000b5ca8" identifier = identifier) ;) (if_statement "if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;" if (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b0)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53b0)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x53b0" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0006c43c;" goto statement_identifier ;)) (if_statement "if (ep->field_0x10 != '\x02') {\n    if (ep->field_0x10 != '\x03') {\n      uVar4 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar4 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar4 = 0x2362;\n      } while( true );\n    }\n  }" if (parenthesized_expression "(ep->field_0x10 != '\x02')" ( (binary_expression "ep->field_0x10 != '\x02'" (field_expression "ep->field_0x10" identifier -> field_identifier) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    if (ep->field_0x10 != '\x03') {\n      uVar4 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar4 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar4 = 0x2362;\n      } while( true );\n    }\n  }" { (if_statement "if (ep->field_0x10 != '\x03') {\n      uVar4 = 0x2366;\n      goto LAB_0006c424;\n    }" if (parenthesized_expression "(ep->field_0x10 != '\x03')" ( (binary_expression "ep->field_0x10 != '\x03'" (field_expression "ep->field_0x10" identifier -> field_identifier) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = 0x2366;\n      goto LAB_0006c424;\n    }" { (expression_statement "uVar4 = 0x2366;" (assignment_expression "uVar4 = 0x2366" identifier = number_literal) ;) (goto_statement "goto LAB_0006c424;" goto statement_identifier ;) })) (if_statement "if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar4 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar4 = 0x2362;\n      } while( true );\n    }" if (parenthesized_expression "(*(int *)PTR_mips_pic_000b63d4 != 0)" ( (binary_expression "*(int *)PTR_mips_pic_000b63d4 != 0" (pointer_expression "*(int *)PTR_mips_pic_000b63d4" * (cast_expression "(int *)PTR_mips_pic_000b63d4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar4 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar4 = 0x2362;\n      } while( true );\n    }" { (if_statement "if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }" if (parenthesized_expression "(1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U)" ( (binary_expression "1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U" number_literal < (binary_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U" (pointer_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c)" * (cast_expression "(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_mips_opcodes_000b5cd0 + -0x93c)" ( (binary_expression "PTR_mips_opcodes_000b5cd0 + -0x93c" identifier + number_literal) )))) - number_literal)) )) (compound_statement "{\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }" { (expression_statement "pcVar2 = S_GET_NAME(ep->X_add_symbol);" (assignment_expression "pcVar2 = S_GET_NAME(ep->X_add_symbol)" identifier = (call_expression "S_GET_NAME(ep->X_add_symbol)" identifier (argument_list "(ep->X_add_symbol)" ( (field_expression "ep->X_add_symbol" identifier -> field_identifier) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458)" identifier = (call_expression "(*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x5458)" (parenthesized_expression "(*(code *)PTR_strcmp_000b67c8)" ( (pointer_expression "*(code *)PTR_strcmp_000b67c8" * (cast_expression "(code *)PTR_strcmp_000b67c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar2,PTR_s_operand_000b5e4c + -0x5458)" ( identifier , (binary_expression "PTR_s_operand_000b5e4c + -0x5458" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }" { (expression_statement "iVar3 = *(int *)(puVar1 + 0x53b4);" (assignment_expression "iVar3 = *(int *)(puVar1 + 0x53b4)" identifier = (pointer_expression "*(int *)(puVar1 + 0x53b4)" * (cast_expression "(int *)(puVar1 + 0x53b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x53b4)" ( (binary_expression "puVar1 + 0x53b4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006c3a0;" goto statement_identifier ;) })) })) (if_statement "if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }" if (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x543c)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x543c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x543c)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x543c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        pcVar2 = S_GET_NAME(ep->X_add_symbol);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }" { (expression_statement "pcVar2 = S_GET_NAME(ep->X_add_symbol);" (assignment_expression "pcVar2 = S_GET_NAME(ep->X_add_symbol)" identifier = (call_expression "S_GET_NAME(ep->X_add_symbol)" identifier (argument_list "(ep->X_add_symbol)" ( (field_expression "ep->X_add_symbol" identifier -> field_identifier) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4)" identifier = (call_expression "(*(code *)PTR_strcmp_000b67c8)(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4)" (parenthesized_expression "(*(code *)PTR_strcmp_000b67c8)" ( (pointer_expression "*(code *)PTR_strcmp_000b67c8" * (cast_expression "(code *)PTR_strcmp_000b67c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar2,PTR_s_operand_000b5e4c + -0x4cc4)" ( identifier , (binary_expression "PTR_s_operand_000b5e4c + -0x4cc4" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0006c39c;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006c39c;" goto statement_identifier ;)) })) (expression_statement "uVar4 = 0x236e;" (assignment_expression "uVar4 = 0x236e" identifier = number_literal) ;) (labeled_statement "LAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar4 = 0x2362;\n      } while( true );" statement_identifier : (do_statement "do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar4 = 0x2362;\n      } while( true );" do (compound_statement "{\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar4 = 0x2362;\n      }" { (expression_statement "(*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54);" (call_expression "(*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54)" (parenthesized_expression "(*(code *)PTR_as_abort_000b5cec)" ( (pointer_expression "*(code *)PTR_as_abort_000b5cec" * (cast_expression "(code *)PTR_as_abort_000b5cec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_operand_000b5e4c + -0x5d34,uVar4,PTR_s_operand_000b5e4c + 0x54)" ( (binary_expression "PTR_s_operand_000b5e4c + -0x5d34" identifier + number_literal) , identifier , (binary_expression "PTR_s_operand_000b5e4c + 0x54" identifier + number_literal) ))) ;) (labeled_statement "LAB_0006c43c:\n        uVar4 = 0x2362;" statement_identifier : (expression_statement "uVar4 = 0x2362;" (assignment_expression "uVar4 = 0x2362" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) })) (labeled_statement "LAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar1 + 0x53b4);" (assignment_expression "iVar3 = *(int *)(puVar1 + 0x53b4)" identifier = (pointer_expression "*(int *)(puVar1 + 0x53b4)" * (cast_expression "(int *)(puVar1 + 0x53b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x53b4)" ( (binary_expression "puVar1 + 0x53b4" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0006c3a0:\n                    /* WARNING: Subroutine does not return */\n  macro_build(ep,PTR_s_operand_000b5e4c + -0x4df0,*(char **)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),\n              regnum,0xc5);" statement_identifier : comment (expression_statement "macro_build(ep,PTR_s_operand_000b5e4c + -0x4df0,*(char **)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),\n              regnum,0xc5);" (call_expression "macro_build(ep,PTR_s_operand_000b5e4c + -0x4df0,*(char **)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),\n              regnum,0xc5)" identifier (argument_list "(ep,PTR_s_operand_000b5e4c + -0x4df0,*(char **)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),\n              regnum,0xc5)" ( identifier , (binary_expression "PTR_s_operand_000b5e4c + -0x4df0" identifier + number_literal) , (pointer_expression "*(char **)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" * (cast_expression "(char **)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" ( (binary_expression "PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c" (binary_expression "PTR_DAT_000b5ca8 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) + number_literal) )))) , identifier , number_literal ))) ;)) })))
(translation_unit "void FUN_0006c2ec(undefined4 *param_1,undefined4 param_2)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);\n  return;\n}\n\n" (function_definition "void FUN_0006c2ec(undefined4 *param_1,undefined4 param_2)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);\n  return;\n}" primitive_type (function_declarator "FUN_0006c2ec(undefined4 *param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "puVar1 = PTR_DAT_000b5ca8;" (assignment_expression "puVar1 = PTR_DAT_000b5ca8" identifier = identifier) ;) (if_statement "if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;" if (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b0)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53b0)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x53b0" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0006c43c;" goto statement_identifier ;)) (if_statement "if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }" if (parenthesized_expression "(*(char *)(param_1 + 4) != '\x02')" ( (binary_expression "*(char *)(param_1 + 4) != '\x02'" (pointer_expression "*(char *)(param_1 + 4)" * (cast_expression "(char *)(param_1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }" { (if_statement "if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 4) != '\x03')" ( (binary_expression "*(char *)(param_1 + 4) != '\x03'" (pointer_expression "*(char *)(param_1 + 4)" * (cast_expression "(char *)(param_1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }" { (expression_statement "uVar2 = 0x2366;" (assignment_expression "uVar2 = 0x2366" identifier = number_literal) ;) (goto_statement "goto LAB_0006c424;" goto statement_identifier ;) })) (if_statement "if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }" if (parenthesized_expression "(*(int *)PTR_mips_pic_000b63d4 != 0)" ( (binary_expression "*(int *)PTR_mips_pic_000b63d4 != 0" (pointer_expression "*(int *)PTR_mips_pic_000b63d4" * (cast_expression "(int *)PTR_mips_pic_000b63d4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }" { (if_statement "if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }" if (parenthesized_expression "(1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U)" ( (binary_expression "1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U" number_literal < (binary_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U" (pointer_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c)" * (cast_expression "(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_mips_opcodes_000b5cd0 + -0x93c)" ( (binary_expression "PTR_mips_opcodes_000b5cd0 + -0x93c" identifier + number_literal) )))) - number_literal)) )) (compound_statement "{\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }" { (expression_statement "uVar2 = S_GET_NAME(*param_1);" (assignment_expression "uVar2 = S_GET_NAME(*param_1)" identifier = (call_expression "S_GET_NAME(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458)" identifier = (call_expression "(*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458)" (parenthesized_expression "(*(code *)PTR_strcmp_000b67c8)" ( (pointer_expression "*(code *)PTR_strcmp_000b67c8" * (cast_expression "(code *)PTR_strcmp_000b67c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,PTR_s_operand_000b5e4c + -0x5458)" ( identifier , (binary_expression "PTR_s_operand_000b5e4c + -0x5458" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }" { (expression_statement "iVar3 = *(int *)(puVar1 + 0x53b4);" (assignment_expression "iVar3 = *(int *)(puVar1 + 0x53b4)" identifier = (pointer_expression "*(int *)(puVar1 + 0x53b4)" * (cast_expression "(int *)(puVar1 + 0x53b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x53b4)" ( (binary_expression "puVar1 + 0x53b4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006c3a0;" goto statement_identifier ;) })) })) (if_statement "if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }" if (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x543c)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x543c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x543c)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x543c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }" { (expression_statement "uVar2 = S_GET_NAME(*param_1);" (assignment_expression "uVar2 = S_GET_NAME(*param_1)" identifier = (call_expression "S_GET_NAME(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4)" identifier = (call_expression "(*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4)" (parenthesized_expression "(*(code *)PTR_strcmp_000b67c8)" ( (pointer_expression "*(code *)PTR_strcmp_000b67c8" * (cast_expression "(code *)PTR_strcmp_000b67c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,PTR_s_operand_000b5e4c + -0x4cc4)" ( identifier , (binary_expression "PTR_s_operand_000b5e4c + -0x4cc4" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0006c39c;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006c39c;" goto statement_identifier ;)) })) (expression_statement "uVar2 = 0x236e;" (assignment_expression "uVar2 = 0x236e" identifier = number_literal) ;) (labeled_statement "LAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );" statement_identifier : (do_statement "do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );" do (compound_statement "{\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      }" { (expression_statement "(*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);" (call_expression "(*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54)" (parenthesized_expression "(*(code *)PTR_as_abort_000b5cec)" ( (pointer_expression "*(code *)PTR_as_abort_000b5cec" * (cast_expression "(code *)PTR_as_abort_000b5cec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54)" ( (binary_expression "PTR_s_operand_000b5e4c + -0x5d34" identifier + number_literal) , identifier , (binary_expression "PTR_s_operand_000b5e4c + 0x54" identifier + number_literal) ))) ;) (labeled_statement "LAB_0006c43c:\n        uVar2 = 0x2362;" statement_identifier : (expression_statement "uVar2 = 0x2362;" (assignment_expression "uVar2 = 0x2362" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) })) (labeled_statement "LAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar1 + 0x53b4);" (assignment_expression "iVar3 = *(int *)(puVar1 + 0x53b4)" identifier = (pointer_expression "*(int *)(puVar1 + 0x53b4)" * (cast_expression "(int *)(puVar1 + 0x53b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x53b4)" ( (binary_expression "puVar1 + 0x53b4" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);" statement_identifier : (expression_statement "FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);" (call_expression "FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5)" identifier (argument_list "(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5)" ( identifier , (binary_expression "PTR_s_operand_000b5e4c + -0x4df0" identifier + number_literal) , (pointer_expression "*(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" * (cast_expression "(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" ( (binary_expression "PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c" (binary_expression "PTR_DAT_000b5ca8 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) + number_literal) )))) , identifier , number_literal ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) while (parenthesized_expression ( BOOL )) ;)) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) , IDENT , LIT ))) ;)) (return_statement return ;) })))
(function_definition "void FUN_0006c2ec(undefined4 *param_1,undefined4 param_2)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0006c2ec(undefined4 *param_1,undefined4 param_2)" (identifier "FUN_0006c2ec") (parameter_list "(undefined4 *param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  puVar1 = PTR_DAT_000b5ca8;\n  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;\n  if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }\nLAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);\nLAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "puVar1 = PTR_DAT_000b5ca8;" (assignment_expression "puVar1 = PTR_DAT_000b5ca8" (identifier "puVar1") (= "=") (identifier "PTR_DAT_000b5ca8")) (; ";")) (if_statement "if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;" (if "if") (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b0)" (* "*") (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53b0)" (( "(") (binary_expression "PTR_DAT_000b5ca8 + 0x53b0" (identifier "PTR_DAT_000b5ca8") (+ "+") (number_literal "0x53b0")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006c43c;" (goto "goto") (statement_identifier "LAB_0006c43c") (; ";"))) (if_statement "if (*(char *)(param_1 + 4) != '\x02') {\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 4) != '\x02')" (( "(") (binary_expression "*(char *)(param_1 + 4) != '\x02'" (pointer_expression "*(char *)(param_1 + 4)" (* "*") (cast_expression "(char *)(param_1 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n    if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }\n    if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }\n  }" ({ "{") (if_statement "if (*(char *)(param_1 + 4) != '\x03') {\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 4) != '\x03')" (( "(") (binary_expression "*(char *)(param_1 + 4) != '\x03'" (pointer_expression "*(char *)(param_1 + 4)" (* "*") (cast_expression "(char *)(param_1 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n      uVar2 = 0x2366;\n      goto LAB_0006c424;\n    }" ({ "{") (expression_statement "uVar2 = 0x2366;" (assignment_expression "uVar2 = 0x2366" (identifier "uVar2") (= "=") (number_literal "0x2366")) (; ";")) (goto_statement "goto LAB_0006c424;" (goto "goto") (statement_identifier "LAB_0006c424") (; ";")) (} "}"))) (if_statement "if (*(int *)PTR_mips_pic_000b63d4 != 0) {\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(*(int *)PTR_mips_pic_000b63d4 != 0)" (( "(") (binary_expression "*(int *)PTR_mips_pic_000b63d4 != 0" (pointer_expression "*(int *)PTR_mips_pic_000b63d4" (* "*") (cast_expression "(int *)PTR_mips_pic_000b63d4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mips_pic_000b63d4"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }\n      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }\n      uVar2 = 0x236e;\nLAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );\n    }" ({ "{") (if_statement "if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }" (if "if") (parenthesized_expression "(1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U)" (( "(") (binary_expression "1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U" (number_literal "1") (< "<") (binary_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U" (pointer_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c)" (* "*") (cast_expression "(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_mips_opcodes_000b5cd0 + -0x93c)" (( "(") (binary_expression "PTR_mips_opcodes_000b5cd0 + -0x93c" (identifier "PTR_mips_opcodes_000b5cd0") (+ "+") (number_literal "-0x93c")) () ")")))) (- "-") (number_literal "3U"))) () ")")) (compound_statement "{\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);\n        if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }\n      }" ({ "{") (expression_statement "uVar2 = S_GET_NAME(*param_1);" (assignment_expression "uVar2 = S_GET_NAME(*param_1)" (identifier "uVar2") (= "=") (call_expression "S_GET_NAME(*param_1)" (identifier "S_GET_NAME") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458)" (parenthesized_expression "(*(code *)PTR_strcmp_000b67c8)" (( "(") (pointer_expression "*(code *)PTR_strcmp_000b67c8" (* "*") (cast_expression "(code *)PTR_strcmp_000b67c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_000b67c8"))) () ")")) (argument_list "(uVar2,PTR_s_operand_000b5e4c + -0x5458)" (( "(") (identifier "uVar2") (, ",") (binary_expression "PTR_s_operand_000b5e4c + -0x5458" (identifier "PTR_s_operand_000b5e4c") (+ "+") (number_literal "-0x5458")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar3 = *(int *)(puVar1 + 0x53b4);\n          goto LAB_0006c3a0;\n        }" ({ "{") (expression_statement "iVar3 = *(int *)(puVar1 + 0x53b4);" (assignment_expression "iVar3 = *(int *)(puVar1 + 0x53b4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar1 + 0x53b4)" (* "*") (cast_expression "(int *)(puVar1 + 0x53b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x53b4)" (( "(") (binary_expression "puVar1 + 0x53b4" (identifier "puVar1") (+ "+") (number_literal "0x53b4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0006c3a0;" (goto "goto") (statement_identifier "LAB_0006c3a0") (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }" (if "if") (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x543c)" (* "*") (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x543c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x543c)" (( "(") (binary_expression "PTR_DAT_000b5ca8 + 0x543c" (identifier "PTR_DAT_000b5ca8") (+ "+") (number_literal "0x543c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar2 = S_GET_NAME(*param_1);\n        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);\n        if (iVar3 == 0) goto LAB_0006c39c;\n      }" ({ "{") (expression_statement "uVar2 = S_GET_NAME(*param_1);" (assignment_expression "uVar2 = S_GET_NAME(*param_1)" (identifier "uVar2") (= "=") (call_expression "S_GET_NAME(*param_1)" (identifier "S_GET_NAME") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4)" (parenthesized_expression "(*(code *)PTR_strcmp_000b67c8)" (( "(") (pointer_expression "*(code *)PTR_strcmp_000b67c8" (* "*") (cast_expression "(code *)PTR_strcmp_000b67c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_000b67c8"))) () ")")) (argument_list "(uVar2,PTR_s_operand_000b5e4c + -0x4cc4)" (( "(") (identifier "uVar2") (, ",") (binary_expression "PTR_s_operand_000b5e4c + -0x4cc4" (identifier "PTR_s_operand_000b5e4c") (+ "+") (number_literal "-0x4cc4")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0006c39c;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006c39c;" (goto "goto") (statement_identifier "LAB_0006c39c") (; ";"))) (} "}"))) (expression_statement "uVar2 = 0x236e;" (assignment_expression "uVar2 = 0x236e" (identifier "uVar2") (= "=") (number_literal "0x236e")) (; ";")) (labeled_statement "LAB_0006c424:\n      do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );" (statement_identifier "LAB_0006c424") (: ":") (do_statement "do {\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      } while( true );" (do "do") (compound_statement "{\n        (*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);\nLAB_0006c43c:\n        uVar2 = 0x2362;\n      }" ({ "{") (expression_statement "(*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);" (call_expression "(*(code *)PTR_as_abort_000b5cec)\n                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54)" (parenthesized_expression "(*(code *)PTR_as_abort_000b5cec)" (( "(") (pointer_expression "*(code *)PTR_as_abort_000b5cec" (* "*") (cast_expression "(code *)PTR_as_abort_000b5cec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_as_abort_000b5cec"))) () ")")) (argument_list "(PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54)" (( "(") (binary_expression "PTR_s_operand_000b5e4c + -0x5d34" (identifier "PTR_s_operand_000b5e4c") (+ "+") (number_literal "-0x5d34")) (, ",") (identifier "uVar2") (, ",") (binary_expression "PTR_s_operand_000b5e4c + 0x54" (identifier "PTR_s_operand_000b5e4c") (+ "+") (number_literal "0x54")) () ")"))) (; ";")) (labeled_statement "LAB_0006c43c:\n        uVar2 = 0x2362;" (statement_identifier "LAB_0006c43c") (: ":") (expression_statement "uVar2 = 0x2362;" (assignment_expression "uVar2 = 0x2362" (identifier "uVar2") (= "=") (number_literal "0x2362")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0006c39c:\n  iVar3 = *(int *)(puVar1 + 0x53b4);" (statement_identifier "LAB_0006c39c") (: ":") (expression_statement "iVar3 = *(int *)(puVar1 + 0x53b4);" (assignment_expression "iVar3 = *(int *)(puVar1 + 0x53b4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar1 + 0x53b4)" (* "*") (cast_expression "(int *)(puVar1 + 0x53b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x53b4)" (( "(") (binary_expression "puVar1 + 0x53b4" (identifier "puVar1") (+ "+") (number_literal "0x53b4")) () ")"))))) (; ";"))) (labeled_statement "LAB_0006c3a0:\n  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);" (statement_identifier "LAB_0006c3a0") (: ":") (expression_statement "FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);" (call_expression "FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5)" (identifier "FUN_0006b78c") (argument_list "(param_1,PTR_s_operand_000b5e4c + -0x4df0,\n               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_operand_000b5e4c + -0x4df0" (identifier "PTR_s_operand_000b5e4c") (+ "+") (number_literal "-0x4df0")) (, ",") (pointer_expression "*(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c)" (( "(") (binary_expression "PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c" (binary_expression "PTR_DAT_000b5ca8 + iVar3 * 4" (identifier "PTR_DAT_000b5ca8") (+ "+") (binary_expression "iVar3 * 4" (identifier "iVar3") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x3a2c")) () ")")))) (, ",") (identifier "param_2") (, ",") (number_literal "0xc5") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *ep,int regnum)

{
  type_2 *var_6;
  char *pcVar2;
  int var_5;
  type_3 uVar4;
  
  var_6 = var_1;
  if (*(int *)(var_1 + 0x53b0) != 0) goto LAB_0006c43c;
  if (ep->field_0x10 != '\x02') {
    if (ep->field_0x10 != '\x03') {
      uVar4 = 0x2366;
      goto LAB_0006c424;
    }
    if (*(int *)PTR_mips_pic_000b63d4 != 0) {
      if (1 < *(int *)(var_2 + -0x93c) - 3U) {
        pcVar2 = var_3(ep->X_add_symbol);
        var_5 = (*(type_4 *)PTR_strcmp_000b67c8)(pcVar2,var_4 + -0x5458);
        if (var_5 == 0) {
          var_5 = *(int *)(var_6 + 0x53b4);
          goto LAB_0006c3a0;
        }
      }
      if (*(int *)(var_1 + 0x543c) == 0) {
        pcVar2 = var_3(ep->X_add_symbol);
        var_5 = (*(type_4 *)PTR_strcmp_000b67c8)(pcVar2,var_4 + -0x4cc4);
        if (var_5 == 0) goto LAB_0006c39c;
      }
      uVar4 = 0x236e;
LAB_0006c424:
      do {
        (*(type_4 *)PTR_as_abort_000b5cec)
                  (var_4 + -0x5d34,uVar4,var_4 + 0x54);
LAB_0006c43c:
        uVar4 = 0x2362;
      } while( true );
    }
  }
LAB_0006c39c:
  var_5 = *(int *)(var_6 + 0x53b4);
LAB_0006c3a0:
                    /* WARNING: Subroutine does not return */
  var_7(ep,var_4 + -0x4df0,*(char **)(var_1 + var_5 * 4 + 0x3a2c),
              regnum,0xc5);
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (true)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (identifier) (number_literal))))) (return_statement))))

void MASKED(undefined4 *param_1,undefined4 param_2)

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  
  puVar1 = PTR_DAT_000b5ca8;
  if (*(int *)(PTR_DAT_000b5ca8 + 0x53b0) != 0) goto LAB_0006c43c;
  if (*(char *)(param_1 + 4) != '\x02') {
    if (*(char *)(param_1 + 4) != '\x03') {
      uVar2 = 0x2366;
      goto LAB_0006c424;
    }
    if (*(int *)PTR_mips_pic_000b63d4 != 0) {
      if (1 < *(int *)(PTR_mips_opcodes_000b5cd0 + -0x93c) - 3U) {
        uVar2 = S_GET_NAME(*param_1);
        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x5458);
        if (iVar3 == 0) {
          iVar3 = *(int *)(puVar1 + 0x53b4);
          goto LAB_0006c3a0;
        }
      }
      if (*(int *)(PTR_DAT_000b5ca8 + 0x543c) == 0) {
        uVar2 = S_GET_NAME(*param_1);
        iVar3 = (*(code *)PTR_strcmp_000b67c8)(uVar2,PTR_s_operand_000b5e4c + -0x4cc4);
        if (iVar3 == 0) goto LAB_0006c39c;
      }
      uVar2 = 0x236e;
LAB_0006c424:
      do {
        (*(code *)PTR_as_abort_000b5cec)
                  (PTR_s_operand_000b5e4c + -0x5d34,uVar2,PTR_s_operand_000b5e4c + 0x54);
LAB_0006c43c:
        uVar2 = 0x2362;
      } while( true );
    }
  }
LAB_0006c39c:
  iVar3 = *(int *)(puVar1 + 0x53b4);
LAB_0006c3a0:
  FUN_0006b78c(param_1,PTR_s_operand_000b5e4c + -0x4df0,
               *(undefined4 *)(PTR_DAT_000b5ca8 + iVar3 * 4 + 0x3a2c),param_2,0xc5);
  return;
}

