
void make_command_string_internal(COMMAND *command)

{
  command_type e;
  char s [3];
  
  if (command == (COMMAND *)0x0) {
                    /* WARNING: Subroutine does not return */
    cprintf(PTR_DAT_001445ac + -0x6800);
  }
  if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {
    indent(*(int *)(PTR_data_start_00144568 + 0x7c18));
  }
  else {
    *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;
  }
  if ((command->flags & 0x80U) != 0) {
                    /* WARNING: Subroutine does not return */
    cprintf(PTR_LAB_00144578 + 0x6708);
  }
  if ((command->flags & 4U) != 0) {
                    /* WARNING: Subroutine does not return */
    cprintf(PTR_LAB_00144578 + 0x64fc);
  }
  e = command->type;
  if (e < (cm_coproc|cm_case)) {
                    /* WARNING: Could not emulate address calculation at 0x00046d8c */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604))();
    return;
  }
  command_error(PTR_LAB_00144578 + 0x6790,1,e,0);
  FUN_00046e5c();
  return;
}



int FUN_00046cf0(uint *param_1)

{
  int iVar1;
  uint uVar2;
  undefined *puVar3;
  
  puVar3 = PTR___stack_chk_guard_001464dc;
  iVar1 = *(int *)PTR___stack_chk_guard_001464dc;
  if (param_1 == (uint *)0x0) {
    FUN_00044708(PTR_DAT_001445ac + -0x6800);
  }
  else {
    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {
      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));
    }
    else {
      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;
    }
    uVar2 = param_1[1];
    if ((uVar2 & 0x80) != 0) {
      FUN_00044708(PTR_LAB_00144578 + 0x6708);
      uVar2 = param_1[1];
      if ((uVar2 & 0x100) != 0) {
        FUN_00044708(PTR_LAB_00144578 + 0x6710);
        uVar2 = param_1[1];
      }
    }
    if ((uVar2 & 4) != 0) {
      FUN_00044708(PTR_LAB_00144578 + 0x64fc);
    }
    uVar2 = *param_1;
    if (uVar2 < 0xf) {
                    /* WARNING: Could not emulate address calculation at 0x00046d8c */
                    /* WARNING: Treating indirect jump as call */
      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();
      return iVar1;
    }
    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);
    if (param_1[3] != 0) {
      FUN_00044708(PTR_LAB_00144578 + 0x7b04);
      FUN_000457d8(param_1[3]);
    }
  }
  if (iVar1 == *(int *)puVar3) {
    return *(int *)puVar3;
  }
  puVar3 = PTR___stack_chk_fail_00146488;
  (*(code *)PTR___stack_chk_fail_00146488)();
  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;
  **(undefined4 **)(puVar3 + 0xfd0b4) = 0;
  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;
  FUN_00046cf0();
  return **(int **)(puVar3 + 0xfd0b0);
}


lui gp,0x10
addiu gp,gp,0x5850
addu gp,gp,t9
addiu sp,sp,-0x68
sw s2,0x48(sp)
lw s2,-0x6064(gp)
sw gp,0x10(sp)
sw ra,0x64(sp)
sw s8,0x60(sp)
sw s7,0x5c(sp)
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s4,0x50(sp)
sw s3,0x4c(sp)
sw s1,0x44(sp)
sw s0,0x40(sp)
lw v0,0x0(s2)
sw v0,0x3c(sp)
beq a0,zero,0x000477bc
_lw t9,-0x7b54(gp)
lw s4,-0x7fd8(gp)
lw v0,0x7c10(s4)
beq v0,zero,0x00046dfc
_or s0,a0,zero
addiu v0,v0,-0x1
sw v0,0x7c10(s4)
lw v0,0x4(s0)
andi v1,v0,0x80
bne v1,zero,0x00046dbc
_lw s1,-0x7b54(gp)
andi v0,v0,0x4
bne v0,zero,0x00046da0
_lw s1,-0x7b54(gp)
lw a2,0x0(s0)
sltiu v0,a2,0xf
beq v0,zero,0x000477d4
_sll v0,a2,0x2
lw a2,-0x7fc8(gp)
addiu a2,a2,0x6810
addu a2,a2,v0
lw v0,0x0(a2)
addu v0,v0,gp
jr v0
_nop
lw a0,-0x7fc8(gp)
addiu s1,s1,0x4708
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,0x64fc
b 0x00046d74
_lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
addiu s1,s1,0x4708
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,0x6708
lw v0,0x4(s0)
andi v1,v0,0x100
beq v1,zero,0x00046d68
_lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,0x6710
lw gp,0x10(sp)
b 0x00046d68
_lw v0,0x4(s0)
lw v0,-0x7fd8(gp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4aac
bal 0x00044aac
_lw a0,0x7c18(v0)
b 0x00046d58
_lw gp,0x10(sp)
lw v0,0x10(s0)
lw a0,-0x7fc8(gp)
lw t9,-0x7b54(gp)
lw a1,0x4(v0)
addiu t9,t9,0x4708
bal 0x00044708
_addiu a0,a0,0x6784
lw gp,0x10(sp)
lw v1,0x10(s0)
lw v0,0x7c10(s4)
lw t9,-0x7b54(gp)
addiu v0,v0,0x1
lw a0,0x8(v1)
addiu t9,t9,0x6cf0
bal 0x00046cf0
_sw v0,0x7c10(s4)
lw gp,0x10(sp)
lw v0,0xc(s0)
beq v0,zero,0x00046e90
_lw t9,-0x7b54(gp)
lw a0,-0x7fc8(gp)
addiu t9,t9,0x4708
bal 0x00044708
_addiu a0,a0,0x7b04
lw gp,0x10(sp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x57d8
bal 0x000457d8
_lw a0,0xc(s0)
lw gp,0x10(sp)
lw v1,0x3c(sp)
lw v0,0x0(s2)
bne v1,v0,0x00047a70
_lw ra,0x64(sp)
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
lw s1,0x10(s0)
lw s3,-0x7fd8(gp)
lw s6,-0x7fd8(gp)
lw t9,-0x79e0(gp)
or a0,s1,zero
jalr t9
_nop
lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4708
bal 0x00044708
_addiu a0,a0,0x47e4
lw gp,0x10(sp)
lw s4,-0x7b54(gp)
lw a0,-0x7fc8(gp)
addiu s4,s4,0x4be4
or t9,s4,zero
bal 0x00044be4
_addiu a0,a0,0x6714
lw gp,0x10(sp)
lw v0,0x7c18(s3)
lw v1,0x224(s6)
lw a0,0x10(s1)
lw t9,-0x7b54(gp)
addu v0,v0,v1
addiu t9,t9,0x6cf0
bal 0x00046cf0
_sw v0,0x7c18(s3)
lw gp,0x10(sp)
lw v0,-0x7fd8(gp)
lw v0,0x7c04(v0)
beq v0,zero,0x00046f68
_lw a0,-0x7f94(gp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4d2c
bal 0x00044d2c
_addiu a0,a0,-0x6800
lw gp,0x10(sp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4b8c
bal 0x00044b8c
_nop
or t9,s4,zero
lw gp,0x10(sp)
lw v0,0x7c18(s3)
lw v1,0x224(s6)
lw a0,-0x7f94(gp)
subu v0,v0,v1
addiu a0,a0,-0x7898
bal 0x00044be4
_sw v0,0x7c18(s3)
b 0x00046e5c
_lw gp,0x10(sp)
lw s3,0x10(s0)
lw s1,-0x7b54(gp)
lw a0,-0x7fc8(gp)
lw v0,0x8(s3)
addiu s1,s1,0x4708
addiu a0,a0,0x66c4
or t9,s1,zero
bal 0x00044708
_lw a1,0x0(v0)
lw s5,0xc(s3)
beq s5,zero,0x00047810
_lw gp,0x10(sp)
lw v0,-0x7b54(gp)
lw s3,-0x7fd8(gp)
lw s6,-0x7fd8(gp)
addiu v0,v0,0x6cf0
lw s4,-0x7b54(gp)
lw s8,-0x7f94(gp)
sw v0,0x18(sp)
lw v0,-0x7b54(gp)
addiu s4,s4,0x4be4
lw v1,0x7c18(s3)
addiu s8,s8,-0x6800
lw a0,0x224(s6)
addiu v0,v0,0x4a04
lw s7,-0x7fd8(gp)
sw v0,0x24(sp)
addu v1,v1,a0
lw v0,-0x7b54(gp)
sw v1,0x7c18(s3)
addiu v0,v0,0x4d2c
sw v0,0x28(sp)
lw v0,-0x7fc8(gp)
sw v0,0x1c(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,0x4be4
sw v0,0x2c(sp)
lw v0,-0x7f94(gp)
sw v0,0x20(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,0x4be8
sw v0,0x34(sp)
lw v0,-0x7fc8(gp)
b 0x00047074
_sw v0,0x30(sp)
or t9,s4,zero
bal 0x00044be4
_addiu a0,v0,0x4bec
lw gp,0x10(sp)
lw s5,0x0(s5)
beq s5,zero,0x000479bc
_lw v0,0x7c18(s3)
or t9,s4,zero
bal 0x00044be4
_or a0,s8,zero
lw v0,0x1c(sp)
lw a0,0x4(s5)
lw t9,0x24(sp)
jalr t9
_addiu a1,v0,0x6720
or t9,s1,zero
lw v0,0x20(sp)
bal 0x00044708
_addiu a0,v0,-0x6150
lw v0,0x7c18(s3)
lw v1,0x224(s6)
lw a0,0x8(s5)
lw t9,0x18(sp)
addu v0,v0,v1
jalr t9
_sw v0,0x7c18(s3)
lw v0,0x7c18(s3)
lw a0,0x224(s6)
lw v1,0x7c04(s7)
subu v0,v0,a0
beq v1,zero,0x000470e4
_sw v0,0x7c18(s3)
lw t9,0x28(sp)
jalr t9
_or a0,s8,zero
lw v0,0xc(s5)
andi v1,v0,0x1
bne v1,zero,0x00047924
_andi v0,v0,0x2
bne v0,zero,0x00047058
_lw v0,0x30(sp)
or t9,s4,zero
bal 0x00044be4
_lw a0,0x2c(sp)
b 0x00047068
_lw gp,0x10(sp)
lw a0,0x10(s0)
lw a2,-0x7fc8(gp)
addiu a1,a0,0x8
addiu a2,a2,0x4c2c
lw t9,-0x7b54(gp)
addiu t9,t9,0x7b34
bal 0x00047b34
_addiu a0,a0,0x4
b 0x00046e5c
_lw gp,0x10(sp)
lw s8,-0x7b54(gp)
lw a0,-0x7fc8(gp)
lw s3,-0x7fd8(gp)
addiu s8,s8,0x4708
lw s1,0x10(s0)
lw s6,-0x7fd8(gp)
or t9,s8,zero
lw s7,-0x7fd8(gp)
bal 0x00044708
_addiu a0,a0,0x6724
lw gp,0x10(sp)
lw v1,0x7c10(s4)
lw a0,0x4(s1)
lw v0,-0x7b54(gp)
addiu v1,v1,0x1
sw v1,0x7c10(s4)
addiu t9,v0,0x6cf0
bal 0x00046cf0
_sw t9,0x18(sp)
lw gp,0x10(sp)
lw s5,-0x7b54(gp)
addiu s5,s5,0x4b8c
or t9,s5,zero
bal 0x00044b8c
_nop
or t9,s8,zero
lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
bal 0x00044708
_addiu a0,a0,0x6728
lw v0,0x7c18(s3)
lw v1,0x224(s6)
lw a0,0x8(s1)
lw t9,0x18(sp)
addu v0,v0,v1
jalr t9
_sw v0,0x7c18(s3)
lw v0,0x7c04(s7)
beq v0,zero,0x000471f0
_lw gp,0x10(sp)
lw a0,-0x7f94(gp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4d2c
bal 0x00044d2c
_addiu a0,a0,-0x6800
lw gp,0x10(sp)
lw v0,0x7c18(s3)
lw a0,0x224(s6)
lw v1,0xc(s1)
subu v0,v0,a0
beq v1,zero,0x00047830
_sw v0,0x7c18(s3)
or t9,s5,zero
bal 0x00044b8c
_nop
lw gp,0x10(sp)
lw s4,-0x7b54(gp)
lw a0,-0x7fc8(gp)
addiu s4,s4,0x4be4
or t9,s4,zero
bal 0x00044be4
_addiu a0,a0,0x6730
lw v0,0x7c18(s3)
lw v1,0x224(s6)
lw a0,0xc(s1)
lw t9,0x18(sp)
addu v0,v0,v1
jalr t9
_sw v0,0x7c18(s3)
lw v0,0x7c04(s7)
beq v0,zero,0x0004726c
_lw gp,0x10(sp)
lw a0,-0x7f94(gp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4d2c
bal 0x00044d2c
_addiu a0,a0,-0x6800
lw v0,0x7c18(s3)
lw v1,0x224(s6)
subu v0,v0,v1
sw v0,0x7c18(s3)
or t9,s5,zero
bal 0x00044b8c
_nop
or t9,s4,zero
lw gp,0x10(sp)
lw a0,-0x7f94(gp)
bal 0x00044be4
_addiu a0,a0,-0x778c
b 0x00046e5c
_lw gp,0x10(sp)
lw t9,-0x79dc(gp)
bal 0x00046c60
_lw a0,0x10(s0)
b 0x00046e5c
_lw gp,0x10(sp)
lw s3,-0x7fd8(gp)
lw a0,0x10(s0)
lw v0,-0x7b54(gp)
lw a1,0x7c10(s4)
lw v1,0x7c08(s3)
addiu t9,v0,0x6cf0
lw a0,0x4(a0)
addiu a1,a1,0x1
addiu v0,v1,0x1
sw t9,0x18(sp)
sw a1,0x7c10(s4)
bal 0x00046cf0
_sw v0,0x7c08(s3)
li v0,0x7c
lw v1,0x10(s0)
lw s1,0xc(v1)
beq s1,v0,0x000478b8
_lw gp,0x10(sp)
slti v0,s1,0x7d
bne v0,zero,0x00047708
_li v0,0x120
beq s1,v0,0x0004783c
_li v0,0x121
bne s1,v0,0x00047848
_lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
addiu a0,a0,0x6510
lw t9,-0x7b54(gp)
addiu t9,t9,0x4d2c
bal 0x00044d2c
_nop
lw v0,0x10(s0)
lw a0,0x8(v0)
beq a0,zero,0x000479f4
_lw gp,0x10(sp)
lw v0,0x7c10(s4)
lw s7,-0x7fd8(gp)
addiu v0,v0,0x1
b 0x0004777c
_sw v0,0x7c10(s4)
lw s6,0x10(s0)
lw v0,-0x7fb4(gp)
lw s1,-0x7b54(gp)
lw v1,0x8(s6)
lw v0,0x0(v0)
beq v0,zero,0x000477f4
_lw a1,0x0(v1)
lw a0,-0x7fc8(gp)
addiu s1,s1,0x4708
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,0x6770
lw gp,0x10(sp)
lw a0,-0x7b54(gp)
or a1,zero,zero
lw t9,-0x79d8(gp)
lw s3,-0x7fd8(gp)
lw s4,-0x7fd8(gp)
lw s5,-0x7fd8(gp)
jalr t9
_addiu a0,a0,0x4610
lw gp,0x10(sp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4aac
bal 0x00044aac
_lw a0,0x7c18(s3)
or t9,s1,zero
lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
bal 0x00044708
_addiu a0,a0,0x6778
lw gp,0x10(sp)
lw v1,0x7c14(s4)
lw v0,0x7c18(s3)
lw a1,0x224(s5)
lw t9,-0x79d4(gp)
addiu v1,v1,0x1
lw a0,0xc(s6)
addu v0,v0,a1
sw v1,0x7c14(s4)
bal 0x0005ee9c
_sw v0,0x7c18(s3)
li v1,0x9
or s1,v0,zero
lw v0,0x0(v0)
beq v0,v1,0x00047938
_lw gp,0x10(sp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x6cf0
bal 0x00046cf0
_or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x79d0(gp)
jalr t9
_nop
lw v0,0x7c18(s3)
lw v1,0x7c14(s4)
lw a0,0x224(s5)
lw gp,0x10(sp)
addiu v1,v1,-0x1
subu v0,v0,a0
sw v1,0x7c14(s4)
sw v0,0x7c18(s3)
lw a0,-0x7aac(gp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4be4
bal 0x00044be4
_addiu a0,a0,-0x7efc
lw gp,0x10(sp)
lw t9,-0x7ce0(gp)
bal 0x00048374
_or a0,s1,zero
b 0x00046e5c
_lw gp,0x10(sp)
lw s1,0x10(s0)
lw s3,-0x7fd8(gp)
lw s6,-0x7fd8(gp)
or a0,s1,zero
b 0x00046ee0
_lw t9,-0x79cc(gp)
lw a0,0x10(s0)
lw a2,-0x7fc8(gp)
addiu a1,a0,0x8
b 0x00047120
_addiu a2,a2,0x4c34
lw s3,-0x7fd8(gp)
lw s1,-0x7b54(gp)
lw a0,-0x7fc8(gp)
lw s5,-0x7fd8(gp)
lw v0,0x7c00(s3)
addiu s1,s1,0x4708
addiu a0,a0,0x6780
lw s6,0x10(s0)
or t9,s1,zero
addiu v0,v0,0x1
bal 0x00044708
_sw v0,0x7c00(s3)
lw v0,0x7c14(s5)
bne v0,zero,0x00047888
_lw gp,0x10(sp)
lw v0,0x7c10(s4)
addiu v0,v0,0x1
sw v0,0x7c10(s4)
lw t9,-0x7b54(gp)
addiu t9,t9,0x6cf0
bal 0x00046cf0
_lw a0,0x4(s6)
lw gp,0x10(sp)
lw v0,-0x7fd8(gp)
lw v0,0x7c04(v0)
beq v0,zero,0x0004752c
_lw t9,-0x7b54(gp)
lw a0,-0x7f94(gp)
addiu t9,t9,0x4d2c
bal 0x00044d2c
_addiu a0,a0,-0x6800
lw gp,0x10(sp)
lw v0,0x7c14(s5)
beq v0,zero,0x000479cc
_lw t9,-0x7b54(gp)
lw a0,-0x7f94(gp)
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,-0x288c
lw gp,0x10(sp)
lw v1,-0x7fd8(gp)
lw a0,-0x7fd8(gp)
lw t9,-0x7b54(gp)
lw v0,0x7c18(v1)
lw a0,0x224(a0)
addiu t9,t9,0x4aac
subu v0,v0,a0
or a0,v0,zero
bal 0x00044aac
_sw v0,0x7c18(v1)
lw gp,0x10(sp)
lw a0,-0x7aac(gp)
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,-0x7efc
lw v0,0x7c00(s3)
lw gp,0x10(sp)
addiu v0,v0,-0x1
b 0x00046e5c
_sw v0,0x7c00(s3)
lw v0,0x10(s0)
lw t9,-0x79c8(gp)
bal 0x00046800
_lw a0,0x8(v0)
b 0x00046e5c
_lw gp,0x10(sp)
lw t9,-0x79c4(gp)
bal 0x0004687c
_lw a0,0x10(s0)
b 0x00046e5c
_lw gp,0x10(sp)
lw s1,-0x7b54(gp)
lw a0,-0x7fc8(gp)
lw s5,0x10(s0)
addiu s1,s1,0x4708
lw s7,-0x7fc8(gp)
lw s8,-0x7fc8(gp)
or t9,s1,zero
lw s3,-0x7fd8(gp)
bal 0x00044708
_addiu a0,a0,0x6718
addiu a1,s7,0x7b04
lw gp,0x10(sp)
lw s4,-0x7b54(gp)
lw s6,-0x7fd8(gp)
addiu s4,s4,0x4a04
or t9,s4,zero
bal 0x00044a04
_lw a0,0x8(s5)
or t9,s1,zero
bal 0x00044708
_addiu a0,s8,0x47e0
addiu a1,s7,0x7b04
or t9,s4,zero
bal 0x00044a04
_lw a0,0xc(s5)
or t9,s1,zero
bal 0x00044708
_addiu a0,s8,0x47e0
addiu a1,s7,0x7b04
or t9,s4,zero
bal 0x00044a04
_lw a0,0x10(s5)
or t9,s1,zero
lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
bal 0x00044708
_addiu a0,a0,0x66dc
lw gp,0x10(sp)
lw s4,-0x7b54(gp)
lw a0,-0x7fc8(gp)
addiu s4,s4,0x4be4
or t9,s4,zero
bal 0x00044be4
_addiu a0,a0,0x6714
lw gp,0x10(sp)
lw v0,0x7c18(s3)
lw v1,0x224(s6)
b 0x00046f2c
_lw a0,0x14(s5)
lw s1,-0x7b54(gp)
lw a0,-0x7fc8(gp)
addiu s1,s1,0x4708
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,0x6500
lw gp,0x10(sp)
lw v1,0x10(s0)
lw v0,0x7c10(s4)
lw t9,-0x7b54(gp)
addiu v0,v0,0x1
lw a0,0x8(v1)
addiu t9,t9,0x6cf0
bal 0x00046cf0
_sw v0,0x7c10(s4)
lw gp,0x10(sp)
lw v0,-0x7fd8(gp)
lw v0,0x7c04(v0)
beq v0,zero,0x000476f0
_lw t9,-0x7b54(gp)
lw a0,-0x7f94(gp)
addiu t9,t9,0x4d2c
bal 0x00044d2c
_addiu a0,a0,-0x6800
lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,0x6504
b 0x00046e5c
_lw gp,0x10(sp)
li v0,0x26
beq s1,v0,0x000478b8
_li v0,0x3b
bne s1,v0,0x00047848
_lw a1,-0x7fc8(gp)
lw s7,-0x7fd8(gp)
lw v0,0x7c04(s7)
beq v0,zero,0x00047a2c
_lw s5,-0x7fd8(gp)
lw v0,0x7c14(s5)
bne v0,zero,0x00047a24
_lw a0,-0x7f94(gp)
lw a0,-0x7fc8(gp)
addiu a0,a0,0x47e4
lw t9,-0x7b54(gp)
addiu t9,t9,0x4d2c
bal 0x00044d2c
_nop
lw gp,0x10(sp)
lw s1,-0x7b54(gp)
addiu s1,s1,0x4708
lw v0,0x7c14(s5)
beq v0,zero,0x000479fc
_or t9,s1,zero
lw a0,-0x7f94(gp)
bal 0x00044708
_addiu a0,a0,-0x288c
lw v0,0x10(s0)
lw a0,0x8(v0)
lw t9,0x18(sp)
jalr t9
_nop
lw v0,0x7c04(s7)
beq v0,zero,0x000477ac
_lw gp,0x10(sp)
lw a0,-0x7f94(gp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4d2c
bal 0x00044d2c
_addiu a0,a0,-0x6800
lw gp,0x10(sp)
lw v0,0x7c08(s3)
addiu v0,v0,-0x1
b 0x00046e5c
_sw v0,0x7c08(s3)
lw a0,-0x7f94(gp)
addiu t9,t9,0x4708
bal 0x00044708
_addiu a0,a0,-0x6800
b 0x00046e90
_lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
or a3,zero,zero
lw t9,-0x7f5c(gp)
li a1,0x1
bal 0x000600f8
_addiu a0,a0,0x6790
b 0x00046e5c
_lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
addiu s1,s1,0x4708
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,0x675c
b 0x0004738c
_lw gp,0x10(sp)
lw s4,-0x7b54(gp)
addiu s4,s4,0x4be4
lw a0,-0x7fc8(gp)
or t9,s4,zero
bal 0x00044be4
_addiu a0,a0,0x48a0
b 0x00046e5c
_lw gp,0x10(sp)
lw s4,-0x7b54(gp)
b 0x0004727c
_addiu s4,s4,0x4be4
lw a0,-0x7fc8(gp)
b 0x00047324
_addiu a0,a0,0x6508
li a2,0x5
lw t9,-0x60a8(gp)
or a0,zero,zero
lw s7,-0x7fd8(gp)
jalr t9
_addiu a1,a1,0x6738
lw gp,0x10(sp)
or a0,v0,zero
lw v1,0x10(s0)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4708
bal 0x00044708
_lw a1,0xc(v1)
lw v0,0x10(s0)
b 0x0004777c
_lw a0,0x8(v0)
lw a0,-0x7f94(gp)
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,-0x288c
lw gp,0x10(sp)
lw v1,-0x7fd8(gp)
lw a0,-0x7fd8(gp)
lw v0,0x7c18(v1)
lw a0,0x224(a0)
addu v0,v0,a0
b 0x000474f4
_sw v0,0x7c18(v1)
lw t9,-0x7b54(gp)
li v0,0x20
addiu a0,sp,0x38
sb s1,0x39(sp)
sb v0,0x38(sp)
addiu t9,t9,0x4d2c
bal 0x00044d2c
_sb zero,0x3a(sp)
li v0,0x26
lw gp,0x10(sp)
bne s1,v0,0x000478f8
_lw s7,-0x7fd8(gp)
lw v0,0x10(s0)
lw a0,0x8(v0)
beq a0,zero,0x00047780
_lw t9,0x18(sp)
lw a0,-0x7fc8(gp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4708
bal 0x00044708
_addiu a0,a0,0x7b04
lw v0,0x7c10(s4)
lw v1,0x10(s0)
addiu v0,v0,0x1
lw a0,0x8(v1)
b 0x0004777c
_sw v0,0x7c10(s4)
or t9,s4,zero
bal 0x00044be4
_lw a0,0x34(sp)
b 0x00047068
_lw gp,0x10(sp)
lw v0,0x10(s1)
lw t9,-0x7b54(gp)
lw s6,0xc(s1)
sw zero,0xc(s1)
addiu t9,t9,0x6cf0
bal 0x00046cf0
_lw a0,0x4(v0)
lw gp,0x10(sp)
lw t9,-0x79d0(gp)
jalr t9
_nop
lw v0,0x7c18(s3)
lw v1,0x7c14(s4)
lw a0,0x224(s5)
lw gp,0x10(sp)
addiu v1,v1,-0x1
subu v0,v0,a0
sw v1,0x7c14(s4)
beq s6,zero,0x00047454
_sw v0,0x7c18(s3)
lw a0,-0x7fc8(gp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x4be4
bal 0x00044be4
_addiu a0,a0,0x677c
lw gp,0x10(sp)
lw t9,-0x7b54(gp)
addiu t9,t9,0x57d8
bal 0x000457d8
_or a0,s6,zero
lw gp,0x10(sp)
b 0x0004746c
_sw s6,0xc(s1)
lw v1,0x224(s6)
subu v0,v0,v1
b 0x00047818
_sw v0,0x7c18(s3)
addiu t9,t9,0x4b8c
bal 0x00044b8c
_nop
or t9,s1,zero
lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
bal 0x00044708
_addiu a0,a0,0x7b04
b 0x00047578
_lw gp,0x10(sp)
b 0x0004777c
_lw s7,-0x7fd8(gp)
lw a0,-0x7fc8(gp)
bal 0x00044708
_addiu a0,a0,0x7b04
lw v0,0x10(s0)
lw a0,0x8(v0)
beq a0,zero,0x0004777c
_lw v0,0x7c10(s4)
addiu v0,v0,0x1
b 0x0004777c
_sw v0,0x7c10(s4)
b 0x00047740
_addiu a0,a0,-0x6800
lw v0,-0x7fd8(gp)
lw v1,0x7c0c(v0)
beq v1,zero,0x00047a50
_lw a0,-0x7fc8(gp)
lw s1,-0x7b54(gp)
lw s5,-0x7fd8(gp)
sw zero,0x7c0c(v0)
b 0x0004775c
_addiu s1,s1,0x4708
lw s1,-0x7b54(gp)
lw s5,-0x7fd8(gp)
addiu s1,s1,0x4708
or t9,s1,zero
bal 0x00044708
_addiu a0,a0,0x47e4
b 0x0004775c
_lw gp,0x10(sp)
lw t9,-0x60b8(gp)
jalr t9
_nop
(translation_unit "int FUN_00046cf0(uint *param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined *puVar3;\n  \n  puVar3 = PTR___stack_chk_guard_001464dc;\n  iVar1 = *(int *)PTR___stack_chk_guard_001464dc;\n  if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }\n  if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }\n  puVar3 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;\n  **(undefined4 **)(puVar3 + 0xfd0b4) = 0;\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;\n  FUN_00046cf0();\n  return **(int **)(puVar3 + 0xfd0b0);\n}\n\n" (function_definition "int FUN_00046cf0(uint *param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined *puVar3;\n  \n  puVar3 = PTR___stack_chk_guard_001464dc;\n  iVar1 = *(int *)PTR___stack_chk_guard_001464dc;\n  if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }\n  if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }\n  puVar3 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;\n  **(undefined4 **)(puVar3 + 0xfd0b4) = 0;\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;\n  FUN_00046cf0();\n  return **(int **)(puVar3 + 0xfd0b0);\n}" primitive_type (function_declarator "FUN_00046cf0(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined *puVar3;\n  \n  puVar3 = PTR___stack_chk_guard_001464dc;\n  iVar1 = *(int *)PTR___stack_chk_guard_001464dc;\n  if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }\n  if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }\n  puVar3 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;\n  **(undefined4 **)(puVar3 + 0xfd0b4) = 0;\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;\n  FUN_00046cf0();\n  return **(int **)(puVar3 + 0xfd0b0);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar3 = PTR___stack_chk_guard_001464dc" identifier = identifier) ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_001464dc;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_001464dc" * (cast_expression "(int *)PTR___stack_chk_guard_001464dc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }" { (expression_statement "FUN_00044708(PTR_DAT_001445ac + -0x6800);" (call_expression "FUN_00044708(PTR_DAT_001445ac + -0x6800)" identifier (argument_list "(PTR_DAT_001445ac + -0x6800)" ( (binary_expression "PTR_DAT_001445ac + -0x6800" identifier + number_literal) ))) ;) }) (else_clause "else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }" else (compound_statement "{\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }" { (if_statement "if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }" if (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x7c10) == 0)" ( (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) == 0" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" ( (binary_expression "PTR_data_start_00144568 + 0x7c10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }" { (expression_statement "FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));" (call_expression "FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18))" identifier (argument_list "(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18))" ( (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x7c18)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x7c18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c18)" ( (binary_expression "PTR_data_start_00144568 + 0x7c18" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }" else (compound_statement "{\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }" { (expression_statement "*(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;" (assignment_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" ( (binary_expression "PTR_data_start_00144568 + 0x7c10" identifier + number_literal) )))) = (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) + -1" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" ( (binary_expression "PTR_data_start_00144568 + 0x7c10" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }" if (parenthesized_expression "((uVar2 & 0x80) != 0)" ( (binary_expression "(uVar2 & 0x80) != 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }" { (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x6708);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x6708)" identifier (argument_list "(PTR_LAB_00144578 + 0x6708)" ( (binary_expression "PTR_LAB_00144578 + 0x6708" identifier + number_literal) ))) ;) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }" if (parenthesized_expression "((uVar2 & 0x100) != 0)" ( (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }" { (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x6710);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x6710)" identifier (argument_list "(PTR_LAB_00144578 + 0x6710)" ( (binary_expression "PTR_LAB_00144578 + 0x6710" identifier + number_literal) ))) ;) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })) })) (if_statement "if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }" { (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x64fc);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x64fc)" identifier (argument_list "(PTR_LAB_00144578 + 0x64fc)" ( (binary_expression "PTR_LAB_00144578 + 0x64fc" identifier + number_literal) ))) ;) })) (expression_statement "uVar2 = *param_1;" (assignment_expression "uVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (uVar2 < 0xf) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }" if (parenthesized_expression "(uVar2 < 0xf)" ( (binary_expression "uVar2 < 0xf" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }" { comment comment (expression_statement "iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();" (assignment_expression "iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" * (cast_expression "(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" ( (binary_expression "PTR_LAB_00144578 + uVar2 * 4 + 0x6810" (binary_expression "PTR_LAB_00144578 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);" (call_expression "command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0)" identifier (argument_list "(PTR_LAB_00144578 + 0x6790,1,uVar2,0)" ( (binary_expression "PTR_LAB_00144578 + 0x6790" identifier + number_literal) , number_literal , identifier , number_literal ))) ;) (if_statement "if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }" if (parenthesized_expression "(param_1[3] != 0)" ( (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }" { (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x7b04);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x7b04)" identifier (argument_list "(PTR_LAB_00144578 + 0x7b04)" ( (binary_expression "PTR_LAB_00144578 + 0x7b04" identifier + number_literal) ))) ;) (expression_statement "FUN_000457d8(param_1[3]);" (call_expression "FUN_000457d8(param_1[3])" identifier (argument_list "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) ))) ;) })) }))) (if_statement "if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }" if (parenthesized_expression "(iVar1 == *(int *)puVar3)" ( (binary_expression "iVar1 == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(int *)puVar3;\n  }" { (return_statement "return *(int *)puVar3;" return (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "puVar3 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar3 = PTR___stack_chk_fail_00146488" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" * (cast_expression "(code *)PTR___stack_chk_fail_00146488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c)" * (cast_expression "(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0xfcaec) + 0x7c0c)" ( (binary_expression "*(int *)(puVar3 + 0xfcaec) + 0x7c0c" (pointer_expression "*(int *)(puVar3 + 0xfcaec)" * (cast_expression "(int *)(puVar3 + 0xfcaec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xfcaec)" ( (binary_expression "puVar3 + 0xfcaec" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "**(undefined4 **)(puVar3 + 0xfd0b4) = 0;" (assignment_expression "**(undefined4 **)(puVar3 + 0xfd0b4) = 0" (pointer_expression "**(undefined4 **)(puVar3 + 0xfd0b4)" * (pointer_expression "*(undefined4 **)(puVar3 + 0xfd0b4)" * (cast_expression "(undefined4 **)(puVar3 + 0xfd0b4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0xfd0b4)" ( (binary_expression "puVar3 + 0xfd0b4" identifier + number_literal) ))))) = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04)" * (cast_expression "(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0xfcaec) + 0x7c04)" ( (binary_expression "*(int *)(puVar3 + 0xfcaec) + 0x7c04" (pointer_expression "*(int *)(puVar3 + 0xfcaec)" * (cast_expression "(int *)(puVar3 + 0xfcaec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xfcaec)" ( (binary_expression "puVar3 + 0xfcaec" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00046cf0();" (call_expression "FUN_00046cf0()" identifier (argument_list "()" ( ))) ;) (return_statement "return **(int **)(puVar3 + 0xfd0b0);" return (pointer_expression "**(int **)(puVar3 + 0xfd0b0)" * (pointer_expression "*(int **)(puVar3 + 0xfd0b0)" * (cast_expression "(int **)(puVar3 + 0xfd0b0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0xfd0b0)" ( (binary_expression "puVar3 + 0xfd0b0" identifier + number_literal) ))))) ;) })))
(translation_unit "void make_command_string_internal(COMMAND *command)\n\n{\n  command_type e;\n  char s [3];\n  \n  if (command == (COMMAND *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_DAT_001445ac + -0x6800);\n  }\n  if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n    indent(*(int *)(PTR_data_start_00144568 + 0x7c18));\n  }\n  else {\n    *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n  }\n  if ((command->flags & 0x80U) != 0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_LAB_00144578 + 0x6708);\n  }\n  if ((command->flags & 4U) != 0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_LAB_00144578 + 0x64fc);\n  }\n  e = command->type;\n  if (e < (cm_coproc|cm_case)) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604))();\n    return;\n  }\n  command_error(PTR_LAB_00144578 + 0x6790,1,e,0);\n  FUN_00046e5c();\n  return;\n}\n\n" (function_definition "void make_command_string_internal(COMMAND *command)\n\n{\n  command_type e;\n  char s [3];\n  \n  if (command == (COMMAND *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_DAT_001445ac + -0x6800);\n  }\n  if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n    indent(*(int *)(PTR_data_start_00144568 + 0x7c18));\n  }\n  else {\n    *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n  }\n  if ((command->flags & 0x80U) != 0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_LAB_00144578 + 0x6708);\n  }\n  if ((command->flags & 4U) != 0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_LAB_00144578 + 0x64fc);\n  }\n  e = command->type;\n  if (e < (cm_coproc|cm_case)) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604))();\n    return;\n  }\n  command_error(PTR_LAB_00144578 + 0x6790,1,e,0);\n  FUN_00046e5c();\n  return;\n}" primitive_type (function_declarator "make_command_string_internal(COMMAND *command)" identifier (parameter_list "(COMMAND *command)" ( (parameter_declaration "COMMAND *command" type_identifier (pointer_declarator "*command" * identifier)) ))) (compound_statement "{\n  command_type e;\n  char s [3];\n  \n  if (command == (COMMAND *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_DAT_001445ac + -0x6800);\n  }\n  if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n    indent(*(int *)(PTR_data_start_00144568 + 0x7c18));\n  }\n  else {\n    *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n  }\n  if ((command->flags & 0x80U) != 0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_LAB_00144578 + 0x6708);\n  }\n  if ((command->flags & 4U) != 0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_LAB_00144578 + 0x64fc);\n  }\n  e = command->type;\n  if (e < (cm_coproc|cm_case)) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604))();\n    return;\n  }\n  command_error(PTR_LAB_00144578 + 0x6790,1,e,0);\n  FUN_00046e5c();\n  return;\n}" { (declaration "command_type e;" type_identifier identifier ;) (declaration "char s [3];" primitive_type (array_declarator "s [3]" identifier [ number_literal ]) ;) (if_statement "if (command == (COMMAND *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_DAT_001445ac + -0x6800);\n  }" if (parenthesized_expression "(command == (COMMAND *)0x0)" ( (binary_expression "command == (COMMAND *)0x0" identifier == (cast_expression "(COMMAND *)0x0" ( (type_descriptor "COMMAND *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_DAT_001445ac + -0x6800);\n  }" { comment (expression_statement "cprintf(PTR_DAT_001445ac + -0x6800);" (call_expression "cprintf(PTR_DAT_001445ac + -0x6800)" identifier (argument_list "(PTR_DAT_001445ac + -0x6800)" ( (binary_expression "PTR_DAT_001445ac + -0x6800" identifier + number_literal) ))) ;) })) (if_statement "if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n    indent(*(int *)(PTR_data_start_00144568 + 0x7c18));\n  }\n  else {\n    *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n  }" if (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x7c10) == 0)" ( (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) == 0" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" ( (binary_expression "PTR_data_start_00144568 + 0x7c10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    indent(*(int *)(PTR_data_start_00144568 + 0x7c18));\n  }" { (expression_statement "indent(*(int *)(PTR_data_start_00144568 + 0x7c18));" (call_expression "indent(*(int *)(PTR_data_start_00144568 + 0x7c18))" identifier (argument_list "(*(int *)(PTR_data_start_00144568 + 0x7c18))" ( (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c18)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c18)" ( (binary_expression "PTR_data_start_00144568 + 0x7c18" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n    *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n  }" else (compound_statement "{\n    *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n  }" { (expression_statement "*(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;" (assignment_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" ( (binary_expression "PTR_data_start_00144568 + 0x7c10" identifier + number_literal) )))) = (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) + -1" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" ( (binary_expression "PTR_data_start_00144568 + 0x7c10" identifier + number_literal) )))) + number_literal)) ;) }))) (if_statement "if ((command->flags & 0x80U) != 0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_LAB_00144578 + 0x6708);\n  }" if (parenthesized_expression "((command->flags & 0x80U) != 0)" ( (binary_expression "(command->flags & 0x80U) != 0" (parenthesized_expression "(command->flags & 0x80U)" ( (binary_expression "command->flags & 0x80U" (field_expression "command->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_LAB_00144578 + 0x6708);\n  }" { comment (expression_statement "cprintf(PTR_LAB_00144578 + 0x6708);" (call_expression "cprintf(PTR_LAB_00144578 + 0x6708)" identifier (argument_list "(PTR_LAB_00144578 + 0x6708)" ( (binary_expression "PTR_LAB_00144578 + 0x6708" identifier + number_literal) ))) ;) })) (if_statement "if ((command->flags & 4U) != 0) {\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_LAB_00144578 + 0x64fc);\n  }" if (parenthesized_expression "((command->flags & 4U) != 0)" ( (binary_expression "(command->flags & 4U) != 0" (parenthesized_expression "(command->flags & 4U)" ( (binary_expression "command->flags & 4U" (field_expression "command->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    cprintf(PTR_LAB_00144578 + 0x64fc);\n  }" { comment (expression_statement "cprintf(PTR_LAB_00144578 + 0x64fc);" (call_expression "cprintf(PTR_LAB_00144578 + 0x64fc)" identifier (argument_list "(PTR_LAB_00144578 + 0x64fc)" ( (binary_expression "PTR_LAB_00144578 + 0x64fc" identifier + number_literal) ))) ;) })) (expression_statement "e = command->type;" (assignment_expression "e = command->type" identifier = (field_expression "command->type" identifier -> field_identifier)) ;) (if_statement "if (e < (cm_coproc|cm_case)) {\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604))();\n    return;\n  }" if (parenthesized_expression "(e < (cm_coproc|cm_case))" ( (binary_expression "e < (cm_coproc|cm_case)" identifier < (parenthesized_expression "(cm_coproc|cm_case)" ( (binary_expression "cm_coproc|cm_case" identifier | identifier) ))) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00046d8c */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604))();\n    return;\n  }" { comment comment (expression_statement "(*(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604))();" (call_expression "(*(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604))()" (parenthesized_expression "(*(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604))" ( (pointer_expression "*(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604)" * (cast_expression "(code *)((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604)" ( (binary_expression "(int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810) + 0x1604" (binary_expression "(int)pidstat_table + *(int *)(PTR_LAB_00144578 + e * 4 + 0x6810)" (cast_expression "(int)pidstat_table" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(PTR_LAB_00144578 + e * 4 + 0x6810)" * (cast_expression "(int *)(PTR_LAB_00144578 + e * 4 + 0x6810)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00144578 + e * 4 + 0x6810)" ( (binary_expression "PTR_LAB_00144578 + e * 4 + 0x6810" (binary_expression "PTR_LAB_00144578 + e * 4" identifier + (binary_expression "e * 4" identifier * number_literal)) + number_literal) ))))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "command_error(PTR_LAB_00144578 + 0x6790,1,e,0);" (call_expression "command_error(PTR_LAB_00144578 + 0x6790,1,e,0)" identifier (argument_list "(PTR_LAB_00144578 + 0x6790,1,e,0)" ( (binary_expression "PTR_LAB_00144578 + 0x6790" identifier + number_literal) , number_literal , identifier , number_literal ))) ;) (expression_statement "FUN_00046e5c();" (call_expression "FUN_00046e5c()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "int FUN_00046cf0(uint *param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined *puVar3;\n  \n  puVar3 = PTR___stack_chk_guard_001464dc;\n  iVar1 = *(int *)PTR___stack_chk_guard_001464dc;\n  if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }\n  if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }\n  puVar3 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;\n  **(undefined4 **)(puVar3 + 0xfd0b4) = 0;\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;\n  FUN_00046cf0();\n  return **(int **)(puVar3 + 0xfd0b0);\n}\n\n" (function_definition "int FUN_00046cf0(uint *param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined *puVar3;\n  \n  puVar3 = PTR___stack_chk_guard_001464dc;\n  iVar1 = *(int *)PTR___stack_chk_guard_001464dc;\n  if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }\n  if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }\n  puVar3 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;\n  **(undefined4 **)(puVar3 + 0xfd0b4) = 0;\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;\n  FUN_00046cf0();\n  return **(int **)(puVar3 + 0xfd0b0);\n}" primitive_type (function_declarator "FUN_00046cf0(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined *puVar3;\n  \n  puVar3 = PTR___stack_chk_guard_001464dc;\n  iVar1 = *(int *)PTR___stack_chk_guard_001464dc;\n  if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }\n  if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }\n  puVar3 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;\n  **(undefined4 **)(puVar3 + 0xfd0b4) = 0;\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;\n  FUN_00046cf0();\n  return **(int **)(puVar3 + 0xfd0b0);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar3 = PTR___stack_chk_guard_001464dc" identifier = identifier) ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_001464dc;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_001464dc" * (cast_expression "(int *)PTR___stack_chk_guard_001464dc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }" { (expression_statement "FUN_00044708(PTR_DAT_001445ac + -0x6800);" (call_expression "FUN_00044708(PTR_DAT_001445ac + -0x6800)" identifier (argument_list "(PTR_DAT_001445ac + -0x6800)" ( (binary_expression "PTR_DAT_001445ac + -0x6800" identifier + number_literal) ))) ;) }) (else_clause "else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }" else (compound_statement "{\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }" { (if_statement "if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }" if (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x7c10) == 0)" ( (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) == 0" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" ( (binary_expression "PTR_data_start_00144568 + 0x7c10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }" { (expression_statement "FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));" (call_expression "FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18))" identifier (argument_list "(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18))" ( (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x7c18)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x7c18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c18)" ( (binary_expression "PTR_data_start_00144568 + 0x7c18" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }" else (compound_statement "{\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }" { (expression_statement "*(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;" (assignment_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" ( (binary_expression "PTR_data_start_00144568 + 0x7c10" identifier + number_literal) )))) = (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) + -1" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" ( (binary_expression "PTR_data_start_00144568 + 0x7c10" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }" if (parenthesized_expression "((uVar2 & 0x80) != 0)" ( (binary_expression "(uVar2 & 0x80) != 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }" { (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x6708);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x6708)" identifier (argument_list "(PTR_LAB_00144578 + 0x6708)" ( (binary_expression "PTR_LAB_00144578 + 0x6708" identifier + number_literal) ))) ;) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }" if (parenthesized_expression "((uVar2 & 0x100) != 0)" ( (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }" { (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x6710);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x6710)" identifier (argument_list "(PTR_LAB_00144578 + 0x6710)" ( (binary_expression "PTR_LAB_00144578 + 0x6710" identifier + number_literal) ))) ;) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })) })) (if_statement "if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }" { (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x64fc);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x64fc)" identifier (argument_list "(PTR_LAB_00144578 + 0x64fc)" ( (binary_expression "PTR_LAB_00144578 + 0x64fc" identifier + number_literal) ))) ;) })) (expression_statement "uVar2 = *param_1;" (assignment_expression "uVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }" if (parenthesized_expression "(uVar2 < 0xf)" ( (binary_expression "uVar2 < 0xf" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }" { (expression_statement "iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();" (assignment_expression "iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" * (cast_expression "(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" ( (binary_expression "PTR_LAB_00144578 + uVar2 * 4 + 0x6810" (binary_expression "PTR_LAB_00144578 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);" (call_expression "command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0)" identifier (argument_list "(PTR_LAB_00144578 + 0x6790,1,uVar2,0)" ( (binary_expression "PTR_LAB_00144578 + 0x6790" identifier + number_literal) , number_literal , identifier , number_literal ))) ;) (if_statement "if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }" if (parenthesized_expression "(param_1[3] != 0)" ( (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }" { (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x7b04);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x7b04)" identifier (argument_list "(PTR_LAB_00144578 + 0x7b04)" ( (binary_expression "PTR_LAB_00144578 + 0x7b04" identifier + number_literal) ))) ;) (expression_statement "FUN_000457d8(param_1[3]);" (call_expression "FUN_000457d8(param_1[3])" identifier (argument_list "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) ))) ;) })) }))) (if_statement "if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }" if (parenthesized_expression "(iVar1 == *(int *)puVar3)" ( (binary_expression "iVar1 == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(int *)puVar3;\n  }" { (return_statement "return *(int *)puVar3;" return (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "puVar3 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar3 = PTR___stack_chk_fail_00146488" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" * (cast_expression "(code *)PTR___stack_chk_fail_00146488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c)" * (cast_expression "(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0xfcaec) + 0x7c0c)" ( (binary_expression "*(int *)(puVar3 + 0xfcaec) + 0x7c0c" (pointer_expression "*(int *)(puVar3 + 0xfcaec)" * (cast_expression "(int *)(puVar3 + 0xfcaec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xfcaec)" ( (binary_expression "puVar3 + 0xfcaec" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "**(undefined4 **)(puVar3 + 0xfd0b4) = 0;" (assignment_expression "**(undefined4 **)(puVar3 + 0xfd0b4) = 0" (pointer_expression "**(undefined4 **)(puVar3 + 0xfd0b4)" * (pointer_expression "*(undefined4 **)(puVar3 + 0xfd0b4)" * (cast_expression "(undefined4 **)(puVar3 + 0xfd0b4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0xfd0b4)" ( (binary_expression "puVar3 + 0xfd0b4" identifier + number_literal) ))))) = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04)" * (cast_expression "(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0xfcaec) + 0x7c04)" ( (binary_expression "*(int *)(puVar3 + 0xfcaec) + 0x7c04" (pointer_expression "*(int *)(puVar3 + 0xfcaec)" * (cast_expression "(int *)(puVar3 + 0xfcaec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xfcaec)" ( (binary_expression "puVar3 + 0xfcaec" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00046cf0();" (call_expression "FUN_00046cf0()" identifier (argument_list "()" ( ))) ;) (return_statement "return **(int **)(puVar3 + 0xfd0b0);" return (pointer_expression "**(int **)(puVar3 + 0xfd0b0)" * (pointer_expression "*(int **)(puVar3 + 0xfd0b0)" * (cast_expression "(int **)(puVar3 + 0xfd0b0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0xfd0b0)" ( (binary_expression "puVar3 + 0xfd0b0" identifier + number_literal) ))))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (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) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))
(function_definition "int FUN_00046cf0(uint *param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined *puVar3;\n  \n  puVar3 = PTR___stack_chk_guard_001464dc;\n  iVar1 = *(int *)PTR___stack_chk_guard_001464dc;\n  if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }\n  if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }\n  puVar3 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;\n  **(undefined4 **)(puVar3 + 0xfd0b4) = 0;\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;\n  FUN_00046cf0();\n  return **(int **)(puVar3 + 0xfd0b0);\n}" (primitive_type "int") (function_declarator "FUN_00046cf0(uint *param_1)" (identifier "FUN_00046cf0") (parameter_list "(uint *param_1)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined *puVar3;\n  \n  puVar3 = PTR___stack_chk_guard_001464dc;\n  iVar1 = *(int *)PTR___stack_chk_guard_001464dc;\n  if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }\n  if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }\n  puVar3 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;\n  **(undefined4 **)(puVar3 + 0xfd0b4) = 0;\n  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;\n  FUN_00046cf0();\n  return **(int **)(puVar3 + 0xfd0b0);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (expression_statement "puVar3 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar3 = PTR___stack_chk_guard_001464dc" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_guard_001464dc")) (; ";")) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_001464dc;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_001464dc" (identifier "iVar1") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_001464dc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_001464dc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_001464dc")))) (; ";")) (if_statement "if (param_1 == (uint *)0x0) {\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }\n  else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == (uint *)0x0)" (( "(") (binary_expression "param_1 == (uint *)0x0" (identifier "param_1") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_00044708(PTR_DAT_001445ac + -0x6800);\n  }" ({ "{") (expression_statement "FUN_00044708(PTR_DAT_001445ac + -0x6800);" (call_expression "FUN_00044708(PTR_DAT_001445ac + -0x6800)" (identifier "FUN_00044708") (argument_list "(PTR_DAT_001445ac + -0x6800)" (( "(") (binary_expression "PTR_DAT_001445ac + -0x6800" (identifier "PTR_DAT_001445ac") (+ "+") (number_literal "-0x6800")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }" (else "else") (compound_statement "{\n    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }\n    uVar2 = param_1[1];\n    if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }\n    if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }\n    uVar2 = *param_1;\n    if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }\n    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);\n    if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }\n  }" ({ "{") (if_statement "if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }\n    else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }" (if "if") (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x7c10) == 0)" (( "(") (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) == 0" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" (* "*") (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x7c10" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x7c10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));\n    }" ({ "{") (expression_statement "FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));" (call_expression "FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18))" (identifier "FUN_00044aac") (argument_list "(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18))" (( "(") (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x7c18)" (* "*") (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x7c18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x7c18)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x7c18" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x7c18")) () ")")))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }" (else "else") (compound_statement "{\n      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;\n    }" ({ "{") (expression_statement "*(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;" (assignment_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" (* "*") (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x7c10" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x7c10")) () ")")))) (= "=") (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7c10) + -1" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7c10)" (* "*") (cast_expression "(int *)(PTR_data_start_00144568 + 0x7c10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x7c10)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x7c10" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x7c10")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" (identifier "uVar2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((uVar2 & 0x80) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }" (if "if") (parenthesized_expression "((uVar2 & 0x80) != 0)" (( "(") (binary_expression "(uVar2 & 0x80) != 0" (parenthesized_expression "(uVar2 & 0x80)" (( "(") (binary_expression "uVar2 & 0x80" (identifier "uVar2") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00044708(PTR_LAB_00144578 + 0x6708);\n      uVar2 = param_1[1];\n      if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }\n    }" ({ "{") (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x6708);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x6708)" (identifier "FUN_00044708") (argument_list "(PTR_LAB_00144578 + 0x6708)" (( "(") (binary_expression "PTR_LAB_00144578 + 0x6708" (identifier "PTR_LAB_00144578") (+ "+") (number_literal "0x6708")) () ")"))) (; ";")) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" (identifier "uVar2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((uVar2 & 0x100) != 0) {\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }" (if "if") (parenthesized_expression "((uVar2 & 0x100) != 0)" (( "(") (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" (( "(") (binary_expression "uVar2 & 0x100" (identifier "uVar2") (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00044708(PTR_LAB_00144578 + 0x6710);\n        uVar2 = param_1[1];\n      }" ({ "{") (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x6710);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x6710)" (identifier "FUN_00044708") (argument_list "(PTR_LAB_00144578 + 0x6710)" (( "(") (binary_expression "PTR_LAB_00144578 + 0x6710" (identifier "PTR_LAB_00144578") (+ "+") (number_literal "0x6710")) () ")"))) (; ";")) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" (identifier "uVar2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((uVar2 & 4) != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }" (if "if") (parenthesized_expression "((uVar2 & 4) != 0)" (( "(") (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00044708(PTR_LAB_00144578 + 0x64fc);\n    }" ({ "{") (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x64fc);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x64fc)" (identifier "FUN_00044708") (argument_list "(PTR_LAB_00144578 + 0x64fc)" (( "(") (binary_expression "PTR_LAB_00144578 + 0x64fc" (identifier "PTR_LAB_00144578") (+ "+") (number_literal "0x64fc")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = *param_1;" (assignment_expression "uVar2 = *param_1" (identifier "uVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (uVar2 < 0xf) {\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }" (if "if") (parenthesized_expression "(uVar2 < 0xf)" (( "(") (binary_expression "uVar2 < 0xf" (identifier "uVar2") (< "<") (number_literal "0xf")) () ")")) (compound_statement "{\n                    \n                    \n      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();\n      return iVar1;\n    }" ({ "{") (expression_statement "iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();" (assignment_expression "iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))()" (identifier "iVar1") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" (* "*") (cast_expression "(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)" (( "(") (binary_expression "PTR_LAB_00144578 + uVar2 * 4 + 0x6810" (binary_expression "PTR_LAB_00144578 + uVar2 * 4" (identifier "PTR_LAB_00144578") (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x6810")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (expression_statement "command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);" (call_expression "command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0)" (identifier "command_error") (argument_list "(PTR_LAB_00144578 + 0x6790,1,uVar2,0)" (( "(") (binary_expression "PTR_LAB_00144578 + 0x6790" (identifier "PTR_LAB_00144578") (+ "+") (number_literal "0x6790")) (, ",") (number_literal "1") (, ",") (identifier "uVar2") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (param_1[3] != 0) {\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }" (if "if") (parenthesized_expression "(param_1[3] != 0)" (( "(") (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00044708(PTR_LAB_00144578 + 0x7b04);\n      FUN_000457d8(param_1[3]);\n    }" ({ "{") (expression_statement "FUN_00044708(PTR_LAB_00144578 + 0x7b04);" (call_expression "FUN_00044708(PTR_LAB_00144578 + 0x7b04)" (identifier "FUN_00044708") (argument_list "(PTR_LAB_00144578 + 0x7b04)" (( "(") (binary_expression "PTR_LAB_00144578 + 0x7b04" (identifier "PTR_LAB_00144578") (+ "+") (number_literal "0x7b04")) () ")"))) (; ";")) (expression_statement "FUN_000457d8(param_1[3]);" (call_expression "FUN_000457d8(param_1[3])" (identifier "FUN_000457d8") (argument_list "(param_1[3])" (( "(") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (iVar1 == *(int *)puVar3) {\n    return *(int *)puVar3;\n  }" (if "if") (parenthesized_expression "(iVar1 == *(int *)puVar3)" (( "(") (binary_expression "iVar1 == *(int *)puVar3" (identifier "iVar1") (== "==") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) () ")")) (compound_statement "{\n    return *(int *)puVar3;\n  }" ({ "{") (return_statement "return *(int *)puVar3;" (return "return") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) (; ";")) (} "}"))) (expression_statement "puVar3 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar3 = PTR___stack_chk_fail_00146488" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_fail_00146488")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00146488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00146488"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar3 + 0xfcaec) + 0x7c0c)" (( "(") (binary_expression "*(int *)(puVar3 + 0xfcaec) + 0x7c0c" (pointer_expression "*(int *)(puVar3 + 0xfcaec)" (* "*") (cast_expression "(int *)(puVar3 + 0xfcaec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0xfcaec)" (( "(") (binary_expression "puVar3 + 0xfcaec" (identifier "puVar3") (+ "+") (number_literal "0xfcaec")) () ")")))) (+ "+") (number_literal "0x7c0c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "**(undefined4 **)(puVar3 + 0xfd0b4) = 0;" (assignment_expression "**(undefined4 **)(puVar3 + 0xfd0b4) = 0" (pointer_expression "**(undefined4 **)(puVar3 + 0xfd0b4)" (* "*") (pointer_expression "*(undefined4 **)(puVar3 + 0xfd0b4)" (* "*") (cast_expression "(undefined4 **)(puVar3 + 0xfd0b4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0xfd0b4)" (( "(") (binary_expression "puVar3 + 0xfd0b4" (identifier "puVar3") (+ "+") (number_literal "0xfd0b4")) () ")"))))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar3 + 0xfcaec) + 0x7c04)" (( "(") (binary_expression "*(int *)(puVar3 + 0xfcaec) + 0x7c04" (pointer_expression "*(int *)(puVar3 + 0xfcaec)" (* "*") (cast_expression "(int *)(puVar3 + 0xfcaec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0xfcaec)" (( "(") (binary_expression "puVar3 + 0xfcaec" (identifier "puVar3") (+ "+") (number_literal "0xfcaec")) () ")")))) (+ "+") (number_literal "0x7c04")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00046cf0();" (call_expression "FUN_00046cf0()" (identifier "FUN_00046cf0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return **(int **)(puVar3 + 0xfd0b0);" (return "return") (pointer_expression "**(int **)(puVar3 + 0xfd0b0)" (* "*") (pointer_expression "*(int **)(puVar3 + 0xfd0b0)" (* "*") (cast_expression "(int **)(puVar3 + 0xfd0b0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0xfd0b0)" (( "(") (binary_expression "puVar3 + 0xfd0b0" (identifier "puVar3") (+ "+") (number_literal "0xfd0b0")) () ")"))))) (; ";")) (} "}")))

void function_1(type_1 *var_1)

{
  type_2 var_7;
  char s [3];
  
  if (var_1 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2(var_3 + -0x6800);
  }
  if (*(int *)(var_4 + 0x7c10) == 0) {
    var_5(*(int *)(var_4 + 0x7c18));
  }
  else {
    *(int *)(var_4 + 0x7c10) = *(int *)(var_4 + 0x7c10) + -1;
  }
  if ((var_1->flags & 0x80U) != 0) {
                    /* WARNING: Subroutine does not return */
    var_2(var_6 + 0x6708);
  }
  if ((var_1->flags & 4U) != 0) {
                    /* WARNING: Subroutine does not return */
    var_2(var_6 + 0x64fc);
  }
  var_7 = var_1->type;
  if (var_7 < (var_8|var_9)) {
                    /* WARNING: Could not emulate address calculation at 0x00046d8c */
                    /* WARNING: Treating indirect jump as call */
    (*(type_3 *)((int)pidstat_table + *(int *)(var_6 + var_7 * 4 + 0x6810) + 0x1604))();
    return;
  }
  var_10(var_6 + 0x6790,1,var_7,0);
  var_11();
  return;
}


(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))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_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: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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)))))))))) arguments: (argument_list)))) (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (identifier) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))

int MASKED(uint *param_1)

{
  int iVar1;
  uint uVar2;
  undefined *puVar3;
  
  puVar3 = PTR___stack_chk_guard_001464dc;
  iVar1 = *(int *)PTR___stack_chk_guard_001464dc;
  if (param_1 == (uint *)0x0) {
    FUN_00044708(PTR_DAT_001445ac + -0x6800);
  }
  else {
    if (*(int *)(PTR_data_start_00144568 + 0x7c10) == 0) {
      FUN_00044aac(*(undefined4 *)(PTR_data_start_00144568 + 0x7c18));
    }
    else {
      *(int *)(PTR_data_start_00144568 + 0x7c10) = *(int *)(PTR_data_start_00144568 + 0x7c10) + -1;
    }
    uVar2 = param_1[1];
    if ((uVar2 & 0x80) != 0) {
      FUN_00044708(PTR_LAB_00144578 + 0x6708);
      uVar2 = param_1[1];
      if ((uVar2 & 0x100) != 0) {
        FUN_00044708(PTR_LAB_00144578 + 0x6710);
        uVar2 = param_1[1];
      }
    }
    if ((uVar2 & 4) != 0) {
      FUN_00044708(PTR_LAB_00144578 + 0x64fc);
    }
    uVar2 = *param_1;
    if (uVar2 < 0xf) {
                    /* WARNING: Could not emulate address calculation at 0x00046d8c */
                    /* WARNING: Treating indirect jump as call */
      iVar1 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00144578 + uVar2 * 4 + 0x6810)))();
      return iVar1;
    }
    command_error(PTR_LAB_00144578 + 0x6790,1,uVar2,0);
    if (param_1[3] != 0) {
      FUN_00044708(PTR_LAB_00144578 + 0x7b04);
      FUN_000457d8(param_1[3]);
    }
  }
  if (iVar1 == *(int *)puVar3) {
    return *(int *)puVar3;
  }
  puVar3 = PTR___stack_chk_fail_00146488;
  (*(code *)PTR___stack_chk_fail_00146488)();
  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c0c) = 0;
  **(undefined4 **)(puVar3 + 0xfd0b4) = 0;
  *(undefined4 *)(*(int *)(puVar3 + 0xfcaec) + 0x7c04) = 0;
  MASKED();
  return **(int **)(puVar3 + 0xfd0b0);
}

