
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void ssh_size(void *handle,int width,int height)

{
  undefined *puVar1;
  int iVar2;
  Packet *pPVar3;
  ulong uVar4;
  ulong port;
  ssh_channel *c;
  char *ptr;
  Ssh_conflict psVar5;
  Ssh_conflict psVar6;
  undefined *puVar7;
  int iStack_a0;
  char *pcStack_9c;
  undefined1 auStack_98 [4];
  ulong uStack_94;
  char *pcStack_8c;
  undefined4 uStack_7c;
  void *pvStack_78;
  undefined *puStack_74;
  uchar x [4];
  
  *(int *)((int)handle + 0x11c) = width;
  *(int *)((int)handle + 0x120) = height;
  puVar1 = PTR___stack_chk_guard_000adcd4;
  psVar5 = *(Ssh_conflict *)PTR___stack_chk_guard_000adcd4;
  psVar6 = psVar5;
  if (*(int *)((int)handle + 0x144) == 2) {
    *(undefined4 *)((int)handle + 0x148) = 1;
  }
  else if (*(int *)((int)handle + 0x144) == 3) {
    width = (int)&DAT_00000016;
    psVar6 = *(Ssh_conflict *)((int)handle + 0x248);
    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)();
    if (iVar2 == 0) {
      if (*(int *)((int)handle + 0x198) == 1) {
        width = 0xb;
        psVar6 = (Ssh_conflict)handle;
        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));
      }
      else {
        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);
        width = (int)PTR_DAT_000ad2c8;
        if (psVar6 != (Ssh_conflict)0x0) {
          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,
                                     (cchandler_fn_t)0x0,(void *)0x0);
                    /* WARNING: Subroutine does not return */
          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));
        }
      }
    }
  }
  if (psVar5 == *(Ssh_conflict *)puVar1) {
    return;
  }
  puVar7 = PTR___stack_chk_fail_000adca4;
  (*(code *)PTR___stack_chk_fail_000adca4)();
  puStack_74 = puVar1;
  uStack_7c = **(undefined4 **)(puVar7 + 0x6b2fc);
  pPVar3 = (Packet *)width;
  pvStack_78 = handle;
  uVar4 = ssh_pkt_getuint32((Packet *)width);
  ssh_pkt_getstring(pPVar3,&pcStack_9c,&iStack_a0);
  port = ssh_pkt_getuint32((Packet *)width);
  if (pcStack_9c == (char *)0x0) {
    pcStack_9c = (char *)(*(int *)(puVar7 + 0x6a8f0) + -0x22a4);
  }
  pcStack_8c = (char *)(**(code **)(puVar7 + 0x6a900))
                                 (*(int *)(puVar7 + 0x6a8f0) + -0x1de0,iStack_a0,pcStack_9c);
  uStack_94 = port;
  iVar2 = (**(code **)(puVar7 + 0x6aaa0))(psVar6->rportfwds,auStack_98,0);
  if (iVar2 == 0) {
    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x71c),pcStack_8c,port);
    send_packet(psVar6,0x16,1,uVar4,0);
  }
  else {
    c = (ssh_channel *)(**(code **)(puVar7 + 0x6aa3c))(1,0x5c);
    c->ssh = psVar6;
    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0),pcStack_8c,port);
    ptr = pfd_connect(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,
                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24));
    if (ptr != (char *)0x0) {
      logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr);
                    /* WARNING: Subroutine does not return */
      safefree(ptr);
    }
    ssh_channel_init(c);
    c->type = 3;
    c->remoteid = uVar4;
    c->halfopen = 0;
    send_packet(psVar6,0x15,1,uVar4,1,c->localid,0);
    (**(code **)(puVar7 + 0x6aa30))(psVar6->frontend,*(int *)(puVar7 + 0x6a8f0) + -0xe10);
  }
                    /* WARNING: Subroutine does not return */
  safefree(pcStack_8c);
}



void FUN_00042824(int param_1,undefined1 *param_2,undefined4 param_3)

{
  undefined *puVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  int *piVar5;
  int iVar6;
  undefined1 *unaff_s2;
  undefined *unaff_s3;
  int *piVar7;
  undefined4 *unaff_s4;
  undefined *puVar8;
  code *pcVar9;
  undefined4 local_a0;
  int local_9c;
  undefined1 auStack_98 [4];
  undefined4 local_94;
  int local_8c;
  int local_7c;
  int local_78;
  undefined *local_74;
  undefined1 *local_70;
  undefined *local_6c;
  undefined4 *local_68;
  undefined4 local_20;
  int local_1c;
  
  *(undefined1 **)(param_1 + 0x11c) = param_2;
  *(undefined4 *)(param_1 + 0x120) = param_3;
  puVar1 = PTR___stack_chk_guard_000adcd4;
  iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;
  local_1c = iVar6;
  if (*(int *)(param_1 + 0x144) == 2) {
    *(undefined4 *)(param_1 + 0x148) = 1;
  }
  else if (*(int *)(param_1 + 0x144) == 3) {
    param_2 = &DAT_00000016;
    iVar6 = *(int *)(param_1 + 0x248);
    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);
    if (iVar2 == 0) {
      if (*(int *)(param_1 + 0x198) == 1) {
        param_2 = (undefined1 *)0xb;
        iVar6 = param_1;
        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));
      }
      else {
        iVar6 = *(int *)(param_1 + 0x128);
        param_2 = PTR_DAT_000ad2c8;
        if (iVar6 != 0) {
          unaff_s4 = &local_20;
          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);
          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));
          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));
          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;
          local_20 = 0;
          FUN_00033374(unaff_s2,unaff_s4,4);
          local_20 = 0;
          FUN_00033374(unaff_s2,unaff_s4,4);
          iVar6 = param_1;
          param_2 = unaff_s2;
          FUN_0003e878(param_1,unaff_s2);
        }
      }
    }
  }
  if (local_1c == *(int *)puVar1) {
    return;
  }
  puVar8 = PTR___stack_chk_fail_000adca4;
  (*(code *)PTR___stack_chk_fail_000adca4)();
  local_74 = puVar1;
  piVar7 = *(int **)(puVar8 + 0x6b2fc);
  local_7c = *piVar7;
  local_78 = param_1;
  local_70 = unaff_s2;
  local_6c = unaff_s3;
  local_68 = unaff_s4;
  iVar2 = FUN_0002f068(param_2);
  FUN_0002fb84();
  uVar3 = FUN_0002f068(param_2);
  if (local_9c == 0) {
    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;
  }
  local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)
  ;
  local_94 = uVar3;
  iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);
  if (iVar4 == 0) {
    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);
  }
  else {
    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);
    *piVar5 = iVar6;
    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);
    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),
                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));
    if (iVar4 == 0) {
      FUN_00036678(piVar5);
      piVar5[3] = 3;
      piVar5[1] = iVar2;
      piVar5[4] = 0;
      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);
      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;
      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);
      goto LAB_00042b8c;
    }
    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);
    safefree(iVar4);
    safefree(piVar5);
  }
  iVar4 = 0x16;
  FUN_00041954(iVar6,0x16,1,iVar2,0);
LAB_00042b8c:
  iVar6 = local_8c;
  safefree();
  if (local_7c == *piVar7) {
    return;
  }
  pcVar9 = *(code **)(puVar8 + 0x6b2cc);
  (*pcVar9)();
  iVar2 = FUN_0002f068(iVar4);
  (**(code **)(pcVar9 + 0x6a784))
            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);
  if (*(int *)(iVar6 + 0x4c) == 0) {
    FUN_00041954(iVar6,0x16,1,iVar2,0);
                    /* WARNING: Could not recover jumptable at 0x00042d28. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(pcVar9 + 0x6a784))
              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);
    return;
  }
  piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);
  *piVar7 = iVar6;
  FUN_00036678(piVar7);
  iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);
  piVar7[0x13] = iVar4;
  piVar7[1] = iVar2;
  piVar7[4] = 0;
  piVar7[3] = 1;
  FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);
                    /* WARNING: Could not recover jumptable at 0x00042de0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(pcVar9 + 0x6a784))
            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);
  return;
}


lui gp,0x7
addiu gp,gp,0x2a6c
addu gp,gp,t9
addiu sp,sp,-0x58
lw v0,0x144(a0)
li v1,0x2
sw s1,0x44(sp)
sw gp,0x30(sp)
sw s0,0x40(sp)
or s0,a0,zero
sw ra,0x54(sp)
sw s4,0x50(sp)
sw s3,0x4c(sp)
sw s2,0x48(sp)
sw a1,0x11c(a0)
sw a2,0x120(a0)
lw s1,-0x75bc(gp)
lw a0,0x0(s1)
sw a0,0x3c(sp)
beq v0,v1,0x00042980
_li v1,0x3
bne v0,v1,0x00042954
_lw t9,-0x7f44(gp)
li a1,0x16
jalr t9
_lw a0,0x248(s0)
bne v0,zero,0x00042954
_lw gp,0x30(sp)
lw v0,0x198(s0)
li v1,0x1
beq v0,v1,0x0004298c
_lw t9,-0x7b94(gp)
lw a0,0x128(s0)
beq a0,zero,0x00042954
_lw a1,-0x7fc8(gp)
or a3,zero,zero
lw t9,-0x7ce0(gp)
or a2,zero,zero
addiu s4,sp,0x38
addiu t9,t9,0x4800
bal 0x00034800
_addiu a1,a1,-0x72c
lw gp,0x30(sp)
or a0,v0,zero
lw a1,0x11c(s0)
lw s3,-0x7ce0(gp)
addiu s3,s3,0x364c
or t9,s3,zero
bal 0x0003364c
_or s2,v0,zero
or t9,s3,zero
lw a1,0x120(s0)
bal 0x0003364c
_or a0,s2,zero
li a2,0x4
lw gp,0x30(sp)
or a1,s4,zero
or a0,s2,zero
lw s3,-0x7ce0(gp)
addiu s3,s3,0x3374
or t9,s3,zero
bal 0x00033374
_sw zero,0x38(sp)
li a2,0x4
or a1,s4,zero
sw zero,0x38(sp)
or t9,s3,zero
bal 0x00033374
_or a0,s2,zero
or a1,s2,zero
lw gp,0x30(sp)
lw t9,-0x7b94(gp)
addiu t9,t9,-0x1788
bal 0x0003e878
_or a0,s0,zero
lw gp,0x30(sp)
lw v1,0x3c(sp)
lw v0,0x0(s1)
bne v1,v0,0x000429cc
_lw ra,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,0x58
li v0,0x1
b 0x00042954
_sw v0,0x148(s0)
li a2,0x1
lw v1,0x11c(s0)
li a1,0xb
lw a3,0x120(s0)
or a0,s0,zero
addiu t9,t9,0x1954
sw zero,0x28(sp)
sw zero,0x24(sp)
sw v0,0x20(sp)
sw zero,0x1c(sp)
sw v0,0x18(sp)
sw v1,0x14(sp)
bal 0x00041954
_sw v0,0x10(sp)
b 0x00042954
_lw gp,0x30(sp)
lw t9,-0x75ec(gp)
jalr t9
_nop
lui gp,0x7
addiu gp,gp,0x28b8
addu gp,gp,t9
addiu sp,sp,-0x70
sw s3,0x5c(sp)
sw s1,0x54(sp)
lw s3,-0x75bc(gp)
lw s1,-0x7ce0(gp)
sw ra,0x6c(sp)
sw gp,0x20(sp)
sw s4,0x60(sp)
addiu s1,s1,-0xf98
sw s2,0x58(sp)
or s2,a1,zero
sw s0,0x50(sp)
or t9,s1,zero
sw s6,0x68(sp)
or s0,a0,zero
sw s5,0x64(sp)
or a0,a1,zero
lw v0,0x0(s3)
sw v0,0x4c(sp)
bal 0x0002f068
_nop
addiu a2,sp,0x28
lw gp,0x20(sp)
addiu a1,sp,0x2c
lw t9,-0x7ce0(gp)
addiu t9,t9,-0x47c
bal 0x0002fb84
_or s4,v0,zero
or t9,s1,zero
bal 0x0002f068
_or a0,s2,zero
lw a2,0x2c(sp)
or s2,v0,zero
lw gp,0x20(sp)
beq a2,zero,0x00042c6c
_lw a1,0x28(sp)
lw a0,-0x7fc8(gp)
lw t9,-0x7fb8(gp)
jalr t9
_addiu a0,a0,-0x1de0
or a2,zero,zero
lw gp,0x20(sp)
addiu a1,sp,0x30
lw a0,0x13c(s0)
sw v0,0x3c(sp)
lw t9,-0x7e18(gp)
jalr t9
_sw s2,0x34(sp)
lw gp,0x20(sp)
beq v0,zero,0x00042c44
_or s6,v0,zero
lw t9,-0x7e7c(gp)
li a1,0x5c
jalr t9
_li a0,0x1
or a3,s2,zero
lw gp,0x20(sp)
or a0,s0,zero
lw a2,0x3c(sp)
or s1,v0,zero
sw s0,0x0(v0)
lw s5,-0x7ce0(gp)
lw a1,-0x7fc8(gp)
addiu s5,s5,-0xe98
or t9,s5,zero
bal 0x0002f168
_addiu a1,a1,-0x6f0
addiu a0,s1,0x4c
lw v0,0x18(s6)
or a2,s2,zero
lw gp,0x20(sp)
or a3,s1,zero
lw v1,0x248(s0)
lw a1,0x3c(sp)
lw v0,0x24(v0)
lw t9,-0x7ab4(gp)
sw v1,0x10(sp)
bal 0x00023b98
_sw v0,0x14(sp)
lw gp,0x20(sp)
beq v0,zero,0x00042bd0
_or s2,v0,zero
lw a1,-0x7fc8(gp)
or a2,v0,zero
or a0,s0,zero
or t9,s5,zero
bal 0x0002f168
_addiu a1,a1,-0xe28
lw gp,0x20(sp)
lw t9,-0x7f10(gp)
bal 0x00022dc4
_or a0,s2,zero
lw gp,0x20(sp)
lw t9,-0x7f10(gp)
bal 0x00022dc4
_or a0,s1,zero
lw gp,0x20(sp)
lw t9,-0x7b94(gp)
li a2,0x1
li a1,0x16
sw zero,0x10(sp)
or a3,s4,zero
addiu t9,t9,0x1954
bal 0x00041954
_or a0,s0,zero
lw gp,0x20(sp)
lw t9,-0x7f10(gp)
bal 0x00022dc4
_lw a0,0x3c(sp)
lw v1,0x4c(sp)
lw v0,0x0(s3)
bne v1,v0,0x00042c78
_lw gp,0x20(sp)
lw ra,0x6c(sp)
lw s6,0x68(sp)
lw s5,0x64(sp)
lw s4,0x60(sp)
lw s3,0x5c(sp)
lw s2,0x58(sp)
lw s1,0x54(sp)
lw s0,0x50(sp)
jr ra
_addiu sp,sp,0x70
lw t9,-0x7ce0(gp)
addiu t9,t9,0x6678
bal 0x00036678
_or a0,s1,zero
li v0,0x3
lw gp,0x20(sp)
li v1,0x1
sw v0,0xc(s1)
li a2,0x1
sw s4,0x4(s1)
li a1,0x15
sw zero,0x10(s1)
or a0,s0,zero
sw zero,0x18(sp)
or a3,s4,zero
lw t9,-0x7b94(gp)
lw v0,0x8(s1)
sw v1,0x10(sp)
addiu t9,t9,0x1954
bal 0x00041954
_sw v0,0x14(sp)
lw gp,0x20(sp)
lw a0,0x110(s0)
lw a1,-0x7fc8(gp)
lw t9,-0x7e88(gp)
jalr t9
_addiu a1,a1,-0xe10
b 0x00042b8c
_lw gp,0x20(sp)
lw a1,-0x7fc8(gp)
or a3,s2,zero
lw t9,-0x7ce0(gp)
or a0,s0,zero
lw a2,0x3c(sp)
addiu t9,t9,-0xe98
bal 0x0002f168
_addiu a1,a1,-0x71c
b 0x00042b68
_lw gp,0x20(sp)
lw a2,-0x7fc8(gp)
b 0x00042a74
_addiu a2,a2,-0x22a4
lw t9,-0x75ec(gp)
jalr t9
_nop
lui gp,0x7
addiu gp,gp,0x260c
addu gp,gp,t9
lw t9,-0x7ce0(gp)
addiu sp,sp,-0x38
addiu t9,t9,-0xf98
sw gp,0x20(sp)
sw ra,0x34(sp)
sw s2,0x30(sp)
sw s0,0x28(sp)
or s0,a0,zero
sw s1,0x2c(sp)
bal 0x0002f068
_or a0,a1,zero
lw gp,0x20(sp)
or s2,v0,zero
lw a0,0x110(s0)
lw a1,-0x7fc8(gp)
lw t9,-0x7e88(gp)
jalr t9
_addiu a1,a1,-0x6c4
lw v0,0x4c(s0)
bne v0,zero,0x00042d30
_lw gp,0x20(sp)
lw t9,-0x7b94(gp)
li a1,0x16
li a2,0x1
sw zero,0x10(sp)
or a0,s0,zero
addiu t9,t9,0x1954
bal 0x00041954
_or a3,s2,zero
lw gp,0x20(sp)
lw a0,0x110(s0)
lw ra,0x34(sp)
lw s2,0x30(sp)
lw a1,-0x7fc8(gp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
addiu sp,sp,0x38
lw t9,-0x7e88(gp)
jr t9
_addiu a1,a1,-0x6a4
lw t9,-0x7e7c(gp)
li a1,0x5c
jalr t9
_li a0,0x1
lw gp,0x20(sp)
or a0,v0,zero
sw s0,0x0(v0)
lw t9,-0x7ce0(gp)
addiu t9,t9,0x6678
bal 0x00036678
_or s1,v0,zero
li a3,-0x1
lw gp,0x20(sp)
or a2,zero,zero
lw a0,0x194(s0)
lw t9,-0x7ab8(gp)
jalr t9
_or a1,s1,zero
li v1,0x1
lw gp,0x20(sp)
li a1,0x15
sw v0,0x4c(s1)
li a2,0x1
sw s2,0x4(s1)
or a0,s0,zero
sw zero,0x10(s1)
or a3,s2,zero
sw v1,0xc(s1)
sw zero,0x18(sp)
lw t9,-0x7b94(gp)
lw v0,0x8(s1)
sw v1,0x10(sp)
addiu t9,t9,0x1954
bal 0x00041954
_sw v0,0x14(sp)
lw gp,0x20(sp)
lw a0,0x110(s0)
lw ra,0x34(sp)
lw s2,0x30(sp)
lw a1,-0x7fc8(gp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
addiu sp,sp,0x38
lw t9,-0x7e88(gp)
jr t9
_addiu a1,a1,-0xdb8
(translation_unit "void FUN_00042824(int param_1,undefined1 *param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined1 *unaff_s2;\n  undefined *unaff_s3;\n  int *piVar7;\n  undefined4 *unaff_s4;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 local_a0;\n  int local_9c;\n  undefined1 auStack_98 [4];\n  undefined4 local_94;\n  int local_8c;\n  int local_7c;\n  int local_78;\n  undefined *local_74;\n  undefined1 *local_70;\n  undefined *local_6c;\n  undefined4 *local_68;\n  undefined4 local_20;\n  int local_1c;\n  \n  *(undefined1 **)(param_1 + 0x11c) = param_2;\n  *(undefined4 *)(param_1 + 0x120) = param_3;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;\n  local_1c = iVar6;\n  if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }\n  if (local_1c == *(int *)puVar1) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  local_74 = puVar1;\n  piVar7 = *(int **)(puVar8 + 0x6b2fc);\n  local_7c = *piVar7;\n  local_78 = param_1;\n  local_70 = unaff_s2;\n  local_6c = unaff_s3;\n  local_68 = unaff_s4;\n  iVar2 = FUN_0002f068(param_2);\n  FUN_0002fb84();\n  uVar3 = FUN_0002f068(param_2);\n  if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }\n  local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;\n  local_94 = uVar3;\n  iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);\n  if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }\n  iVar4 = 0x16;\n  FUN_00041954(iVar6,0x16,1,iVar2,0);\nLAB_00042b8c:\n  iVar6 = local_8c;\n  safefree();\n  if (local_7c == *piVar7) {\n    return;\n  }\n  pcVar9 = *(code **)(puVar8 + 0x6b2cc);\n  (*pcVar9)();\n  iVar2 = FUN_0002f068(iVar4);\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);\n  if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    /* WARNING: Could not recover jumptable at 0x00042d28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }\n  piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);\n  *piVar7 = iVar6;\n  FUN_00036678(piVar7);\n  iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);\n  piVar7[0x13] = iVar4;\n  piVar7[1] = iVar2;\n  piVar7[4] = 0;\n  piVar7[3] = 1;\n  FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);\n                    /* WARNING: Could not recover jumptable at 0x00042de0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);\n  return;\n}\n\n" (function_definition "void FUN_00042824(int param_1,undefined1 *param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined1 *unaff_s2;\n  undefined *unaff_s3;\n  int *piVar7;\n  undefined4 *unaff_s4;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 local_a0;\n  int local_9c;\n  undefined1 auStack_98 [4];\n  undefined4 local_94;\n  int local_8c;\n  int local_7c;\n  int local_78;\n  undefined *local_74;\n  undefined1 *local_70;\n  undefined *local_6c;\n  undefined4 *local_68;\n  undefined4 local_20;\n  int local_1c;\n  \n  *(undefined1 **)(param_1 + 0x11c) = param_2;\n  *(undefined4 *)(param_1 + 0x120) = param_3;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;\n  local_1c = iVar6;\n  if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }\n  if (local_1c == *(int *)puVar1) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  local_74 = puVar1;\n  piVar7 = *(int **)(puVar8 + 0x6b2fc);\n  local_7c = *piVar7;\n  local_78 = param_1;\n  local_70 = unaff_s2;\n  local_6c = unaff_s3;\n  local_68 = unaff_s4;\n  iVar2 = FUN_0002f068(param_2);\n  FUN_0002fb84();\n  uVar3 = FUN_0002f068(param_2);\n  if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }\n  local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;\n  local_94 = uVar3;\n  iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);\n  if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }\n  iVar4 = 0x16;\n  FUN_00041954(iVar6,0x16,1,iVar2,0);\nLAB_00042b8c:\n  iVar6 = local_8c;\n  safefree();\n  if (local_7c == *piVar7) {\n    return;\n  }\n  pcVar9 = *(code **)(puVar8 + 0x6b2cc);\n  (*pcVar9)();\n  iVar2 = FUN_0002f068(iVar4);\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);\n  if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    /* WARNING: Could not recover jumptable at 0x00042d28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }\n  piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);\n  *piVar7 = iVar6;\n  FUN_00036678(piVar7);\n  iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);\n  piVar7[0x13] = iVar4;\n  piVar7[1] = iVar2;\n  piVar7[4] = 0;\n  piVar7[3] = 1;\n  FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);\n                    /* WARNING: Could not recover jumptable at 0x00042de0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);\n  return;\n}" primitive_type (function_declarator "FUN_00042824(int param_1,undefined1 *param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,undefined1 *param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined1 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined1 *unaff_s2;\n  undefined *unaff_s3;\n  int *piVar7;\n  undefined4 *unaff_s4;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 local_a0;\n  int local_9c;\n  undefined1 auStack_98 [4];\n  undefined4 local_94;\n  int local_8c;\n  int local_7c;\n  int local_78;\n  undefined *local_74;\n  undefined1 *local_70;\n  undefined *local_6c;\n  undefined4 *local_68;\n  undefined4 local_20;\n  int local_1c;\n  \n  *(undefined1 **)(param_1 + 0x11c) = param_2;\n  *(undefined4 *)(param_1 + 0x120) = param_3;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;\n  local_1c = iVar6;\n  if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }\n  if (local_1c == *(int *)puVar1) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  local_74 = puVar1;\n  piVar7 = *(int **)(puVar8 + 0x6b2fc);\n  local_7c = *piVar7;\n  local_78 = param_1;\n  local_70 = unaff_s2;\n  local_6c = unaff_s3;\n  local_68 = unaff_s4;\n  iVar2 = FUN_0002f068(param_2);\n  FUN_0002fb84();\n  uVar3 = FUN_0002f068(param_2);\n  if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }\n  local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;\n  local_94 = uVar3;\n  iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);\n  if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }\n  iVar4 = 0x16;\n  FUN_00041954(iVar6,0x16,1,iVar2,0);\nLAB_00042b8c:\n  iVar6 = local_8c;\n  safefree();\n  if (local_7c == *piVar7) {\n    return;\n  }\n  pcVar9 = *(code **)(puVar8 + 0x6b2cc);\n  (*pcVar9)();\n  iVar2 = FUN_0002f068(iVar4);\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);\n  if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    /* WARNING: Could not recover jumptable at 0x00042d28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }\n  piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);\n  *piVar7 = iVar6;\n  FUN_00036678(piVar7);\n  iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);\n  piVar7[0x13] = iVar4;\n  piVar7[1] = iVar2;\n  piVar7[4] = 0;\n  piVar7[3] = 1;\n  FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);\n                    /* WARNING: Could not recover jumptable at 0x00042de0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined1 *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "undefined1 auStack_98 [4];" type_identifier (array_declarator "auStack_98 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_94;" type_identifier identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "undefined *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined1 *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "*(undefined1 **)(param_1 + 0x11c) = param_2;" (assignment_expression "*(undefined1 **)(param_1 + 0x11c) = param_2" (pointer_expression "*(undefined1 **)(param_1 + 0x11c)" * (cast_expression "(undefined1 **)(param_1 + 0x11c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x120) = param_3;" (assignment_expression "*(undefined4 *)(param_1 + 0x120) = param_3" (pointer_expression "*(undefined4 *)(param_1 + 0x120)" * (cast_expression "(undefined4 *)(param_1 + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "iVar6 = *(int *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_1c = iVar6;" (assignment_expression "local_1c = iVar6" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x144) == 2)" ( (binary_expression "*(int *)(param_1 + 0x144) == 2" (pointer_expression "*(int *)(param_1 + 0x144)" * (cast_expression "(int *)(param_1 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x144)" ( (binary_expression "param_1 + 0x144" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }" { (expression_statement "*(undefined4 *)(param_1 + 0x148) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x148) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x148)" * (cast_expression "(undefined4 *)(param_1 + 0x148)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x148)" ( (binary_expression "param_1 + 0x148" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" else (if_statement "if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x144) == 3)" ( (binary_expression "*(int *)(param_1 + 0x144) == 3" (pointer_expression "*(int *)(param_1 + 0x144)" * (cast_expression "(int *)(param_1 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x144)" ( (binary_expression "param_1 + 0x144" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" { (expression_statement "param_2 = &DAT_00000016;" (assignment_expression "param_2 = &DAT_00000016" identifier = (pointer_expression "&DAT_00000016" & identifier)) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x248);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x248)" identifier = (pointer_expression "*(int *)(param_1 + 0x248)" * (cast_expression "(int *)(param_1 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);" (assignment_expression "iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16)" identifier = (call_expression "(*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16)" (parenthesized_expression "(*(code *)PTR_conf_get_int_000ad34c)" ( (pointer_expression "*(code *)PTR_conf_get_int_000ad34c" * (cast_expression "(code *)PTR_conf_get_int_000ad34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,0x16)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }" { (if_statement "if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x198) == 1)" ( (binary_expression "*(int *)(param_1 + 0x198) == 1" (pointer_expression "*(int *)(param_1 + 0x198)" * (cast_expression "(int *)(param_1 + 0x198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x198)" ( (binary_expression "param_1 + 0x198" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }" { (expression_statement "param_2 = (undefined1 *)0xb;" (assignment_expression "param_2 = (undefined1 *)0xb" identifier = (cast_expression "(undefined1 *)0xb" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" identifier = identifier) ;) (expression_statement "FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));" (call_expression "FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120))" identifier (argument_list "(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120))" ( identifier , number_literal , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x120)" * (cast_expression "(undefined4 *)(param_1 + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }" else (compound_statement "{\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }" { (expression_statement "iVar6 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x128)" identifier = (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "param_2 = PTR_DAT_000ad2c8;" (assignment_expression "param_2 = PTR_DAT_000ad2c8" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }" { (expression_statement "unaff_s4 = &local_20;" (assignment_expression "unaff_s4 = &local_20" identifier = (pointer_expression "&local_20" & identifier)) ;) (expression_statement "unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);" (assignment_expression "unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" identifier = (cast_expression "(undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" identifier (argument_list "(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" ( identifier , (binary_expression "PTR_DAT_000ad2c8 + -0x72c" identifier + number_literal) , number_literal , number_literal ))))) ;) (expression_statement "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));" (call_expression "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c))" identifier (argument_list "(unaff_s2,*(undefined4 *)(param_1 + 0x11c))" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" * (cast_expression "(undefined4 *)(param_1 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));" (call_expression "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120))" identifier (argument_list "(unaff_s2,*(undefined4 *)(param_1 + 0x120))" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x120)" * (cast_expression "(undefined4 *)(param_1 + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) ))) ;) (expression_statement "unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;" (assignment_expression "unaff_s3 = PTR_LAB_000ad5b0 + 0x3374" identifier = (binary_expression "PTR_LAB_000ad5b0 + 0x3374" identifier + number_literal)) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "FUN_00033374(unaff_s2,unaff_s4,4);" (call_expression "FUN_00033374(unaff_s2,unaff_s4,4)" identifier (argument_list "(unaff_s2,unaff_s4,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "FUN_00033374(unaff_s2,unaff_s4,4);" (call_expression "FUN_00033374(unaff_s2,unaff_s4,4)" identifier (argument_list "(unaff_s2,unaff_s4,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" identifier = identifier) ;) (expression_statement "param_2 = unaff_s2;" (assignment_expression "param_2 = unaff_s2" identifier = identifier) ;) (expression_statement "FUN_0003e878(param_1,unaff_s2);" (call_expression "FUN_0003e878(param_1,unaff_s2)" identifier (argument_list "(param_1,unaff_s2)" ( identifier , identifier ))) ;) })) }))) })) })))) (if_statement "if (local_1c == *(int *)puVar1) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(int *)puVar1)" ( (binary_expression "local_1c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar8 = PTR___stack_chk_fail_000adca4;" (assignment_expression "puVar8 = PTR___stack_chk_fail_000adca4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_74 = puVar1;" (assignment_expression "local_74 = puVar1" identifier = identifier) ;) (expression_statement "piVar7 = *(int **)(puVar8 + 0x6b2fc);" (assignment_expression "piVar7 = *(int **)(puVar8 + 0x6b2fc)" identifier = (pointer_expression "*(int **)(puVar8 + 0x6b2fc)" * (cast_expression "(int **)(puVar8 + 0x6b2fc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6b2fc)" ( (binary_expression "puVar8 + 0x6b2fc" identifier + number_literal) ))))) ;) (expression_statement "local_7c = *piVar7;" (assignment_expression "local_7c = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" identifier = identifier) ;) (expression_statement "local_70 = unaff_s2;" (assignment_expression "local_70 = unaff_s2" identifier = identifier) ;) (expression_statement "local_6c = unaff_s3;" (assignment_expression "local_6c = unaff_s3" identifier = identifier) ;) (expression_statement "local_68 = unaff_s4;" (assignment_expression "local_68 = unaff_s4" identifier = identifier) ;) (expression_statement "iVar2 = FUN_0002f068(param_2);" (assignment_expression "iVar2 = FUN_0002f068(param_2)" identifier = (call_expression "FUN_0002f068(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "FUN_0002fb84();" (call_expression "FUN_0002fb84()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar3 = FUN_0002f068(param_2);" (assignment_expression "uVar3 = FUN_0002f068(param_2)" identifier = (call_expression "FUN_0002f068(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }" if (parenthesized_expression "(local_9c == 0)" ( (binary_expression "local_9c == 0" identifier == number_literal) )) (compound_statement "{\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }" { (expression_statement "local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;" (assignment_expression "local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4" identifier = (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x22a4" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;" (assignment_expression "local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)" identifier = (call_expression "(**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)" (parenthesized_expression "(**(code **)(puVar8 + 0x6a900))" ( (pointer_expression "**(code **)(puVar8 + 0x6a900)" * (pointer_expression "*(code **)(puVar8 + 0x6a900)" * (cast_expression "(code **)(puVar8 + 0x6a900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6a900)" ( (binary_expression "puVar8 + 0x6a900" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)" ( (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x1de0" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal) , identifier , identifier )))) ;) (expression_statement "local_94 = uVar3;" (assignment_expression "local_94 = uVar3" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);" (assignment_expression "iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0)" identifier = (call_expression "(**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0)" (parenthesized_expression "(**(code **)(puVar8 + 0x6aaa0))" ( (pointer_expression "**(code **)(puVar8 + 0x6aaa0)" * (pointer_expression "*(code **)(puVar8 + 0x6aaa0)" * (cast_expression "(code **)(puVar8 + 0x6aaa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6aaa0)" ( (binary_expression "puVar8 + 0x6aaa0" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x13c)" * (cast_expression "(undefined4 *)(iVar6 + 0x13c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x13c)" ( (binary_expression "iVar6 + 0x13c" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }" { (expression_statement "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);" (call_expression "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3)" identifier (argument_list "(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3)" ( identifier , (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x71c" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) }) (else_clause "else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }" else (compound_statement "{\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);" (assignment_expression "piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c)" identifier = (cast_expression "(int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar8 + 0x6aa3c))(1,0x5c)" (parenthesized_expression "(**(code **)(puVar8 + 0x6aa3c))" ( (pointer_expression "**(code **)(puVar8 + 0x6aa3c)" * (pointer_expression "*(code **)(puVar8 + 0x6aa3c)" * (cast_expression "(code **)(puVar8 + 0x6aa3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6aa3c)" ( (binary_expression "puVar8 + 0x6aa3c" identifier + number_literal) ))))) )) (argument_list "(1,0x5c)" ( number_literal , number_literal ))))) ;) (expression_statement "*piVar5 = iVar6;" (assignment_expression "*piVar5 = iVar6" (pointer_expression "*piVar5" * identifier) = identifier) ;) (expression_statement "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);" (call_expression "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3)" identifier (argument_list "(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3)" ( identifier , (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x6f0" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));" (assignment_expression "iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24))" identifier = (call_expression "pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24))" identifier (argument_list "(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24))" ( (binary_expression "piVar5 + 0x13" identifier + number_literal) , identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(iVar6 + 0x248)" * (cast_expression "(undefined4 *)(iVar6 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x248)" ( (binary_expression "iVar6 + 0x248" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24)" * (cast_expression "(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x18) + 0x24)" ( (binary_expression "*(int *)(iVar4 + 0x18) + 0x24" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }" { (expression_statement "FUN_00036678(piVar5);" (call_expression "FUN_00036678(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "piVar5[3] = 3;" (assignment_expression "piVar5[3] = 3" (subscript_expression "piVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[1] = iVar2;" (assignment_expression "piVar5[1] = iVar2" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[4] = 0;" (assignment_expression "piVar5[4] = 0" (subscript_expression "piVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);" (call_expression "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0)" identifier (argument_list "(iVar6,0x15,1,iVar2,1,piVar5[2],0)" ( identifier , number_literal , number_literal , identifier , number_literal , (subscript_expression "piVar5[2]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;" (assignment_expression "iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10" identifier = (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0xe10" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);" (call_expression "(**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4)" (parenthesized_expression "(**(code **)(puVar8 + 0x6aa30))" ( (pointer_expression "**(code **)(puVar8 + 0x6aa30)" * (pointer_expression "*(code **)(puVar8 + 0x6aa30)" * (cast_expression "(code **)(puVar8 + 0x6aa30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6aa30)" ( (binary_expression "puVar8 + 0x6aa30" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x110),iVar4)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) , identifier ))) ;) (goto_statement "goto LAB_00042b8c;" goto statement_identifier ;) })) (expression_statement "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);" (call_expression "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4)" identifier (argument_list "(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4)" ( identifier , (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0xe28" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "safefree(iVar4);" (call_expression "safefree(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "safefree(piVar5);" (call_expression "safefree(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) }))) (expression_statement "iVar4 = 0x16;" (assignment_expression "iVar4 = 0x16" identifier = number_literal) ;) (expression_statement "FUN_00041954(iVar6,0x16,1,iVar2,0);" (call_expression "FUN_00041954(iVar6,0x16,1,iVar2,0)" identifier (argument_list "(iVar6,0x16,1,iVar2,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (labeled_statement "LAB_00042b8c:\n  iVar6 = local_8c;" statement_identifier : (expression_statement "iVar6 = local_8c;" (assignment_expression "iVar6 = local_8c" identifier = identifier) ;)) (expression_statement "safefree();" (call_expression "safefree()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_7c == *piVar7) {\n    return;\n  }" if (parenthesized_expression "(local_7c == *piVar7)" ( (binary_expression "local_7c == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar9 = *(code **)(puVar8 + 0x6b2cc);" (assignment_expression "pcVar9 = *(code **)(puVar8 + 0x6b2cc)" identifier = (pointer_expression "*(code **)(puVar8 + 0x6b2cc)" * (cast_expression "(code **)(puVar8 + 0x6b2cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6b2cc)" ( (binary_expression "puVar8 + 0x6b2cc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar9)();" (call_expression "(*pcVar9)()" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar2 = FUN_0002f068(iVar4);" (assignment_expression "iVar2 = FUN_0002f068(iVar4)" identifier = (call_expression "FUN_0002f068(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);" (call_expression "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a784))" ( (pointer_expression "**(code **)(pcVar9 + 0x6a784)" * (pointer_expression "*(code **)(pcVar9 + 0x6a784)" * (cast_expression "(code **)(pcVar9 + 0x6a784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x6a784)" ( (binary_expression "pcVar9 + 0x6a784" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar9 + 0x6a644) + -0x6c4" (pointer_expression "*(int *)(pcVar9 + 0x6a644)" * (cast_expression "(int *)(pcVar9 + 0x6a644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x6a644)" ( (binary_expression "pcVar9 + 0x6a644" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    /* WARNING: Could not recover jumptable at 0x00042d28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x4c) == 0)" ( (binary_expression "*(int *)(iVar6 + 0x4c) == 0" (pointer_expression "*(int *)(iVar6 + 0x4c)" * (cast_expression "(int *)(iVar6 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    /* WARNING: Could not recover jumptable at 0x00042d28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }" { (expression_statement "FUN_00041954(iVar6,0x16,1,iVar2,0);" (call_expression "FUN_00041954(iVar6,0x16,1,iVar2,0)" identifier (argument_list "(iVar6,0x16,1,iVar2,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) comment comment (expression_statement "(**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);" (call_expression "(**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a784))" ( (pointer_expression "**(code **)(pcVar9 + 0x6a784)" * (pointer_expression "*(code **)(pcVar9 + 0x6a784)" * (cast_expression "(code **)(pcVar9 + 0x6a784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x6a784)" ( (binary_expression "pcVar9 + 0x6a784" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar9 + 0x6a644) + -0x6a4" (pointer_expression "*(int *)(pcVar9 + 0x6a644)" * (cast_expression "(int *)(pcVar9 + 0x6a644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x6a644)" ( (binary_expression "pcVar9 + 0x6a644" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);" (assignment_expression "piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c)" identifier = (cast_expression "(int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar9 + 0x6a790))(1,0x5c)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a790))" ( (pointer_expression "**(code **)(pcVar9 + 0x6a790)" * (pointer_expression "*(code **)(pcVar9 + 0x6a790)" * (cast_expression "(code **)(pcVar9 + 0x6a790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x6a790)" ( (binary_expression "pcVar9 + 0x6a790" identifier + number_literal) ))))) )) (argument_list "(1,0x5c)" ( number_literal , number_literal ))))) ;) (expression_statement "*piVar7 = iVar6;" (assignment_expression "*piVar7 = iVar6" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "FUN_00036678(piVar7);" (call_expression "FUN_00036678(piVar7)" identifier (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);" (assignment_expression "iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff)" identifier = (call_expression "(**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6ab54))" ( (pointer_expression "**(code **)(pcVar9 + 0x6ab54)" * (pointer_expression "*(code **)(pcVar9 + 0x6ab54)" * (cast_expression "(code **)(pcVar9 + 0x6ab54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x6ab54)" ( (binary_expression "pcVar9 + 0x6ab54" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x194)" * (cast_expression "(undefined4 *)(iVar6 + 0x194)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x194)" ( (binary_expression "iVar6 + 0x194" identifier + number_literal) )))) , identifier , number_literal , number_literal )))) ;) (expression_statement "piVar7[0x13] = iVar4;" (assignment_expression "piVar7[0x13] = iVar4" (subscript_expression "piVar7[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar7[1] = iVar2;" (assignment_expression "piVar7[1] = iVar2" (subscript_expression "piVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar7[4] = 0;" (assignment_expression "piVar7[4] = 0" (subscript_expression "piVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar7[3] = 1;" (assignment_expression "piVar7[3] = 1" (subscript_expression "piVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);" (call_expression "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0)" identifier (argument_list "(iVar6,0x15,1,iVar2,1,piVar7[2],0)" ( identifier , number_literal , number_literal , identifier , number_literal , (subscript_expression "piVar7[2]" identifier [ number_literal ]) , number_literal ))) ;) comment comment (expression_statement "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);" (call_expression "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a784))" ( (pointer_expression "**(code **)(pcVar9 + 0x6a784)" * (pointer_expression "*(code **)(pcVar9 + 0x6a784)" * (cast_expression "(code **)(pcVar9 + 0x6a784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x6a784)" ( (binary_expression "pcVar9 + 0x6a784" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar9 + 0x6a644) + -0xdb8" (pointer_expression "*(int *)(pcVar9 + 0x6a644)" * (cast_expression "(int *)(pcVar9 + 0x6a644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x6a644)" ( (binary_expression "pcVar9 + 0x6a644" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid ssh_size(void *handle,int width,int height)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  Packet *pPVar3;\n  ulong uVar4;\n  ulong port;\n  ssh_channel *c;\n  char *ptr;\n  Ssh_conflict psVar5;\n  Ssh_conflict psVar6;\n  undefined *puVar7;\n  int iStack_a0;\n  char *pcStack_9c;\n  undefined1 auStack_98 [4];\n  ulong uStack_94;\n  char *pcStack_8c;\n  undefined4 uStack_7c;\n  void *pvStack_78;\n  undefined *puStack_74;\n  uchar x [4];\n  \n  *(int *)((int)handle + 0x11c) = width;\n  *(int *)((int)handle + 0x120) = height;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  psVar5 = *(Ssh_conflict *)PTR___stack_chk_guard_000adcd4;\n  psVar6 = psVar5;\n  if (*(int *)((int)handle + 0x144) == 2) {\n    *(undefined4 *)((int)handle + 0x148) = 1;\n  }\n  else if (*(int *)((int)handle + 0x144) == 3) {\n    width = (int)&DAT_00000016;\n    psVar6 = *(Ssh_conflict *)((int)handle + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)();\n    if (iVar2 == 0) {\n      if (*(int *)((int)handle + 0x198) == 1) {\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }\n      else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }\n    }\n  }\n  if (psVar5 == *(Ssh_conflict *)puVar1) {\n    return;\n  }\n  puVar7 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_74 = puVar1;\n  uStack_7c = **(undefined4 **)(puVar7 + 0x6b2fc);\n  pPVar3 = (Packet *)width;\n  pvStack_78 = handle;\n  uVar4 = ssh_pkt_getuint32((Packet *)width);\n  ssh_pkt_getstring(pPVar3,&pcStack_9c,&iStack_a0);\n  port = ssh_pkt_getuint32((Packet *)width);\n  if (pcStack_9c == (char *)0x0) {\n    pcStack_9c = (char *)(*(int *)(puVar7 + 0x6a8f0) + -0x22a4);\n  }\n  pcStack_8c = (char *)(**(code **)(puVar7 + 0x6a900))\n                                 (*(int *)(puVar7 + 0x6a8f0) + -0x1de0,iStack_a0,pcStack_9c);\n  uStack_94 = port;\n  iVar2 = (**(code **)(puVar7 + 0x6aaa0))(psVar6->rportfwds,auStack_98,0);\n  if (iVar2 == 0) {\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x71c),pcStack_8c,port);\n    send_packet(psVar6,0x16,1,uVar4,0);\n  }\n  else {\n    c = (ssh_channel *)(**(code **)(puVar7 + 0x6aa3c))(1,0x5c);\n    c->ssh = psVar6;\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0),pcStack_8c,port);\n    ptr = pfd_connect(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,\n                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24));\n    if (ptr != (char *)0x0) {\n      logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr);\n                    /* WARNING: Subroutine does not return */\n      safefree(ptr);\n    }\n    ssh_channel_init(c);\n    c->type = 3;\n    c->remoteid = uVar4;\n    c->halfopen = 0;\n    send_packet(psVar6,0x15,1,uVar4,1,c->localid,0);\n    (**(code **)(puVar7 + 0x6aa30))(psVar6->frontend,*(int *)(puVar7 + 0x6a8f0) + -0xe10);\n  }\n                    /* WARNING: Subroutine does not return */\n  safefree(pcStack_8c);\n}\n\n" comment (function_definition "void ssh_size(void *handle,int width,int height)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  Packet *pPVar3;\n  ulong uVar4;\n  ulong port;\n  ssh_channel *c;\n  char *ptr;\n  Ssh_conflict psVar5;\n  Ssh_conflict psVar6;\n  undefined *puVar7;\n  int iStack_a0;\n  char *pcStack_9c;\n  undefined1 auStack_98 [4];\n  ulong uStack_94;\n  char *pcStack_8c;\n  undefined4 uStack_7c;\n  void *pvStack_78;\n  undefined *puStack_74;\n  uchar x [4];\n  \n  *(int *)((int)handle + 0x11c) = width;\n  *(int *)((int)handle + 0x120) = height;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  psVar5 = *(Ssh_conflict *)PTR___stack_chk_guard_000adcd4;\n  psVar6 = psVar5;\n  if (*(int *)((int)handle + 0x144) == 2) {\n    *(undefined4 *)((int)handle + 0x148) = 1;\n  }\n  else if (*(int *)((int)handle + 0x144) == 3) {\n    width = (int)&DAT_00000016;\n    psVar6 = *(Ssh_conflict *)((int)handle + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)();\n    if (iVar2 == 0) {\n      if (*(int *)((int)handle + 0x198) == 1) {\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }\n      else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }\n    }\n  }\n  if (psVar5 == *(Ssh_conflict *)puVar1) {\n    return;\n  }\n  puVar7 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_74 = puVar1;\n  uStack_7c = **(undefined4 **)(puVar7 + 0x6b2fc);\n  pPVar3 = (Packet *)width;\n  pvStack_78 = handle;\n  uVar4 = ssh_pkt_getuint32((Packet *)width);\n  ssh_pkt_getstring(pPVar3,&pcStack_9c,&iStack_a0);\n  port = ssh_pkt_getuint32((Packet *)width);\n  if (pcStack_9c == (char *)0x0) {\n    pcStack_9c = (char *)(*(int *)(puVar7 + 0x6a8f0) + -0x22a4);\n  }\n  pcStack_8c = (char *)(**(code **)(puVar7 + 0x6a900))\n                                 (*(int *)(puVar7 + 0x6a8f0) + -0x1de0,iStack_a0,pcStack_9c);\n  uStack_94 = port;\n  iVar2 = (**(code **)(puVar7 + 0x6aaa0))(psVar6->rportfwds,auStack_98,0);\n  if (iVar2 == 0) {\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x71c),pcStack_8c,port);\n    send_packet(psVar6,0x16,1,uVar4,0);\n  }\n  else {\n    c = (ssh_channel *)(**(code **)(puVar7 + 0x6aa3c))(1,0x5c);\n    c->ssh = psVar6;\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0),pcStack_8c,port);\n    ptr = pfd_connect(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,\n                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24));\n    if (ptr != (char *)0x0) {\n      logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr);\n                    /* WARNING: Subroutine does not return */\n      safefree(ptr);\n    }\n    ssh_channel_init(c);\n    c->type = 3;\n    c->remoteid = uVar4;\n    c->halfopen = 0;\n    send_packet(psVar6,0x15,1,uVar4,1,c->localid,0);\n    (**(code **)(puVar7 + 0x6aa30))(psVar6->frontend,*(int *)(puVar7 + 0x6a8f0) + -0xe10);\n  }\n                    /* WARNING: Subroutine does not return */\n  safefree(pcStack_8c);\n}" primitive_type (function_declarator "ssh_size(void *handle,int width,int height)" identifier (parameter_list "(void *handle,int width,int height)" ( (parameter_declaration "void *handle" primitive_type (pointer_declarator "*handle" * identifier)) , (parameter_declaration "int width" primitive_type identifier) , (parameter_declaration "int height" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  Packet *pPVar3;\n  ulong uVar4;\n  ulong port;\n  ssh_channel *c;\n  char *ptr;\n  Ssh_conflict psVar5;\n  Ssh_conflict psVar6;\n  undefined *puVar7;\n  int iStack_a0;\n  char *pcStack_9c;\n  undefined1 auStack_98 [4];\n  ulong uStack_94;\n  char *pcStack_8c;\n  undefined4 uStack_7c;\n  void *pvStack_78;\n  undefined *puStack_74;\n  uchar x [4];\n  \n  *(int *)((int)handle + 0x11c) = width;\n  *(int *)((int)handle + 0x120) = height;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  psVar5 = *(Ssh_conflict *)PTR___stack_chk_guard_000adcd4;\n  psVar6 = psVar5;\n  if (*(int *)((int)handle + 0x144) == 2) {\n    *(undefined4 *)((int)handle + 0x148) = 1;\n  }\n  else if (*(int *)((int)handle + 0x144) == 3) {\n    width = (int)&DAT_00000016;\n    psVar6 = *(Ssh_conflict *)((int)handle + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)();\n    if (iVar2 == 0) {\n      if (*(int *)((int)handle + 0x198) == 1) {\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }\n      else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }\n    }\n  }\n  if (psVar5 == *(Ssh_conflict *)puVar1) {\n    return;\n  }\n  puVar7 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  puStack_74 = puVar1;\n  uStack_7c = **(undefined4 **)(puVar7 + 0x6b2fc);\n  pPVar3 = (Packet *)width;\n  pvStack_78 = handle;\n  uVar4 = ssh_pkt_getuint32((Packet *)width);\n  ssh_pkt_getstring(pPVar3,&pcStack_9c,&iStack_a0);\n  port = ssh_pkt_getuint32((Packet *)width);\n  if (pcStack_9c == (char *)0x0) {\n    pcStack_9c = (char *)(*(int *)(puVar7 + 0x6a8f0) + -0x22a4);\n  }\n  pcStack_8c = (char *)(**(code **)(puVar7 + 0x6a900))\n                                 (*(int *)(puVar7 + 0x6a8f0) + -0x1de0,iStack_a0,pcStack_9c);\n  uStack_94 = port;\n  iVar2 = (**(code **)(puVar7 + 0x6aaa0))(psVar6->rportfwds,auStack_98,0);\n  if (iVar2 == 0) {\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x71c),pcStack_8c,port);\n    send_packet(psVar6,0x16,1,uVar4,0);\n  }\n  else {\n    c = (ssh_channel *)(**(code **)(puVar7 + 0x6aa3c))(1,0x5c);\n    c->ssh = psVar6;\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0),pcStack_8c,port);\n    ptr = pfd_connect(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,\n                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24));\n    if (ptr != (char *)0x0) {\n      logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr);\n                    /* WARNING: Subroutine does not return */\n      safefree(ptr);\n    }\n    ssh_channel_init(c);\n    c->type = 3;\n    c->remoteid = uVar4;\n    c->halfopen = 0;\n    send_packet(psVar6,0x15,1,uVar4,1,c->localid,0);\n    (**(code **)(puVar7 + 0x6aa30))(psVar6->frontend,*(int *)(puVar7 + 0x6a8f0) + -0xe10);\n  }\n                    /* WARNING: Subroutine does not return */\n  safefree(pcStack_8c);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "Packet *pPVar3;" type_identifier (pointer_declarator "*pPVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "ulong port;" type_identifier identifier ;) (declaration "ssh_channel *c;" type_identifier (pointer_declarator "*c" * identifier) ;) (declaration "char *ptr;" primitive_type (pointer_declarator "*ptr" * identifier) ;) (declaration "Ssh_conflict psVar5;" type_identifier identifier ;) (declaration "Ssh_conflict psVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iStack_a0;" primitive_type identifier ;) (declaration "char *pcStack_9c;" primitive_type (pointer_declarator "*pcStack_9c" * identifier) ;) (declaration "undefined1 auStack_98 [4];" type_identifier (array_declarator "auStack_98 [4]" identifier [ number_literal ]) ;) (declaration "ulong uStack_94;" type_identifier identifier ;) (declaration "char *pcStack_8c;" primitive_type (pointer_declarator "*pcStack_8c" * identifier) ;) (declaration "undefined4 uStack_7c;" type_identifier identifier ;) (declaration "void *pvStack_78;" primitive_type (pointer_declarator "*pvStack_78" * identifier) ;) (declaration "undefined *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "uchar x [4];" type_identifier (array_declarator "x [4]" identifier [ number_literal ]) ;) (expression_statement "*(int *)((int)handle + 0x11c) = width;" (assignment_expression "*(int *)((int)handle + 0x11c) = width" (pointer_expression "*(int *)((int)handle + 0x11c)" * (cast_expression "(int *)((int)handle + 0x11c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)handle + 0x11c)" ( (binary_expression "(int)handle + 0x11c" (cast_expression "(int)handle" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)handle + 0x120) = height;" (assignment_expression "*(int *)((int)handle + 0x120) = height" (pointer_expression "*(int *)((int)handle + 0x120)" * (cast_expression "(int *)((int)handle + 0x120)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)handle + 0x120)" ( (binary_expression "(int)handle + 0x120" (cast_expression "(int)handle" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "psVar5 = *(Ssh_conflict *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "psVar5 = *(Ssh_conflict *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(Ssh_conflict *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(Ssh_conflict *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "Ssh_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "psVar6 = psVar5;" (assignment_expression "psVar6 = psVar5" identifier = identifier) ;) (if_statement "if (*(int *)((int)handle + 0x144) == 2) {\n    *(undefined4 *)((int)handle + 0x148) = 1;\n  }\n  else if (*(int *)((int)handle + 0x144) == 3) {\n    width = (int)&DAT_00000016;\n    psVar6 = *(Ssh_conflict *)((int)handle + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)();\n    if (iVar2 == 0) {\n      if (*(int *)((int)handle + 0x198) == 1) {\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }\n      else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)((int)handle + 0x144) == 2)" ( (binary_expression "*(int *)((int)handle + 0x144) == 2" (pointer_expression "*(int *)((int)handle + 0x144)" * (cast_expression "(int *)((int)handle + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)handle + 0x144)" ( (binary_expression "(int)handle + 0x144" (cast_expression "(int)handle" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)handle + 0x148) = 1;\n  }" { (expression_statement "*(undefined4 *)((int)handle + 0x148) = 1;" (assignment_expression "*(undefined4 *)((int)handle + 0x148) = 1" (pointer_expression "*(undefined4 *)((int)handle + 0x148)" * (cast_expression "(undefined4 *)((int)handle + 0x148)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)handle + 0x148)" ( (binary_expression "(int)handle + 0x148" (cast_expression "(int)handle" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if (*(int *)((int)handle + 0x144) == 3) {\n    width = (int)&DAT_00000016;\n    psVar6 = *(Ssh_conflict *)((int)handle + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)();\n    if (iVar2 == 0) {\n      if (*(int *)((int)handle + 0x198) == 1) {\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }\n      else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }\n    }\n  }" else (if_statement "if (*(int *)((int)handle + 0x144) == 3) {\n    width = (int)&DAT_00000016;\n    psVar6 = *(Ssh_conflict *)((int)handle + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)();\n    if (iVar2 == 0) {\n      if (*(int *)((int)handle + 0x198) == 1) {\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }\n      else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)((int)handle + 0x144) == 3)" ( (binary_expression "*(int *)((int)handle + 0x144) == 3" (pointer_expression "*(int *)((int)handle + 0x144)" * (cast_expression "(int *)((int)handle + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)handle + 0x144)" ( (binary_expression "(int)handle + 0x144" (cast_expression "(int)handle" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    width = (int)&DAT_00000016;\n    psVar6 = *(Ssh_conflict *)((int)handle + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)();\n    if (iVar2 == 0) {\n      if (*(int *)((int)handle + 0x198) == 1) {\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }\n      else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }\n    }\n  }" { (expression_statement "width = (int)&DAT_00000016;" (assignment_expression "width = (int)&DAT_00000016" identifier = (cast_expression "(int)&DAT_00000016" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00000016" & identifier))) ;) (expression_statement "psVar6 = *(Ssh_conflict *)((int)handle + 0x248);" (assignment_expression "psVar6 = *(Ssh_conflict *)((int)handle + 0x248)" identifier = (pointer_expression "*(Ssh_conflict *)((int)handle + 0x248)" * (cast_expression "(Ssh_conflict *)((int)handle + 0x248)" ( (type_descriptor "Ssh_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)handle + 0x248)" ( (binary_expression "(int)handle + 0x248" (cast_expression "(int)handle" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar2 = (*(code *)PTR_conf_get_int_000ad34c)();" (assignment_expression "iVar2 = (*(code *)PTR_conf_get_int_000ad34c)()" identifier = (call_expression "(*(code *)PTR_conf_get_int_000ad34c)()" (parenthesized_expression "(*(code *)PTR_conf_get_int_000ad34c)" ( (pointer_expression "*(code *)PTR_conf_get_int_000ad34c" * (cast_expression "(code *)PTR_conf_get_int_000ad34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n      if (*(int *)((int)handle + 0x198) == 1) {\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }\n      else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)((int)handle + 0x198) == 1) {\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }\n      else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }\n    }" { (if_statement "if (*(int *)((int)handle + 0x198) == 1) {\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }\n      else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }" if (parenthesized_expression "(*(int *)((int)handle + 0x198) == 1)" ( (binary_expression "*(int *)((int)handle + 0x198) == 1" (pointer_expression "*(int *)((int)handle + 0x198)" * (cast_expression "(int *)((int)handle + 0x198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)handle + 0x198)" ( (binary_expression "(int)handle + 0x198" (cast_expression "(int)handle" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        width = 0xb;\n        psVar6 = (Ssh_conflict)handle;\n        send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));\n      }" { (expression_statement "width = 0xb;" (assignment_expression "width = 0xb" identifier = number_literal) ;) (expression_statement "psVar6 = (Ssh_conflict)handle;" (assignment_expression "psVar6 = (Ssh_conflict)handle" identifier = (cast_expression "(Ssh_conflict)handle" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier)) ;) (expression_statement "send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120));" (call_expression "send_packet((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120))" identifier (argument_list "((Ssh_conflict)handle,0xb,1,*(undefined4 *)((int)handle + 0x120))" ( (cast_expression "(Ssh_conflict)handle" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier) , number_literal , number_literal , (pointer_expression "*(undefined4 *)((int)handle + 0x120)" * (cast_expression "(undefined4 *)((int)handle + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)handle + 0x120)" ( (binary_expression "(int)handle + 0x120" (cast_expression "(int)handle" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) }) (else_clause "else {\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }" else (compound_statement "{\n        psVar6 = *(Ssh_conflict *)((int)handle + 0x128);\n        width = (int)PTR_DAT_000ad2c8;\n        if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }\n      }" { (expression_statement "psVar6 = *(Ssh_conflict *)((int)handle + 0x128);" (assignment_expression "psVar6 = *(Ssh_conflict *)((int)handle + 0x128)" identifier = (pointer_expression "*(Ssh_conflict *)((int)handle + 0x128)" * (cast_expression "(Ssh_conflict *)((int)handle + 0x128)" ( (type_descriptor "Ssh_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)handle + 0x128)" ( (binary_expression "(int)handle + 0x128" (cast_expression "(int)handle" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "width = (int)PTR_DAT_000ad2c8;" (assignment_expression "width = (int)PTR_DAT_000ad2c8" identifier = (cast_expression "(int)PTR_DAT_000ad2c8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (psVar6 != (Ssh_conflict)0x0) {\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }" if (parenthesized_expression "(psVar6 != (Ssh_conflict)0x0)" ( (binary_expression "psVar6 != (Ssh_conflict)0x0" identifier != (cast_expression "(Ssh_conflict)0x0" ( (type_descriptor "Ssh_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n          pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);\n                    /* WARNING: Subroutine does not return */\n          ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));\n        }" { (expression_statement "pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0);" (assignment_expression "pPVar3 = ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0)" identifier = (call_expression "ssh2_chanreq_init((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0)" identifier (argument_list "((ssh_channel *)psVar6,PTR_DAT_000ad2c8 + -0x72c,\n                                     (cchandler_fn_t)0x0,(void *)0x0)" ( (cast_expression "(ssh_channel *)psVar6" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "PTR_DAT_000ad2c8 + -0x72c" identifier + number_literal) , (cast_expression "(cchandler_fn_t)0x0" ( (type_descriptor "cchandler_fn_t" type_identifier) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) comment (expression_statement "ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c));" (call_expression "ssh_pkt_adduint32(pPVar3,*(ulong *)((int)handle + 0x11c))" identifier (argument_list "(pPVar3,*(ulong *)((int)handle + 0x11c))" ( identifier , (pointer_expression "*(ulong *)((int)handle + 0x11c)" * (cast_expression "(ulong *)((int)handle + 0x11c)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)handle + 0x11c)" ( (binary_expression "(int)handle + 0x11c" (cast_expression "(int)handle" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) }))) })) })))) (if_statement "if (psVar5 == *(Ssh_conflict *)puVar1) {\n    return;\n  }" if (parenthesized_expression "(psVar5 == *(Ssh_conflict *)puVar1)" ( (binary_expression "psVar5 == *(Ssh_conflict *)puVar1" identifier == (pointer_expression "*(Ssh_conflict *)puVar1" * (cast_expression "(Ssh_conflict *)puVar1" ( (type_descriptor "Ssh_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar7 = PTR___stack_chk_fail_000adca4;" (assignment_expression "puVar7 = PTR___stack_chk_fail_000adca4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_74 = puVar1;" (assignment_expression "puStack_74 = puVar1" identifier = identifier) ;) (expression_statement "uStack_7c = **(undefined4 **)(puVar7 + 0x6b2fc);" (assignment_expression "uStack_7c = **(undefined4 **)(puVar7 + 0x6b2fc)" identifier = (pointer_expression "**(undefined4 **)(puVar7 + 0x6b2fc)" * (pointer_expression "*(undefined4 **)(puVar7 + 0x6b2fc)" * (cast_expression "(undefined4 **)(puVar7 + 0x6b2fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x6b2fc)" ( (binary_expression "puVar7 + 0x6b2fc" identifier + number_literal) )))))) ;) (expression_statement "pPVar3 = (Packet *)width;" (assignment_expression "pPVar3 = (Packet *)width" identifier = (cast_expression "(Packet *)width" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pvStack_78 = handle;" (assignment_expression "pvStack_78 = handle" identifier = identifier) ;) (expression_statement "uVar4 = ssh_pkt_getuint32((Packet *)width);" (assignment_expression "uVar4 = ssh_pkt_getuint32((Packet *)width)" identifier = (call_expression "ssh_pkt_getuint32((Packet *)width)" identifier (argument_list "((Packet *)width)" ( (cast_expression "(Packet *)width" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "ssh_pkt_getstring(pPVar3,&pcStack_9c,&iStack_a0);" (call_expression "ssh_pkt_getstring(pPVar3,&pcStack_9c,&iStack_a0)" identifier (argument_list "(pPVar3,&pcStack_9c,&iStack_a0)" ( identifier , (pointer_expression "&pcStack_9c" & identifier) , (pointer_expression "&iStack_a0" & identifier) ))) ;) (expression_statement "port = ssh_pkt_getuint32((Packet *)width);" (assignment_expression "port = ssh_pkt_getuint32((Packet *)width)" identifier = (call_expression "ssh_pkt_getuint32((Packet *)width)" identifier (argument_list "((Packet *)width)" ( (cast_expression "(Packet *)width" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (pcStack_9c == (char *)0x0) {\n    pcStack_9c = (char *)(*(int *)(puVar7 + 0x6a8f0) + -0x22a4);\n  }" if (parenthesized_expression "(pcStack_9c == (char *)0x0)" ( (binary_expression "pcStack_9c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcStack_9c = (char *)(*(int *)(puVar7 + 0x6a8f0) + -0x22a4);\n  }" { (expression_statement "pcStack_9c = (char *)(*(int *)(puVar7 + 0x6a8f0) + -0x22a4);" (assignment_expression "pcStack_9c = (char *)(*(int *)(puVar7 + 0x6a8f0) + -0x22a4)" identifier = (cast_expression "(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x22a4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar7 + 0x6a8f0) + -0x22a4)" ( (binary_expression "*(int *)(puVar7 + 0x6a8f0) + -0x22a4" (pointer_expression "*(int *)(puVar7 + 0x6a8f0)" * (cast_expression "(int *)(puVar7 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x6a8f0)" ( (binary_expression "puVar7 + 0x6a8f0" identifier + number_literal) )))) + number_literal) )))) ;) })) (expression_statement "pcStack_8c = (char *)(**(code **)(puVar7 + 0x6a900))\n                                 (*(int *)(puVar7 + 0x6a8f0) + -0x1de0,iStack_a0,pcStack_9c);" (assignment_expression "pcStack_8c = (char *)(**(code **)(puVar7 + 0x6a900))\n                                 (*(int *)(puVar7 + 0x6a8f0) + -0x1de0,iStack_a0,pcStack_9c)" identifier = (cast_expression "(char *)(**(code **)(puVar7 + 0x6a900))\n                                 (*(int *)(puVar7 + 0x6a8f0) + -0x1de0,iStack_a0,pcStack_9c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar7 + 0x6a900))\n                                 (*(int *)(puVar7 + 0x6a8f0) + -0x1de0,iStack_a0,pcStack_9c)" (parenthesized_expression "(**(code **)(puVar7 + 0x6a900))" ( (pointer_expression "**(code **)(puVar7 + 0x6a900)" * (pointer_expression "*(code **)(puVar7 + 0x6a900)" * (cast_expression "(code **)(puVar7 + 0x6a900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x6a900)" ( (binary_expression "puVar7 + 0x6a900" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar7 + 0x6a8f0) + -0x1de0,iStack_a0,pcStack_9c)" ( (binary_expression "*(int *)(puVar7 + 0x6a8f0) + -0x1de0" (pointer_expression "*(int *)(puVar7 + 0x6a8f0)" * (cast_expression "(int *)(puVar7 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x6a8f0)" ( (binary_expression "puVar7 + 0x6a8f0" identifier + number_literal) )))) + number_literal) , identifier , identifier ))))) ;) (expression_statement "uStack_94 = port;" (assignment_expression "uStack_94 = port" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(puVar7 + 0x6aaa0))(psVar6->rportfwds,auStack_98,0);" (assignment_expression "iVar2 = (**(code **)(puVar7 + 0x6aaa0))(psVar6->rportfwds,auStack_98,0)" identifier = (call_expression "(**(code **)(puVar7 + 0x6aaa0))(psVar6->rportfwds,auStack_98,0)" (parenthesized_expression "(**(code **)(puVar7 + 0x6aaa0))" ( (pointer_expression "**(code **)(puVar7 + 0x6aaa0)" * (pointer_expression "*(code **)(puVar7 + 0x6aaa0)" * (cast_expression "(code **)(puVar7 + 0x6aaa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x6aaa0)" ( (binary_expression "puVar7 + 0x6aaa0" identifier + number_literal) ))))) )) (argument_list "(psVar6->rportfwds,auStack_98,0)" ( (field_expression "psVar6->rportfwds" identifier -> field_identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x71c),pcStack_8c,port);\n    send_packet(psVar6,0x16,1,uVar4,0);\n  }\n  else {\n    c = (ssh_channel *)(**(code **)(puVar7 + 0x6aa3c))(1,0x5c);\n    c->ssh = psVar6;\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0),pcStack_8c,port);\n    ptr = pfd_connect(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,\n                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24));\n    if (ptr != (char *)0x0) {\n      logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr);\n                    /* WARNING: Subroutine does not return */\n      safefree(ptr);\n    }\n    ssh_channel_init(c);\n    c->type = 3;\n    c->remoteid = uVar4;\n    c->halfopen = 0;\n    send_packet(psVar6,0x15,1,uVar4,1,c->localid,0);\n    (**(code **)(puVar7 + 0x6aa30))(psVar6->frontend,*(int *)(puVar7 + 0x6a8f0) + -0xe10);\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x71c),pcStack_8c,port);\n    send_packet(psVar6,0x16,1,uVar4,0);\n  }" { (expression_statement "logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x71c),pcStack_8c,port);" (call_expression "logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x71c),pcStack_8c,port)" identifier (argument_list "(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x71c),pcStack_8c,port)" ( identifier , (cast_expression "(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x71c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar7 + 0x6a8f0) + -0x71c)" ( (binary_expression "*(int *)(puVar7 + 0x6a8f0) + -0x71c" (pointer_expression "*(int *)(puVar7 + 0x6a8f0)" * (cast_expression "(int *)(puVar7 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x6a8f0)" ( (binary_expression "puVar7 + 0x6a8f0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "send_packet(psVar6,0x16,1,uVar4,0);" (call_expression "send_packet(psVar6,0x16,1,uVar4,0)" identifier (argument_list "(psVar6,0x16,1,uVar4,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }) (else_clause "else {\n    c = (ssh_channel *)(**(code **)(puVar7 + 0x6aa3c))(1,0x5c);\n    c->ssh = psVar6;\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0),pcStack_8c,port);\n    ptr = pfd_connect(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,\n                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24));\n    if (ptr != (char *)0x0) {\n      logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr);\n                    /* WARNING: Subroutine does not return */\n      safefree(ptr);\n    }\n    ssh_channel_init(c);\n    c->type = 3;\n    c->remoteid = uVar4;\n    c->halfopen = 0;\n    send_packet(psVar6,0x15,1,uVar4,1,c->localid,0);\n    (**(code **)(puVar7 + 0x6aa30))(psVar6->frontend,*(int *)(puVar7 + 0x6a8f0) + -0xe10);\n  }" else (compound_statement "{\n    c = (ssh_channel *)(**(code **)(puVar7 + 0x6aa3c))(1,0x5c);\n    c->ssh = psVar6;\n    logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0),pcStack_8c,port);\n    ptr = pfd_connect(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,\n                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24));\n    if (ptr != (char *)0x0) {\n      logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr);\n                    /* WARNING: Subroutine does not return */\n      safefree(ptr);\n    }\n    ssh_channel_init(c);\n    c->type = 3;\n    c->remoteid = uVar4;\n    c->halfopen = 0;\n    send_packet(psVar6,0x15,1,uVar4,1,c->localid,0);\n    (**(code **)(puVar7 + 0x6aa30))(psVar6->frontend,*(int *)(puVar7 + 0x6a8f0) + -0xe10);\n  }" { (expression_statement "c = (ssh_channel *)(**(code **)(puVar7 + 0x6aa3c))(1,0x5c);" (assignment_expression "c = (ssh_channel *)(**(code **)(puVar7 + 0x6aa3c))(1,0x5c)" identifier = (cast_expression "(ssh_channel *)(**(code **)(puVar7 + 0x6aa3c))(1,0x5c)" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar7 + 0x6aa3c))(1,0x5c)" (parenthesized_expression "(**(code **)(puVar7 + 0x6aa3c))" ( (pointer_expression "**(code **)(puVar7 + 0x6aa3c)" * (pointer_expression "*(code **)(puVar7 + 0x6aa3c)" * (cast_expression "(code **)(puVar7 + 0x6aa3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x6aa3c)" ( (binary_expression "puVar7 + 0x6aa3c" identifier + number_literal) ))))) )) (argument_list "(1,0x5c)" ( number_literal , number_literal ))))) ;) (expression_statement "c->ssh = psVar6;" (assignment_expression "c->ssh = psVar6" (field_expression "c->ssh" identifier -> field_identifier) = identifier) ;) (expression_statement "logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0),pcStack_8c,port);" (call_expression "logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0),pcStack_8c,port)" identifier (argument_list "(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0),pcStack_8c,port)" ( identifier , (cast_expression "(char *)(*(int *)(puVar7 + 0x6a8f0) + -0x6f0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar7 + 0x6a8f0) + -0x6f0)" ( (binary_expression "*(int *)(puVar7 + 0x6a8f0) + -0x6f0" (pointer_expression "*(int *)(puVar7 + 0x6a8f0)" * (cast_expression "(int *)(puVar7 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x6a8f0)" ( (binary_expression "puVar7 + 0x6a8f0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "ptr = pfd_connect(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,\n                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24));" (assignment_expression "ptr = pfd_connect(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,\n                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24))" identifier = (call_expression "pfd_connect(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,\n                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24))" identifier (argument_list "(&(c->u).pfd.pf,pcStack_8c,port,c,psVar6->conf,\n                      *(int *)(*(int *)(iVar2 + 0x18) + 0x24))" ( (pointer_expression "&(c->u).pfd.pf" & (field_expression "(c->u).pfd.pf" (field_expression "(c->u).pfd" (parenthesized_expression "(c->u)" ( (field_expression "c->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , identifier , identifier , identifier , (field_expression "psVar6->conf" identifier -> field_identifier) , (pointer_expression "*(int *)(*(int *)(iVar2 + 0x18) + 0x24)" * (cast_expression "(int *)(*(int *)(iVar2 + 0x18) + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 0x18) + 0x24)" ( (binary_expression "*(int *)(iVar2 + 0x18) + 0x24" (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (ptr != (char *)0x0) {\n      logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr);\n                    /* WARNING: Subroutine does not return */\n      safefree(ptr);\n    }" if (parenthesized_expression "(ptr != (char *)0x0)" ( (binary_expression "ptr != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr);\n                    /* WARNING: Subroutine does not return */\n      safefree(ptr);\n    }" { (expression_statement "logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr);" (call_expression "logeventf(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr)" identifier (argument_list "(psVar6,(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28),ptr)" ( identifier , (cast_expression "(char *)(*(int *)(puVar7 + 0x6a8f0) + -0xe28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar7 + 0x6a8f0) + -0xe28)" ( (binary_expression "*(int *)(puVar7 + 0x6a8f0) + -0xe28" (pointer_expression "*(int *)(puVar7 + 0x6a8f0)" * (cast_expression "(int *)(puVar7 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x6a8f0)" ( (binary_expression "puVar7 + 0x6a8f0" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) comment (expression_statement "safefree(ptr);" (call_expression "safefree(ptr)" identifier (argument_list "(ptr)" ( identifier ))) ;) })) (expression_statement "ssh_channel_init(c);" (call_expression "ssh_channel_init(c)" identifier (argument_list "(c)" ( identifier ))) ;) (expression_statement "c->type = 3;" (assignment_expression "c->type = 3" (field_expression "c->type" identifier -> field_identifier) = number_literal) ;) (expression_statement "c->remoteid = uVar4;" (assignment_expression "c->remoteid = uVar4" (field_expression "c->remoteid" identifier -> field_identifier) = identifier) ;) (expression_statement "c->halfopen = 0;" (assignment_expression "c->halfopen = 0" (field_expression "c->halfopen" identifier -> field_identifier) = number_literal) ;) (expression_statement "send_packet(psVar6,0x15,1,uVar4,1,c->localid,0);" (call_expression "send_packet(psVar6,0x15,1,uVar4,1,c->localid,0)" identifier (argument_list "(psVar6,0x15,1,uVar4,1,c->localid,0)" ( identifier , number_literal , number_literal , identifier , number_literal , (field_expression "c->localid" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "(**(code **)(puVar7 + 0x6aa30))(psVar6->frontend,*(int *)(puVar7 + 0x6a8f0) + -0xe10);" (call_expression "(**(code **)(puVar7 + 0x6aa30))(psVar6->frontend,*(int *)(puVar7 + 0x6a8f0) + -0xe10)" (parenthesized_expression "(**(code **)(puVar7 + 0x6aa30))" ( (pointer_expression "**(code **)(puVar7 + 0x6aa30)" * (pointer_expression "*(code **)(puVar7 + 0x6aa30)" * (cast_expression "(code **)(puVar7 + 0x6aa30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x6aa30)" ( (binary_expression "puVar7 + 0x6aa30" identifier + number_literal) ))))) )) (argument_list "(psVar6->frontend,*(int *)(puVar7 + 0x6a8f0) + -0xe10)" ( (field_expression "psVar6->frontend" identifier -> field_identifier) , (binary_expression "*(int *)(puVar7 + 0x6a8f0) + -0xe10" (pointer_expression "*(int *)(puVar7 + 0x6a8f0)" * (cast_expression "(int *)(puVar7 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x6a8f0)" ( (binary_expression "puVar7 + 0x6a8f0" identifier + number_literal) )))) + number_literal) ))) ;) }))) comment (expression_statement "safefree(pcStack_8c);" (call_expression "safefree(pcStack_8c)" identifier (argument_list "(pcStack_8c)" ( identifier ))) ;) })))
(translation_unit "void FUN_00042824(int param_1,undefined1 *param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined1 *unaff_s2;\n  undefined *unaff_s3;\n  int *piVar7;\n  undefined4 *unaff_s4;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 local_a0;\n  int local_9c;\n  undefined1 auStack_98 [4];\n  undefined4 local_94;\n  int local_8c;\n  int local_7c;\n  int local_78;\n  undefined *local_74;\n  undefined1 *local_70;\n  undefined *local_6c;\n  undefined4 *local_68;\n  undefined4 local_20;\n  int local_1c;\n  \n  *(undefined1 **)(param_1 + 0x11c) = param_2;\n  *(undefined4 *)(param_1 + 0x120) = param_3;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;\n  local_1c = iVar6;\n  if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }\n  if (local_1c == *(int *)puVar1) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  local_74 = puVar1;\n  piVar7 = *(int **)(puVar8 + 0x6b2fc);\n  local_7c = *piVar7;\n  local_78 = param_1;\n  local_70 = unaff_s2;\n  local_6c = unaff_s3;\n  local_68 = unaff_s4;\n  iVar2 = FUN_0002f068(param_2);\n  FUN_0002fb84();\n  uVar3 = FUN_0002f068(param_2);\n  if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }\n  local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;\n  local_94 = uVar3;\n  iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);\n  if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }\n  iVar4 = 0x16;\n  FUN_00041954(iVar6,0x16,1,iVar2,0);\nLAB_00042b8c:\n  iVar6 = local_8c;\n  safefree();\n  if (local_7c == *piVar7) {\n    return;\n  }\n  pcVar9 = *(code **)(puVar8 + 0x6b2cc);\n  (*pcVar9)();\n  iVar2 = FUN_0002f068(iVar4);\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);\n  if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    \n                    \n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }\n  piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);\n  *piVar7 = iVar6;\n  FUN_00036678(piVar7);\n  iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);\n  piVar7[0x13] = iVar4;\n  piVar7[1] = iVar2;\n  piVar7[4] = 0;\n  piVar7[3] = 1;\n  FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);\n                    \n                    \n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);\n  return;\n}\n\n" (function_definition "void FUN_00042824(int param_1,undefined1 *param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined1 *unaff_s2;\n  undefined *unaff_s3;\n  int *piVar7;\n  undefined4 *unaff_s4;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 local_a0;\n  int local_9c;\n  undefined1 auStack_98 [4];\n  undefined4 local_94;\n  int local_8c;\n  int local_7c;\n  int local_78;\n  undefined *local_74;\n  undefined1 *local_70;\n  undefined *local_6c;\n  undefined4 *local_68;\n  undefined4 local_20;\n  int local_1c;\n  \n  *(undefined1 **)(param_1 + 0x11c) = param_2;\n  *(undefined4 *)(param_1 + 0x120) = param_3;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;\n  local_1c = iVar6;\n  if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }\n  if (local_1c == *(int *)puVar1) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  local_74 = puVar1;\n  piVar7 = *(int **)(puVar8 + 0x6b2fc);\n  local_7c = *piVar7;\n  local_78 = param_1;\n  local_70 = unaff_s2;\n  local_6c = unaff_s3;\n  local_68 = unaff_s4;\n  iVar2 = FUN_0002f068(param_2);\n  FUN_0002fb84();\n  uVar3 = FUN_0002f068(param_2);\n  if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }\n  local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;\n  local_94 = uVar3;\n  iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);\n  if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }\n  iVar4 = 0x16;\n  FUN_00041954(iVar6,0x16,1,iVar2,0);\nLAB_00042b8c:\n  iVar6 = local_8c;\n  safefree();\n  if (local_7c == *piVar7) {\n    return;\n  }\n  pcVar9 = *(code **)(puVar8 + 0x6b2cc);\n  (*pcVar9)();\n  iVar2 = FUN_0002f068(iVar4);\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);\n  if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    \n                    \n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }\n  piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);\n  *piVar7 = iVar6;\n  FUN_00036678(piVar7);\n  iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);\n  piVar7[0x13] = iVar4;\n  piVar7[1] = iVar2;\n  piVar7[4] = 0;\n  piVar7[3] = 1;\n  FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);\n                    \n                    \n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);\n  return;\n}" primitive_type (function_declarator "FUN_00042824(int param_1,undefined1 *param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,undefined1 *param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined1 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined1 *unaff_s2;\n  undefined *unaff_s3;\n  int *piVar7;\n  undefined4 *unaff_s4;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 local_a0;\n  int local_9c;\n  undefined1 auStack_98 [4];\n  undefined4 local_94;\n  int local_8c;\n  int local_7c;\n  int local_78;\n  undefined *local_74;\n  undefined1 *local_70;\n  undefined *local_6c;\n  undefined4 *local_68;\n  undefined4 local_20;\n  int local_1c;\n  \n  *(undefined1 **)(param_1 + 0x11c) = param_2;\n  *(undefined4 *)(param_1 + 0x120) = param_3;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;\n  local_1c = iVar6;\n  if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }\n  if (local_1c == *(int *)puVar1) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  local_74 = puVar1;\n  piVar7 = *(int **)(puVar8 + 0x6b2fc);\n  local_7c = *piVar7;\n  local_78 = param_1;\n  local_70 = unaff_s2;\n  local_6c = unaff_s3;\n  local_68 = unaff_s4;\n  iVar2 = FUN_0002f068(param_2);\n  FUN_0002fb84();\n  uVar3 = FUN_0002f068(param_2);\n  if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }\n  local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;\n  local_94 = uVar3;\n  iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);\n  if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }\n  iVar4 = 0x16;\n  FUN_00041954(iVar6,0x16,1,iVar2,0);\nLAB_00042b8c:\n  iVar6 = local_8c;\n  safefree();\n  if (local_7c == *piVar7) {\n    return;\n  }\n  pcVar9 = *(code **)(puVar8 + 0x6b2cc);\n  (*pcVar9)();\n  iVar2 = FUN_0002f068(iVar4);\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);\n  if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    \n                    \n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }\n  piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);\n  *piVar7 = iVar6;\n  FUN_00036678(piVar7);\n  iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);\n  piVar7[0x13] = iVar4;\n  piVar7[1] = iVar2;\n  piVar7[4] = 0;\n  piVar7[3] = 1;\n  FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);\n                    \n                    \n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined1 *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "undefined1 auStack_98 [4];" type_identifier (array_declarator "auStack_98 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_94;" type_identifier identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "undefined *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined1 *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "*(undefined1 **)(param_1 + 0x11c) = param_2;" (assignment_expression "*(undefined1 **)(param_1 + 0x11c) = param_2" (pointer_expression "*(undefined1 **)(param_1 + 0x11c)" * (cast_expression "(undefined1 **)(param_1 + 0x11c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x120) = param_3;" (assignment_expression "*(undefined4 *)(param_1 + 0x120) = param_3" (pointer_expression "*(undefined4 *)(param_1 + 0x120)" * (cast_expression "(undefined4 *)(param_1 + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "iVar6 = *(int *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_1c = iVar6;" (assignment_expression "local_1c = iVar6" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x144) == 2)" ( (binary_expression "*(int *)(param_1 + 0x144) == 2" (pointer_expression "*(int *)(param_1 + 0x144)" * (cast_expression "(int *)(param_1 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x144)" ( (binary_expression "param_1 + 0x144" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }" { (expression_statement "*(undefined4 *)(param_1 + 0x148) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x148) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x148)" * (cast_expression "(undefined4 *)(param_1 + 0x148)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x148)" ( (binary_expression "param_1 + 0x148" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" else (if_statement "if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x144) == 3)" ( (binary_expression "*(int *)(param_1 + 0x144) == 3" (pointer_expression "*(int *)(param_1 + 0x144)" * (cast_expression "(int *)(param_1 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x144)" ( (binary_expression "param_1 + 0x144" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" { (expression_statement "param_2 = &DAT_00000016;" (assignment_expression "param_2 = &DAT_00000016" identifier = (pointer_expression "&DAT_00000016" & identifier)) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x248);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x248)" identifier = (pointer_expression "*(int *)(param_1 + 0x248)" * (cast_expression "(int *)(param_1 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);" (assignment_expression "iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16)" identifier = (call_expression "(*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16)" (parenthesized_expression "(*(code *)PTR_conf_get_int_000ad34c)" ( (pointer_expression "*(code *)PTR_conf_get_int_000ad34c" * (cast_expression "(code *)PTR_conf_get_int_000ad34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,0x16)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }" { (if_statement "if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x198) == 1)" ( (binary_expression "*(int *)(param_1 + 0x198) == 1" (pointer_expression "*(int *)(param_1 + 0x198)" * (cast_expression "(int *)(param_1 + 0x198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x198)" ( (binary_expression "param_1 + 0x198" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }" { (expression_statement "param_2 = (undefined1 *)0xb;" (assignment_expression "param_2 = (undefined1 *)0xb" identifier = (cast_expression "(undefined1 *)0xb" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" identifier = identifier) ;) (expression_statement "FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));" (call_expression "FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120))" identifier (argument_list "(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120))" ( identifier , number_literal , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x120)" * (cast_expression "(undefined4 *)(param_1 + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) ))) ;) }) (else_clause "else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }" else (compound_statement "{\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }" { (expression_statement "iVar6 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x128)" identifier = (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "param_2 = PTR_DAT_000ad2c8;" (assignment_expression "param_2 = PTR_DAT_000ad2c8" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }" { (expression_statement "unaff_s4 = &local_20;" (assignment_expression "unaff_s4 = &local_20" identifier = (pointer_expression "&local_20" & identifier)) ;) (expression_statement "unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);" (assignment_expression "unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" identifier = (cast_expression "(undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" identifier (argument_list "(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" ( identifier , (binary_expression "PTR_DAT_000ad2c8 + -0x72c" identifier + number_literal) , number_literal , number_literal ))))) ;) (expression_statement "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));" (call_expression "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c))" identifier (argument_list "(unaff_s2,*(undefined4 *)(param_1 + 0x11c))" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" * (cast_expression "(undefined4 *)(param_1 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));" (call_expression "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120))" identifier (argument_list "(unaff_s2,*(undefined4 *)(param_1 + 0x120))" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x120)" * (cast_expression "(undefined4 *)(param_1 + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) ))) ;) (expression_statement "unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;" (assignment_expression "unaff_s3 = PTR_LAB_000ad5b0 + 0x3374" identifier = (binary_expression "PTR_LAB_000ad5b0 + 0x3374" identifier + number_literal)) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "FUN_00033374(unaff_s2,unaff_s4,4);" (call_expression "FUN_00033374(unaff_s2,unaff_s4,4)" identifier (argument_list "(unaff_s2,unaff_s4,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "FUN_00033374(unaff_s2,unaff_s4,4);" (call_expression "FUN_00033374(unaff_s2,unaff_s4,4)" identifier (argument_list "(unaff_s2,unaff_s4,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" identifier = identifier) ;) (expression_statement "param_2 = unaff_s2;" (assignment_expression "param_2 = unaff_s2" identifier = identifier) ;) (expression_statement "FUN_0003e878(param_1,unaff_s2);" (call_expression "FUN_0003e878(param_1,unaff_s2)" identifier (argument_list "(param_1,unaff_s2)" ( identifier , identifier ))) ;) })) }))) })) })))) (if_statement "if (local_1c == *(int *)puVar1) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(int *)puVar1)" ( (binary_expression "local_1c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar8 = PTR___stack_chk_fail_000adca4;" (assignment_expression "puVar8 = PTR___stack_chk_fail_000adca4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_74 = puVar1;" (assignment_expression "local_74 = puVar1" identifier = identifier) ;) (expression_statement "piVar7 = *(int **)(puVar8 + 0x6b2fc);" (assignment_expression "piVar7 = *(int **)(puVar8 + 0x6b2fc)" identifier = (pointer_expression "*(int **)(puVar8 + 0x6b2fc)" * (cast_expression "(int **)(puVar8 + 0x6b2fc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6b2fc)" ( (binary_expression "puVar8 + 0x6b2fc" identifier + number_literal) ))))) ;) (expression_statement "local_7c = *piVar7;" (assignment_expression "local_7c = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" identifier = identifier) ;) (expression_statement "local_70 = unaff_s2;" (assignment_expression "local_70 = unaff_s2" identifier = identifier) ;) (expression_statement "local_6c = unaff_s3;" (assignment_expression "local_6c = unaff_s3" identifier = identifier) ;) (expression_statement "local_68 = unaff_s4;" (assignment_expression "local_68 = unaff_s4" identifier = identifier) ;) (expression_statement "iVar2 = FUN_0002f068(param_2);" (assignment_expression "iVar2 = FUN_0002f068(param_2)" identifier = (call_expression "FUN_0002f068(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "FUN_0002fb84();" (call_expression "FUN_0002fb84()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar3 = FUN_0002f068(param_2);" (assignment_expression "uVar3 = FUN_0002f068(param_2)" identifier = (call_expression "FUN_0002f068(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }" if (parenthesized_expression "(local_9c == 0)" ( (binary_expression "local_9c == 0" identifier == number_literal) )) (compound_statement "{\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }" { (expression_statement "local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;" (assignment_expression "local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4" identifier = (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x22a4" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;" (assignment_expression "local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)" identifier = (call_expression "(**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)" (parenthesized_expression "(**(code **)(puVar8 + 0x6a900))" ( (pointer_expression "**(code **)(puVar8 + 0x6a900)" * (pointer_expression "*(code **)(puVar8 + 0x6a900)" * (cast_expression "(code **)(puVar8 + 0x6a900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6a900)" ( (binary_expression "puVar8 + 0x6a900" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)" ( (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x1de0" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal) , identifier , identifier )))) ;) (expression_statement "local_94 = uVar3;" (assignment_expression "local_94 = uVar3" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);" (assignment_expression "iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0)" identifier = (call_expression "(**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0)" (parenthesized_expression "(**(code **)(puVar8 + 0x6aaa0))" ( (pointer_expression "**(code **)(puVar8 + 0x6aaa0)" * (pointer_expression "*(code **)(puVar8 + 0x6aaa0)" * (cast_expression "(code **)(puVar8 + 0x6aaa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6aaa0)" ( (binary_expression "puVar8 + 0x6aaa0" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x13c)" * (cast_expression "(undefined4 *)(iVar6 + 0x13c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x13c)" ( (binary_expression "iVar6 + 0x13c" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }" { (expression_statement "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);" (call_expression "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3)" identifier (argument_list "(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3)" ( identifier , (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x71c" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) }) (else_clause "else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }" else (compound_statement "{\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);" (assignment_expression "piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c)" identifier = (cast_expression "(int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar8 + 0x6aa3c))(1,0x5c)" (parenthesized_expression "(**(code **)(puVar8 + 0x6aa3c))" ( (pointer_expression "**(code **)(puVar8 + 0x6aa3c)" * (pointer_expression "*(code **)(puVar8 + 0x6aa3c)" * (cast_expression "(code **)(puVar8 + 0x6aa3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6aa3c)" ( (binary_expression "puVar8 + 0x6aa3c" identifier + number_literal) ))))) )) (argument_list "(1,0x5c)" ( number_literal , number_literal ))))) ;) (expression_statement "*piVar5 = iVar6;" (assignment_expression "*piVar5 = iVar6" (pointer_expression "*piVar5" * identifier) = identifier) ;) (expression_statement "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);" (call_expression "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3)" identifier (argument_list "(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3)" ( identifier , (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x6f0" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));" (assignment_expression "iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24))" identifier = (call_expression "pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24))" identifier (argument_list "(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24))" ( (binary_expression "piVar5 + 0x13" identifier + number_literal) , identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(iVar6 + 0x248)" * (cast_expression "(undefined4 *)(iVar6 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x248)" ( (binary_expression "iVar6 + 0x248" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24)" * (cast_expression "(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x18) + 0x24)" ( (binary_expression "*(int *)(iVar4 + 0x18) + 0x24" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }" { (expression_statement "FUN_00036678(piVar5);" (call_expression "FUN_00036678(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "piVar5[3] = 3;" (assignment_expression "piVar5[3] = 3" (subscript_expression "piVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[1] = iVar2;" (assignment_expression "piVar5[1] = iVar2" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[4] = 0;" (assignment_expression "piVar5[4] = 0" (subscript_expression "piVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);" (call_expression "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0)" identifier (argument_list "(iVar6,0x15,1,iVar2,1,piVar5[2],0)" ( identifier , number_literal , number_literal , identifier , number_literal , (subscript_expression "piVar5[2]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;" (assignment_expression "iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10" identifier = (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0xe10" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);" (call_expression "(**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4)" (parenthesized_expression "(**(code **)(puVar8 + 0x6aa30))" ( (pointer_expression "**(code **)(puVar8 + 0x6aa30)" * (pointer_expression "*(code **)(puVar8 + 0x6aa30)" * (cast_expression "(code **)(puVar8 + 0x6aa30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6aa30)" ( (binary_expression "puVar8 + 0x6aa30" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x110),iVar4)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) , identifier ))) ;) (goto_statement "goto LAB_00042b8c;" goto statement_identifier ;) })) (expression_statement "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);" (call_expression "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4)" identifier (argument_list "(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4)" ( identifier , (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0xe28" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" * (cast_expression "(int *)(puVar8 + 0x6a8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x6a8f0)" ( (binary_expression "puVar8 + 0x6a8f0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "safefree(iVar4);" (call_expression "safefree(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "safefree(piVar5);" (call_expression "safefree(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) }))) (expression_statement "iVar4 = 0x16;" (assignment_expression "iVar4 = 0x16" identifier = number_literal) ;) (expression_statement "FUN_00041954(iVar6,0x16,1,iVar2,0);" (call_expression "FUN_00041954(iVar6,0x16,1,iVar2,0)" identifier (argument_list "(iVar6,0x16,1,iVar2,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (labeled_statement "LAB_00042b8c:\n  iVar6 = local_8c;" statement_identifier : (expression_statement "iVar6 = local_8c;" (assignment_expression "iVar6 = local_8c" identifier = identifier) ;)) (expression_statement "safefree();" (call_expression "safefree()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_7c == *piVar7) {\n    return;\n  }" if (parenthesized_expression "(local_7c == *piVar7)" ( (binary_expression "local_7c == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar9 = *(code **)(puVar8 + 0x6b2cc);" (assignment_expression "pcVar9 = *(code **)(puVar8 + 0x6b2cc)" identifier = (pointer_expression "*(code **)(puVar8 + 0x6b2cc)" * (cast_expression "(code **)(puVar8 + 0x6b2cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x6b2cc)" ( (binary_expression "puVar8 + 0x6b2cc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar9)();" (call_expression "(*pcVar9)()" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar2 = FUN_0002f068(iVar4);" (assignment_expression "iVar2 = FUN_0002f068(iVar4)" identifier = (call_expression "FUN_0002f068(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);" (call_expression "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a784))" ( (pointer_expression "**(code **)(pcVar9 + 0x6a784)" * (pointer_expression "*(code **)(pcVar9 + 0x6a784)" * (cast_expression "(code **)(pcVar9 + 0x6a784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x6a784)" ( (binary_expression "pcVar9 + 0x6a784" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar9 + 0x6a644) + -0x6c4" (pointer_expression "*(int *)(pcVar9 + 0x6a644)" * (cast_expression "(int *)(pcVar9 + 0x6a644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x6a644)" ( (binary_expression "pcVar9 + 0x6a644" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    \n                    \n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x4c) == 0)" ( (binary_expression "*(int *)(iVar6 + 0x4c) == 0" (pointer_expression "*(int *)(iVar6 + 0x4c)" * (cast_expression "(int *)(iVar6 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    \n                    \n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }" { (expression_statement "FUN_00041954(iVar6,0x16,1,iVar2,0);" (call_expression "FUN_00041954(iVar6,0x16,1,iVar2,0)" identifier (argument_list "(iVar6,0x16,1,iVar2,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);" (call_expression "(**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a784))" ( (pointer_expression "**(code **)(pcVar9 + 0x6a784)" * (pointer_expression "*(code **)(pcVar9 + 0x6a784)" * (cast_expression "(code **)(pcVar9 + 0x6a784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x6a784)" ( (binary_expression "pcVar9 + 0x6a784" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar9 + 0x6a644) + -0x6a4" (pointer_expression "*(int *)(pcVar9 + 0x6a644)" * (cast_expression "(int *)(pcVar9 + 0x6a644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x6a644)" ( (binary_expression "pcVar9 + 0x6a644" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);" (assignment_expression "piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c)" identifier = (cast_expression "(int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar9 + 0x6a790))(1,0x5c)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a790))" ( (pointer_expression "**(code **)(pcVar9 + 0x6a790)" * (pointer_expression "*(code **)(pcVar9 + 0x6a790)" * (cast_expression "(code **)(pcVar9 + 0x6a790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x6a790)" ( (binary_expression "pcVar9 + 0x6a790" identifier + number_literal) ))))) )) (argument_list "(1,0x5c)" ( number_literal , number_literal ))))) ;) (expression_statement "*piVar7 = iVar6;" (assignment_expression "*piVar7 = iVar6" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "FUN_00036678(piVar7);" (call_expression "FUN_00036678(piVar7)" identifier (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);" (assignment_expression "iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff)" identifier = (call_expression "(**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6ab54))" ( (pointer_expression "**(code **)(pcVar9 + 0x6ab54)" * (pointer_expression "*(code **)(pcVar9 + 0x6ab54)" * (cast_expression "(code **)(pcVar9 + 0x6ab54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x6ab54)" ( (binary_expression "pcVar9 + 0x6ab54" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x194)" * (cast_expression "(undefined4 *)(iVar6 + 0x194)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x194)" ( (binary_expression "iVar6 + 0x194" identifier + number_literal) )))) , identifier , number_literal , number_literal )))) ;) (expression_statement "piVar7[0x13] = iVar4;" (assignment_expression "piVar7[0x13] = iVar4" (subscript_expression "piVar7[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar7[1] = iVar2;" (assignment_expression "piVar7[1] = iVar2" (subscript_expression "piVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar7[4] = 0;" (assignment_expression "piVar7[4] = 0" (subscript_expression "piVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar7[3] = 1;" (assignment_expression "piVar7[3] = 1" (subscript_expression "piVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);" (call_expression "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0)" identifier (argument_list "(iVar6,0x15,1,iVar2,1,piVar7[2],0)" ( identifier , number_literal , number_literal , identifier , number_literal , (subscript_expression "piVar7[2]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);" (call_expression "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a784))" ( (pointer_expression "**(code **)(pcVar9 + 0x6a784)" * (pointer_expression "*(code **)(pcVar9 + 0x6a784)" * (cast_expression "(code **)(pcVar9 + 0x6a784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x6a784)" ( (binary_expression "pcVar9 + 0x6a784" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar9 + 0x6a644) + -0xdb8" (pointer_expression "*(int *)(pcVar9 + 0x6a644)" * (cast_expression "(int *)(pcVar9 + 0x6a644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x6a644)" ( (binary_expression "pcVar9 + 0x6a644" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) }))) })) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (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) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , LIT , (subscript_expression IDENT [ LIT ]) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) ))) ;) (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 ( IDENT , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , LIT , (subscript_expression IDENT [ LIT ]) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00042824(int param_1,undefined1 *param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined1 *unaff_s2;\n  undefined *unaff_s3;\n  int *piVar7;\n  undefined4 *unaff_s4;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 local_a0;\n  int local_9c;\n  undefined1 auStack_98 [4];\n  undefined4 local_94;\n  int local_8c;\n  int local_7c;\n  int local_78;\n  undefined *local_74;\n  undefined1 *local_70;\n  undefined *local_6c;\n  undefined4 *local_68;\n  undefined4 local_20;\n  int local_1c;\n  \n  *(undefined1 **)(param_1 + 0x11c) = param_2;\n  *(undefined4 *)(param_1 + 0x120) = param_3;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;\n  local_1c = iVar6;\n  if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }\n  if (local_1c == *(int *)puVar1) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  local_74 = puVar1;\n  piVar7 = *(int **)(puVar8 + 0x6b2fc);\n  local_7c = *piVar7;\n  local_78 = param_1;\n  local_70 = unaff_s2;\n  local_6c = unaff_s3;\n  local_68 = unaff_s4;\n  iVar2 = FUN_0002f068(param_2);\n  FUN_0002fb84();\n  uVar3 = FUN_0002f068(param_2);\n  if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }\n  local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;\n  local_94 = uVar3;\n  iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);\n  if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }\n  iVar4 = 0x16;\n  FUN_00041954(iVar6,0x16,1,iVar2,0);\nLAB_00042b8c:\n  iVar6 = local_8c;\n  safefree();\n  if (local_7c == *piVar7) {\n    return;\n  }\n  pcVar9 = *(code **)(puVar8 + 0x6b2cc);\n  (*pcVar9)();\n  iVar2 = FUN_0002f068(iVar4);\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);\n  if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    \n                    \n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }\n  piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);\n  *piVar7 = iVar6;\n  FUN_00036678(piVar7);\n  iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);\n  piVar7[0x13] = iVar4;\n  piVar7[1] = iVar2;\n  piVar7[4] = 0;\n  piVar7[3] = 1;\n  FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);\n                    \n                    \n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00042824(int param_1,undefined1 *param_2,undefined4 param_3)" (identifier "FUN_00042824") (parameter_list "(int param_1,undefined1 *param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined1 *param_2" (type_identifier "undefined1") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  undefined1 *unaff_s2;\n  undefined *unaff_s3;\n  int *piVar7;\n  undefined4 *unaff_s4;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 local_a0;\n  int local_9c;\n  undefined1 auStack_98 [4];\n  undefined4 local_94;\n  int local_8c;\n  int local_7c;\n  int local_78;\n  undefined *local_74;\n  undefined1 *local_70;\n  undefined *local_6c;\n  undefined4 *local_68;\n  undefined4 local_20;\n  int local_1c;\n  \n  *(undefined1 **)(param_1 + 0x11c) = param_2;\n  *(undefined4 *)(param_1 + 0x120) = param_3;\n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;\n  local_1c = iVar6;\n  if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }\n  if (local_1c == *(int *)puVar1) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000adca4;\n  (*(code *)PTR___stack_chk_fail_000adca4)();\n  local_74 = puVar1;\n  piVar7 = *(int **)(puVar8 + 0x6b2fc);\n  local_7c = *piVar7;\n  local_78 = param_1;\n  local_70 = unaff_s2;\n  local_6c = unaff_s3;\n  local_68 = unaff_s4;\n  iVar2 = FUN_0002f068(param_2);\n  FUN_0002fb84();\n  uVar3 = FUN_0002f068(param_2);\n  if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }\n  local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;\n  local_94 = uVar3;\n  iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);\n  if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }\n  iVar4 = 0x16;\n  FUN_00041954(iVar6,0x16,1,iVar2,0);\nLAB_00042b8c:\n  iVar6 = local_8c;\n  safefree();\n  if (local_7c == *piVar7) {\n    return;\n  }\n  pcVar9 = *(code **)(puVar8 + 0x6b2cc);\n  (*pcVar9)();\n  iVar2 = FUN_0002f068(iVar4);\n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);\n  if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    \n                    \n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }\n  piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);\n  *piVar7 = iVar6;\n  FUN_00036678(piVar7);\n  iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);\n  piVar7[0x13] = iVar4;\n  piVar7[1] = iVar2;\n  piVar7[4] = 0;\n  piVar7[3] = 1;\n  FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);\n                    \n                    \n  (**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined1 *unaff_s2;" (type_identifier "undefined1") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "undefined *unaff_s3;" (type_identifier "undefined") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined4 *unaff_s4;" (type_identifier "undefined4") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "code *pcVar9;" (type_identifier "code") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "undefined4 local_a0;" (type_identifier "undefined4") (identifier "local_a0") (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "undefined1 auStack_98 [4];" (type_identifier "undefined1") (array_declarator "auStack_98 [4]" (identifier "auStack_98") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 local_94;" (type_identifier "undefined4") (identifier "local_94") (; ";")) (declaration "int local_8c;" (primitive_type "int") (identifier "local_8c") (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "int local_78;" (primitive_type "int") (identifier "local_78") (; ";")) (declaration "undefined *local_74;" (type_identifier "undefined") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "undefined1 *local_70;" (type_identifier "undefined1") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "undefined *local_6c;" (type_identifier "undefined") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "undefined4 *local_68;" (type_identifier "undefined4") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "*(undefined1 **)(param_1 + 0x11c) = param_2;" (assignment_expression "*(undefined1 **)(param_1 + 0x11c) = param_2" (pointer_expression "*(undefined1 **)(param_1 + 0x11c)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x11c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x11c)" (( "(") (binary_expression "param_1 + 0x11c" (identifier "param_1") (+ "+") (number_literal "0x11c")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x120) = param_3;" (assignment_expression "*(undefined4 *)(param_1 + 0x120) = param_3" (pointer_expression "*(undefined4 *)(param_1 + 0x120)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x120)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x120)" (( "(") (binary_expression "param_1 + 0x120" (identifier "param_1") (+ "+") (number_literal "0x120")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_000adcd4")) (; ";")) (expression_statement "iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "iVar6 = *(int *)PTR___stack_chk_guard_000adcd4" (identifier "iVar6") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000adcd4")))) (; ";")) (expression_statement "local_1c = iVar6;" (assignment_expression "local_1c = iVar6" (identifier "local_1c") (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x144) == 2) {\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }\n  else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x144) == 2)" (( "(") (binary_expression "*(int *)(param_1 + 0x144) == 2" (pointer_expression "*(int *)(param_1 + 0x144)" (* "*") (cast_expression "(int *)(param_1 + 0x144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x144)" (( "(") (binary_expression "param_1 + 0x144" (identifier "param_1") (+ "+") (number_literal "0x144")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    *(undefined4 *)(param_1 + 0x148) = 1;\n  }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x148) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x148) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x148)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x148)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x148)" (( "(") (binary_expression "param_1 + 0x148" (identifier "param_1") (+ "+") (number_literal "0x148")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" (else "else") (if_statement "if (*(int *)(param_1 + 0x144) == 3) {\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x144) == 3)" (( "(") (binary_expression "*(int *)(param_1 + 0x144) == 3" (pointer_expression "*(int *)(param_1 + 0x144)" (* "*") (cast_expression "(int *)(param_1 + 0x144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x144)" (( "(") (binary_expression "param_1 + 0x144" (identifier "param_1") (+ "+") (number_literal "0x144")) () ")")))) (== "==") (number_literal "3")) () ")")) (compound_statement "{\n    param_2 = &DAT_00000016;\n    iVar6 = *(int *)(param_1 + 0x248);\n    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);\n    if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "param_2 = &DAT_00000016;" (assignment_expression "param_2 = &DAT_00000016" (identifier "param_2") (= "=") (pointer_expression "&DAT_00000016" (& "&") (identifier "DAT_00000016"))) (; ";")) (expression_statement "iVar6 = *(int *)(param_1 + 0x248);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x248)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 0x248)" (* "*") (cast_expression "(int *)(param_1 + 0x248)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);" (assignment_expression "iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16)" (parenthesized_expression "(*(code *)PTR_conf_get_int_000ad34c)" (( "(") (pointer_expression "*(code *)PTR_conf_get_int_000ad34c" (* "*") (cast_expression "(code *)PTR_conf_get_int_000ad34c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_conf_get_int_000ad34c"))) () ")")) (argument_list "(iVar6,0x16)" (( "(") (identifier "iVar6") (, ",") (number_literal "0x16") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }\n    }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x198) == 1) {\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }\n      else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x198) == 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x198) == 1" (pointer_expression "*(int *)(param_1 + 0x198)" (* "*") (cast_expression "(int *)(param_1 + 0x198)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x198)" (( "(") (binary_expression "param_1 + 0x198" (identifier "param_1") (+ "+") (number_literal "0x198")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        param_2 = (undefined1 *)0xb;\n        iVar6 = param_1;\n        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));\n      }" ({ "{") (expression_statement "param_2 = (undefined1 *)0xb;" (assignment_expression "param_2 = (undefined1 *)0xb" (identifier "param_2") (= "=") (cast_expression "(undefined1 *)0xb" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xb"))) (; ";")) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" (identifier "iVar6") (= "=") (identifier "param_1")) (; ";")) (expression_statement "FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));" (call_expression "FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120))" (identifier "FUN_00041954") (argument_list "(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120))" (( "(") (identifier "param_1") (, ",") (number_literal "0xb") (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x120)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x120)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x120)" (( "(") (binary_expression "param_1 + 0x120" (identifier "param_1") (+ "+") (number_literal "0x120")) () ")")))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }" (else "else") (compound_statement "{\n        iVar6 = *(int *)(param_1 + 0x128);\n        param_2 = PTR_DAT_000ad2c8;\n        if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }\n      }" ({ "{") (expression_statement "iVar6 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x128)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 0x128)" (* "*") (cast_expression "(int *)(param_1 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) (; ";")) (expression_statement "param_2 = PTR_DAT_000ad2c8;" (assignment_expression "param_2 = PTR_DAT_000ad2c8" (identifier "param_2") (= "=") (identifier "PTR_DAT_000ad2c8")) (; ";")) (if_statement "if (iVar6 != 0) {\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          unaff_s4 = &local_20;\n          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));\n          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));\n          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          local_20 = 0;\n          FUN_00033374(unaff_s2,unaff_s4,4);\n          iVar6 = param_1;\n          param_2 = unaff_s2;\n          FUN_0003e878(param_1,unaff_s2);\n        }" ({ "{") (expression_statement "unaff_s4 = &local_20;" (assignment_expression "unaff_s4 = &local_20" (identifier "unaff_s4") (= "=") (pointer_expression "&local_20" (& "&") (identifier "local_20"))) (; ";")) (expression_statement "unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);" (assignment_expression "unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" (identifier "unaff_s2") (= "=") (cast_expression "(undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" (identifier "FUN_00034800") (argument_list "(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0)" (( "(") (identifier "iVar6") (, ",") (binary_expression "PTR_DAT_000ad2c8 + -0x72c" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "-0x72c")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));" (call_expression "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c))" (identifier "FUN_0003364c") (argument_list "(unaff_s2,*(undefined4 *)(param_1 + 0x11c))" (( "(") (identifier "unaff_s2") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x11c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11c)" (( "(") (binary_expression "param_1 + 0x11c" (identifier "param_1") (+ "+") (number_literal "0x11c")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));" (call_expression "FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120))" (identifier "FUN_0003364c") (argument_list "(unaff_s2,*(undefined4 *)(param_1 + 0x120))" (( "(") (identifier "unaff_s2") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x120)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x120)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x120)" (( "(") (binary_expression "param_1 + 0x120" (identifier "param_1") (+ "+") (number_literal "0x120")) () ")")))) () ")"))) (; ";")) (expression_statement "unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;" (assignment_expression "unaff_s3 = PTR_LAB_000ad5b0 + 0x3374" (identifier "unaff_s3") (= "=") (binary_expression "PTR_LAB_000ad5b0 + 0x3374" (identifier "PTR_LAB_000ad5b0") (+ "+") (number_literal "0x3374"))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00033374(unaff_s2,unaff_s4,4);" (call_expression "FUN_00033374(unaff_s2,unaff_s4,4)" (identifier "FUN_00033374") (argument_list "(unaff_s2,unaff_s4,4)" (( "(") (identifier "unaff_s2") (, ",") (identifier "unaff_s4") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00033374(unaff_s2,unaff_s4,4);" (call_expression "FUN_00033374(unaff_s2,unaff_s4,4)" (identifier "FUN_00033374") (argument_list "(unaff_s2,unaff_s4,4)" (( "(") (identifier "unaff_s2") (, ",") (identifier "unaff_s4") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" (identifier "iVar6") (= "=") (identifier "param_1")) (; ";")) (expression_statement "param_2 = unaff_s2;" (assignment_expression "param_2 = unaff_s2" (identifier "param_2") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "FUN_0003e878(param_1,unaff_s2);" (call_expression "FUN_0003e878(param_1,unaff_s2)" (identifier "FUN_0003e878") (argument_list "(param_1,unaff_s2)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s2") () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))))) (if_statement "if (local_1c == *(int *)puVar1) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_1c == *(int *)puVar1)" (( "(") (binary_expression "local_1c == *(int *)puVar1" (identifier "local_1c") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar8 = PTR___stack_chk_fail_000adca4;" (assignment_expression "puVar8 = PTR___stack_chk_fail_000adca4" (identifier "puVar8") (= "=") (identifier "PTR___stack_chk_fail_000adca4")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000adca4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000adca4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_74 = puVar1;" (assignment_expression "local_74 = puVar1" (identifier "local_74") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "piVar7 = *(int **)(puVar8 + 0x6b2fc);" (assignment_expression "piVar7 = *(int **)(puVar8 + 0x6b2fc)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(puVar8 + 0x6b2fc)" (* "*") (cast_expression "(int **)(puVar8 + 0x6b2fc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x6b2fc)" (( "(") (binary_expression "puVar8 + 0x6b2fc" (identifier "puVar8") (+ "+") (number_literal "0x6b2fc")) () ")"))))) (; ";")) (expression_statement "local_7c = *piVar7;" (assignment_expression "local_7c = *piVar7" (identifier "local_7c") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" (identifier "local_78") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_70 = unaff_s2;" (assignment_expression "local_70 = unaff_s2" (identifier "local_70") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "local_6c = unaff_s3;" (assignment_expression "local_6c = unaff_s3" (identifier "local_6c") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "local_68 = unaff_s4;" (assignment_expression "local_68 = unaff_s4" (identifier "local_68") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "iVar2 = FUN_0002f068(param_2);" (assignment_expression "iVar2 = FUN_0002f068(param_2)" (identifier "iVar2") (= "=") (call_expression "FUN_0002f068(param_2)" (identifier "FUN_0002f068") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "FUN_0002fb84();" (call_expression "FUN_0002fb84()" (identifier "FUN_0002fb84") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar3 = FUN_0002f068(param_2);" (assignment_expression "uVar3 = FUN_0002f068(param_2)" (identifier "uVar3") (= "=") (call_expression "FUN_0002f068(param_2)" (identifier "FUN_0002f068") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (local_9c == 0) {\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }" (if "if") (parenthesized_expression "(local_9c == 0)" (( "(") (binary_expression "local_9c == 0" (identifier "local_9c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;\n  }" ({ "{") (expression_statement "local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;" (assignment_expression "local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4" (identifier "local_9c") (= "=") (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x22a4" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" (* "*") (cast_expression "(int *)(puVar8 + 0x6a8f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x6a8f0)" (( "(") (binary_expression "puVar8 + 0x6a8f0" (identifier "puVar8") (+ "+") (number_literal "0x6a8f0")) () ")")))) (+ "+") (number_literal "-0x22a4"))) (; ";")) (} "}"))) (expression_statement "local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)\n  ;" (assignment_expression "local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)" (identifier "local_8c") (= "=") (call_expression "(**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)" (parenthesized_expression "(**(code **)(puVar8 + 0x6a900))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x6a900)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x6a900)" (* "*") (cast_expression "(code **)(puVar8 + 0x6a900)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x6a900)" (( "(") (binary_expression "puVar8 + 0x6a900" (identifier "puVar8") (+ "+") (number_literal "0x6a900")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)" (( "(") (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x1de0" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" (* "*") (cast_expression "(int *)(puVar8 + 0x6a8f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x6a8f0)" (( "(") (binary_expression "puVar8 + 0x6a8f0" (identifier "puVar8") (+ "+") (number_literal "0x6a8f0")) () ")")))) (+ "+") (number_literal "-0x1de0")) (, ",") (identifier "local_a0") (, ",") (identifier "local_9c") () ")")))) (; ";")) (expression_statement "local_94 = uVar3;" (assignment_expression "local_94 = uVar3" (identifier "local_94") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);" (assignment_expression "iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0)" (parenthesized_expression "(**(code **)(puVar8 + 0x6aaa0))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x6aaa0)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x6aaa0)" (* "*") (cast_expression "(code **)(puVar8 + 0x6aaa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x6aaa0)" (( "(") (binary_expression "puVar8 + 0x6aaa0" (identifier "puVar8") (+ "+") (number_literal "0x6aaa0")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x13c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x13c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x13c)" (( "(") (binary_expression "iVar6 + 0x13c" (identifier "iVar6") (+ "+") (number_literal "0x13c")) () ")")))) (, ",") (identifier "auStack_98") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }\n  else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);\n  }" ({ "{") (expression_statement "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);" (call_expression "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3)" (identifier "FUN_0002f168") (argument_list "(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3)" (( "(") (identifier "iVar6") (, ",") (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x71c" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" (* "*") (cast_expression "(int *)(puVar8 + 0x6a8f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x6a8f0)" (( "(") (binary_expression "puVar8 + 0x6a8f0" (identifier "puVar8") (+ "+") (number_literal "0x6a8f0")) () ")")))) (+ "+") (number_literal "-0x71c")) (, ",") (identifier "local_8c") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }" (else "else") (compound_statement "{\n    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);\n    *piVar5 = iVar6;\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);\n    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));\n    if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }\n    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);\n    safefree(iVar4);\n    safefree(piVar5);\n  }" ({ "{") (expression_statement "piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);" (assignment_expression "piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c)" (identifier "piVar5") (= "=") (cast_expression "(int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar8 + 0x6aa3c))(1,0x5c)" (parenthesized_expression "(**(code **)(puVar8 + 0x6aa3c))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x6aa3c)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x6aa3c)" (* "*") (cast_expression "(code **)(puVar8 + 0x6aa3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x6aa3c)" (( "(") (binary_expression "puVar8 + 0x6aa3c" (identifier "puVar8") (+ "+") (number_literal "0x6aa3c")) () ")"))))) () ")")) (argument_list "(1,0x5c)" (( "(") (number_literal "1") (, ",") (number_literal "0x5c") () ")"))))) (; ";")) (expression_statement "*piVar5 = iVar6;" (assignment_expression "*piVar5 = iVar6" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);" (call_expression "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3)" (identifier "FUN_0002f168") (argument_list "(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3)" (( "(") (identifier "iVar6") (, ",") (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0x6f0" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" (* "*") (cast_expression "(int *)(puVar8 + 0x6a8f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x6a8f0)" (( "(") (binary_expression "puVar8 + 0x6a8f0" (identifier "puVar8") (+ "+") (number_literal "0x6a8f0")) () ")")))) (+ "+") (number_literal "-0x6f0")) (, ",") (identifier "local_8c") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));" (assignment_expression "iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24))" (identifier "iVar4") (= "=") (call_expression "pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24))" (identifier "pfd_connect") (argument_list "(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),\n                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24))" (( "(") (binary_expression "piVar5 + 0x13" (identifier "piVar5") (+ "+") (number_literal "0x13")) (, ",") (identifier "local_8c") (, ",") (identifier "uVar3") (, ",") (identifier "piVar5") (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 0x248)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x248)" (( "(") (binary_expression "iVar6 + 0x248" (identifier "iVar6") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x18) + 0x24)" (( "(") (binary_expression "*(int *)(iVar4 + 0x18) + 0x24" (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "0x24")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00036678(piVar5);\n      piVar5[3] = 3;\n      piVar5[1] = iVar2;\n      piVar5[4] = 0;\n      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);\n      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;\n      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);\n      goto LAB_00042b8c;\n    }" ({ "{") (expression_statement "FUN_00036678(piVar5);" (call_expression "FUN_00036678(piVar5)" (identifier "FUN_00036678") (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (expression_statement "piVar5[3] = 3;" (assignment_expression "piVar5[3] = 3" (subscript_expression "piVar5[3]" (identifier "piVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "3")) (; ";")) (expression_statement "piVar5[1] = iVar2;" (assignment_expression "piVar5[1] = iVar2" (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "piVar5[4] = 0;" (assignment_expression "piVar5[4] = 0" (subscript_expression "piVar5[4]" (identifier "piVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);" (call_expression "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0)" (identifier "FUN_00041954") (argument_list "(iVar6,0x15,1,iVar2,1,piVar5[2],0)" (( "(") (identifier "iVar6") (, ",") (number_literal "0x15") (, ",") (number_literal "1") (, ",") (identifier "iVar2") (, ",") (number_literal "1") (, ",") (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;" (assignment_expression "iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10" (identifier "iVar4") (= "=") (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0xe10" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" (* "*") (cast_expression "(int *)(puVar8 + 0x6a8f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x6a8f0)" (( "(") (binary_expression "puVar8 + 0x6a8f0" (identifier "puVar8") (+ "+") (number_literal "0x6a8f0")) () ")")))) (+ "+") (number_literal "-0xe10"))) (; ";")) (expression_statement "(**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);" (call_expression "(**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4)" (parenthesized_expression "(**(code **)(puVar8 + 0x6aa30))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x6aa30)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x6aa30)" (* "*") (cast_expression "(code **)(puVar8 + 0x6aa30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x6aa30)" (( "(") (binary_expression "puVar8 + 0x6aa30" (identifier "puVar8") (+ "+") (number_literal "0x6aa30")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x110),iVar4)" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x110)" (( "(") (binary_expression "iVar6 + 0x110" (identifier "iVar6") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (identifier "iVar4") () ")"))) (; ";")) (goto_statement "goto LAB_00042b8c;" (goto "goto") (statement_identifier "LAB_00042b8c") (; ";")) (} "}"))) (expression_statement "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);" (call_expression "FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4)" (identifier "FUN_0002f168") (argument_list "(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4)" (( "(") (identifier "iVar6") (, ",") (binary_expression "*(int *)(puVar8 + 0x6a8f0) + -0xe28" (pointer_expression "*(int *)(puVar8 + 0x6a8f0)" (* "*") (cast_expression "(int *)(puVar8 + 0x6a8f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x6a8f0)" (( "(") (binary_expression "puVar8 + 0x6a8f0" (identifier "puVar8") (+ "+") (number_literal "0x6a8f0")) () ")")))) (+ "+") (number_literal "-0xe28")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "safefree(iVar4);" (call_expression "safefree(iVar4)" (identifier "safefree") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "safefree(piVar5);" (call_expression "safefree(piVar5)" (identifier "safefree") (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar4 = 0x16;" (assignment_expression "iVar4 = 0x16" (identifier "iVar4") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "FUN_00041954(iVar6,0x16,1,iVar2,0);" (call_expression "FUN_00041954(iVar6,0x16,1,iVar2,0)" (identifier "FUN_00041954") (argument_list "(iVar6,0x16,1,iVar2,0)" (( "(") (identifier "iVar6") (, ",") (number_literal "0x16") (, ",") (number_literal "1") (, ",") (identifier "iVar2") (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_00042b8c:\n  iVar6 = local_8c;" (statement_identifier "LAB_00042b8c") (: ":") (expression_statement "iVar6 = local_8c;" (assignment_expression "iVar6 = local_8c" (identifier "iVar6") (= "=") (identifier "local_8c")) (; ";"))) (expression_statement "safefree();" (call_expression "safefree()" (identifier "safefree") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_7c == *piVar7) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_7c == *piVar7)" (( "(") (binary_expression "local_7c == *piVar7" (identifier "local_7c") (== "==") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar9 = *(code **)(puVar8 + 0x6b2cc);" (assignment_expression "pcVar9 = *(code **)(puVar8 + 0x6b2cc)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(puVar8 + 0x6b2cc)" (* "*") (cast_expression "(code **)(puVar8 + 0x6b2cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x6b2cc)" (( "(") (binary_expression "puVar8 + 0x6b2cc" (identifier "puVar8") (+ "+") (number_literal "0x6b2cc")) () ")"))))) (; ";")) (expression_statement "(*pcVar9)();" (call_expression "(*pcVar9)()" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar2 = FUN_0002f068(iVar4);" (assignment_expression "iVar2 = FUN_0002f068(iVar4)" (identifier "iVar2") (= "=") (call_expression "FUN_0002f068(iVar4)" (identifier "FUN_0002f068") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);" (call_expression "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a784))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x6a784)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x6a784)" (* "*") (cast_expression "(code **)(pcVar9 + 0x6a784)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x6a784)" (( "(") (binary_expression "pcVar9 + 0x6a784" (identifier "pcVar9") (+ "+") (number_literal "0x6a784")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4)" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x110)" (( "(") (binary_expression "iVar6 + 0x110" (identifier "iVar6") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar9 + 0x6a644) + -0x6c4" (pointer_expression "*(int *)(pcVar9 + 0x6a644)" (* "*") (cast_expression "(int *)(pcVar9 + 0x6a644)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x6a644)" (( "(") (binary_expression "pcVar9 + 0x6a644" (identifier "pcVar9") (+ "+") (number_literal "0x6a644")) () ")")))) (+ "+") (number_literal "-0x6c4")) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar6 + 0x4c) == 0) {\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    \n                    \n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 0x4c) == 0)" (( "(") (binary_expression "*(int *)(iVar6 + 0x4c) == 0" (pointer_expression "*(int *)(iVar6 + 0x4c)" (* "*") (cast_expression "(int *)(iVar6 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x4c)" (( "(") (binary_expression "iVar6 + 0x4c" (identifier "iVar6") (+ "+") (number_literal "0x4c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00041954(iVar6,0x16,1,iVar2,0);\n                    \n                    \n    (**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);\n    return;\n  }" ({ "{") (expression_statement "FUN_00041954(iVar6,0x16,1,iVar2,0);" (call_expression "FUN_00041954(iVar6,0x16,1,iVar2,0)" (identifier "FUN_00041954") (argument_list "(iVar6,0x16,1,iVar2,0)" (( "(") (identifier "iVar6") (, ",") (number_literal "0x16") (, ",") (number_literal "1") (, ",") (identifier "iVar2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);" (call_expression "(**(code **)(pcVar9 + 0x6a784))\n              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a784))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x6a784)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x6a784)" (* "*") (cast_expression "(code **)(pcVar9 + 0x6a784)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x6a784)" (( "(") (binary_expression "pcVar9 + 0x6a784" (identifier "pcVar9") (+ "+") (number_literal "0x6a784")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4)" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x110)" (( "(") (binary_expression "iVar6 + 0x110" (identifier "iVar6") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar9 + 0x6a644) + -0x6a4" (pointer_expression "*(int *)(pcVar9 + 0x6a644)" (* "*") (cast_expression "(int *)(pcVar9 + 0x6a644)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x6a644)" (( "(") (binary_expression "pcVar9 + 0x6a644" (identifier "pcVar9") (+ "+") (number_literal "0x6a644")) () ")")))) (+ "+") (number_literal "-0x6a4")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);" (assignment_expression "piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c)" (identifier "piVar7") (= "=") (cast_expression "(int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar9 + 0x6a790))(1,0x5c)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a790))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x6a790)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x6a790)" (* "*") (cast_expression "(code **)(pcVar9 + 0x6a790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x6a790)" (( "(") (binary_expression "pcVar9 + 0x6a790" (identifier "pcVar9") (+ "+") (number_literal "0x6a790")) () ")"))))) () ")")) (argument_list "(1,0x5c)" (( "(") (number_literal "1") (, ",") (number_literal "0x5c") () ")"))))) (; ";")) (expression_statement "*piVar7 = iVar6;" (assignment_expression "*piVar7 = iVar6" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "FUN_00036678(piVar7);" (call_expression "FUN_00036678(piVar7)" (identifier "FUN_00036678") (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);" (assignment_expression "iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6ab54))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x6ab54)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x6ab54)" (* "*") (cast_expression "(code **)(pcVar9 + 0x6ab54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x6ab54)" (( "(") (binary_expression "pcVar9 + 0x6ab54" (identifier "pcVar9") (+ "+") (number_literal "0x6ab54")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff)" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x194)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x194)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x194)" (( "(") (binary_expression "iVar6 + 0x194" (identifier "iVar6") (+ "+") (number_literal "0x194")) () ")")))) (, ",") (identifier "piVar7") (, ",") (number_literal "0") (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (expression_statement "piVar7[0x13] = iVar4;" (assignment_expression "piVar7[0x13] = iVar4" (subscript_expression "piVar7[0x13]" (identifier "piVar7") ([ "[") (number_literal "0x13") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "piVar7[1] = iVar2;" (assignment_expression "piVar7[1] = iVar2" (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "piVar7[4] = 0;" (assignment_expression "piVar7[4] = 0" (subscript_expression "piVar7[4]" (identifier "piVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar7[3] = 1;" (assignment_expression "piVar7[3] = 1" (subscript_expression "piVar7[3]" (identifier "piVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);" (call_expression "FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0)" (identifier "FUN_00041954") (argument_list "(iVar6,0x15,1,iVar2,1,piVar7[2],0)" (( "(") (identifier "iVar6") (, ",") (number_literal "0x15") (, ",") (number_literal "1") (, ",") (identifier "iVar2") (, ",") (number_literal "1") (, ",") (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);" (call_expression "(**(code **)(pcVar9 + 0x6a784))\n            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8)" (parenthesized_expression "(**(code **)(pcVar9 + 0x6a784))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x6a784)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x6a784)" (* "*") (cast_expression "(code **)(pcVar9 + 0x6a784)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x6a784)" (( "(") (binary_expression "pcVar9 + 0x6a784" (identifier "pcVar9") (+ "+") (number_literal "0x6a784")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8)" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x110)" (( "(") (binary_expression "iVar6 + 0x110" (identifier "iVar6") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar9 + 0x6a644) + -0xdb8" (pointer_expression "*(int *)(pcVar9 + 0x6a644)" (* "*") (cast_expression "(int *)(pcVar9 + 0x6a644)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x6a644)" (( "(") (binary_expression "pcVar9 + 0x6a644" (identifier "pcVar9") (+ "+") (number_literal "0x6a644")) () ")")))) (+ "+") (number_literal "-0xdb8")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (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: (identifier))) (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: (identifier) right: (number_literal))))) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (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: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))))))))))) (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))) (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: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (call_expression function: (parenthesized_expression (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))))))) arguments: (argument_list (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)) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (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))))))) 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))))) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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)) (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (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))))))) arguments: (argument_list (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (identifier) (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))))) (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (identifier) (number_literal) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) 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 (call_expression function: (parenthesized_expression (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))))))) 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))))) (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (identifier) (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (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))))))) 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))))) (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))))) (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 (identifier) (number_literal) (number_literal) (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (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))))))) 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))))) (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))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (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))))))) arguments: (argument_list (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (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))))))) 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))))) (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (identifier) (number_literal) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (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))))))) 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))))) (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))))) (return_statement))))

void MASKED(int param_1,undefined1 *param_2,undefined4 param_3)

{
  undefined *puVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  int *piVar5;
  int iVar6;
  undefined1 *unaff_s2;
  undefined *unaff_s3;
  int *piVar7;
  undefined4 *unaff_s4;
  undefined *puVar8;
  code *pcVar9;
  undefined4 local_a0;
  int local_9c;
  undefined1 auStack_98 [4];
  undefined4 local_94;
  int local_8c;
  int local_7c;
  int local_78;
  undefined *local_74;
  undefined1 *local_70;
  undefined *local_6c;
  undefined4 *local_68;
  undefined4 local_20;
  int local_1c;
  
  *(undefined1 **)(param_1 + 0x11c) = param_2;
  *(undefined4 *)(param_1 + 0x120) = param_3;
  puVar1 = PTR___stack_chk_guard_000adcd4;
  iVar6 = *(int *)PTR___stack_chk_guard_000adcd4;
  local_1c = iVar6;
  if (*(int *)(param_1 + 0x144) == 2) {
    *(undefined4 *)(param_1 + 0x148) = 1;
  }
  else if (*(int *)(param_1 + 0x144) == 3) {
    param_2 = &DAT_00000016;
    iVar6 = *(int *)(param_1 + 0x248);
    iVar2 = (*(code *)PTR_conf_get_int_000ad34c)(iVar6,0x16);
    if (iVar2 == 0) {
      if (*(int *)(param_1 + 0x198) == 1) {
        param_2 = (undefined1 *)0xb;
        iVar6 = param_1;
        FUN_00041954(param_1,0xb,1,*(undefined4 *)(param_1 + 0x120));
      }
      else {
        iVar6 = *(int *)(param_1 + 0x128);
        param_2 = PTR_DAT_000ad2c8;
        if (iVar6 != 0) {
          unaff_s4 = &local_20;
          unaff_s2 = (undefined1 *)FUN_00034800(iVar6,PTR_DAT_000ad2c8 + -0x72c,0,0);
          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x11c));
          FUN_0003364c(unaff_s2,*(undefined4 *)(param_1 + 0x120));
          unaff_s3 = PTR_LAB_000ad5b0 + 0x3374;
          local_20 = 0;
          FUN_00033374(unaff_s2,unaff_s4,4);
          local_20 = 0;
          FUN_00033374(unaff_s2,unaff_s4,4);
          iVar6 = param_1;
          param_2 = unaff_s2;
          FUN_0003e878(param_1,unaff_s2);
        }
      }
    }
  }
  if (local_1c == *(int *)puVar1) {
    return;
  }
  puVar8 = PTR___stack_chk_fail_000adca4;
  (*(code *)PTR___stack_chk_fail_000adca4)();
  local_74 = puVar1;
  piVar7 = *(int **)(puVar8 + 0x6b2fc);
  local_7c = *piVar7;
  local_78 = param_1;
  local_70 = unaff_s2;
  local_6c = unaff_s3;
  local_68 = unaff_s4;
  iVar2 = FUN_0002f068(param_2);
  FUN_0002fb84();
  uVar3 = FUN_0002f068(param_2);
  if (local_9c == 0) {
    local_9c = *(int *)(puVar8 + 0x6a8f0) + -0x22a4;
  }
  local_8c = (**(code **)(puVar8 + 0x6a900))(*(int *)(puVar8 + 0x6a8f0) + -0x1de0,local_a0,local_9c)
  ;
  local_94 = uVar3;
  iVar4 = (**(code **)(puVar8 + 0x6aaa0))(*(undefined4 *)(iVar6 + 0x13c),auStack_98,0);
  if (iVar4 == 0) {
    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x71c,local_8c,uVar3);
  }
  else {
    piVar5 = (int *)(**(code **)(puVar8 + 0x6aa3c))(1,0x5c);
    *piVar5 = iVar6;
    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0x6f0,local_8c,uVar3);
    iVar4 = pfd_connect(piVar5 + 0x13,local_8c,uVar3,piVar5,*(undefined4 *)(iVar6 + 0x248),
                        *(undefined4 *)(*(int *)(iVar4 + 0x18) + 0x24));
    if (iVar4 == 0) {
      FUN_00036678(piVar5);
      piVar5[3] = 3;
      piVar5[1] = iVar2;
      piVar5[4] = 0;
      FUN_00041954(iVar6,0x15,1,iVar2,1,piVar5[2],0);
      iVar4 = *(int *)(puVar8 + 0x6a8f0) + -0xe10;
      (**(code **)(puVar8 + 0x6aa30))(*(undefined4 *)(iVar6 + 0x110),iVar4);
      goto LAB_00042b8c;
    }
    FUN_0002f168(iVar6,*(int *)(puVar8 + 0x6a8f0) + -0xe28,iVar4);
    safefree(iVar4);
    safefree(piVar5);
  }
  iVar4 = 0x16;
  FUN_00041954(iVar6,0x16,1,iVar2,0);
LAB_00042b8c:
  iVar6 = local_8c;
  safefree();
  if (local_7c == *piVar7) {
    return;
  }
  pcVar9 = *(code **)(puVar8 + 0x6b2cc);
  (*pcVar9)();
  iVar2 = FUN_0002f068(iVar4);
  (**(code **)(pcVar9 + 0x6a784))
            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6c4);
  if (*(int *)(iVar6 + 0x4c) == 0) {
    FUN_00041954(iVar6,0x16,1,iVar2,0);
                    /* WARNING: Could not recover jumptable at 0x00042d28. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(pcVar9 + 0x6a784))
              (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0x6a4);
    return;
  }
  piVar7 = (int *)(**(code **)(pcVar9 + 0x6a790))(1,0x5c);
  *piVar7 = iVar6;
  FUN_00036678(piVar7);
  iVar4 = (**(code **)(pcVar9 + 0x6ab54))(*(undefined4 *)(iVar6 + 0x194),piVar7,0,0xffffffff);
  piVar7[0x13] = iVar4;
  piVar7[1] = iVar2;
  piVar7[4] = 0;
  piVar7[3] = 1;
  FUN_00041954(iVar6,0x15,1,iVar2,1,piVar7[2],0);
                    /* WARNING: Could not recover jumptable at 0x00042de0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(pcVar9 + 0x6a784))
            (*(undefined4 *)(iVar6 + 0x110),*(int *)(pcVar9 + 0x6a644) + -0xdb8);
  return;
}

