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

CURLcode tftp_tx(tftp_state_data_t *state,tftp_event_t event)

{
  ushort uVar1;
  uint uVar2;
  int iVar3;
  int *piVar4;
  char *pcVar5;
  Curl_easy *pCVar6;
  tftp_state_data_t *state_00;
  uchar *event_00;
  uint uVar7;
  CURLcode CVar8;
  Curl_easy *pCVar9;
  undefined *puVar10;
  size_t cb;
  tftp_state_data_t *local_1c;
  
  puVar10 = PTR_Curl_infof_000b11ac;
  local_1c = *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4;
  pCVar9 = state->conn->data;
  if (event == TFTP_EVENT_ERROR) {
    state->state = TFTP_STATE_FIN;
    *(state->spacket).data = '\0';
    (state->spacket).data[1] = '\x05';
    uVar1 = state->block;
    (state->spacket).data[2] = (uchar)(uVar1 >> 8);
    (state->spacket).data[3] = (uchar)uVar1;
    event_00 = (state->spacket).data;
    (*(code *)PTR_sendto_000b1a94)
              (state->sockfd,event_00,4,0x4000,&state->remote_addr,state->remote_addrlen);
    state->state = TFTP_STATE_FIN;
    CVar8 = CURLE_OK;
    goto LAB_00051a00;
  }
  if (event < TFTP_EVENT_OACK) {
    if (event == TFTP_EVENT_ACK) {
      uVar1 = *(ushort *)((state->rpacket).data + 2);
      if ((state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff)))) {
        (*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);
        iVar3 = state->retries + 1;
        state->retries = iVar3;
        if (state->retry_max < iVar3) {
          event_00 = PTR_DAT_000b1184 + -0x729c;
          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);
          CVar8 = CURLE_SEND_ERROR;
        }
        else {
          event_00 = (state->spacket).data;
          iVar3 = (*(code *)PTR_sendto_000b1a94)
                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,
                             state->remote_addrlen);
          if (iVar3 < 0) {
            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();
            pcVar5 = Curl_strerror(state->conn,*piVar4);
            event_00 = PTR_LAB_000b113c + 0x2eb8;
            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);
            CVar8 = CURLE_SEND_ERROR;
          }
          else {
            CVar8 = CURLE_OK;
          }
        }
        goto LAB_00051a00;
      }
      (*(code *)PTR_time_000b1df4)(&state->rx_time);
      state->block = state->block + 1;
      event_00 = (uchar *)event;
      goto LAB_000515f8;
    }
  }
  else {
    if (event == TFTP_EVENT_OACK) {
      state->block = 1;
      event_00 = (uchar *)event;
LAB_000515f8:
      state->retries = 0;
      *(state->spacket).data = '\0';
      (state->spacket).data[1] = '\x03';
      uVar1 = state->block;
      (state->spacket).data[2] = (uchar)(uVar1 >> 8);
      (state->spacket).data[3] = (uchar)uVar1;
      if ((state->block < 2) || (state->blksize <= state->sbytes)) {
        state->sbytes = 0;
        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);
        do {
          event_00 = (uchar *)(state->blksize - state->sbytes);
          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);
          if (CVar8 != CURLE_OK) goto LAB_00051a00;
          state->sbytes = state->sbytes + cb;
          pCVar6 = state->conn->data;
          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;
        } while ((state->sbytes < state->blksize) && (cb != 0));
        event_00 = (state->spacket).data;
        iVar3 = (*(code *)PTR_sendto_000b1a94)
                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,
                           state->remote_addrlen);
        if (iVar3 < 0) {
          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);
          pcVar5 = Curl_strerror(state->conn,*piVar4);
          event_00 = PTR_LAB_000b113c + 0x2eb8;
          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);
          CVar8 = CURLE_SEND_ERROR;
        }
        else {
          uVar2 = state->sbytes;
          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;
          *(uint *)&(pCVar9->req).writebytecount =
               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;
          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;
          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();
        }
      }
      else {
        state->state = TFTP_STATE_FIN;
        CVar8 = CURLE_OK;
      }
      goto LAB_00051a00;
    }
    if (event == TFTP_EVENT_TIMEOUT) {
      state->retries = state->retries + 1;
      event_00 = PTR_DAT_000b1184 + -0x7270;
      (*(code *)puVar10)(pCVar9,event_00,state->block + 1);
      if (state->retry_max < state->retries) {
        state->error = TFTP_ERR_TIMEOUT;
        state->state = TFTP_STATE_FIN;
        CVar8 = CURLE_OK;
      }
      else {
        event_00 = (state->spacket).data;
        iVar3 = (*(code *)PTR_sendto_000b1a94)
                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,
                           state->remote_addrlen);
        if (iVar3 < 0) {
          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);
          pcVar5 = Curl_strerror(state->conn,*piVar4);
          event_00 = PTR_LAB_000b113c + 0x2eb8;
          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);
          CVar8 = CURLE_SEND_ERROR;
        }
        else {
          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();
          CVar8 = CURLE_OK;
        }
      }
      goto LAB_00051a00;
    }
  }
  event_00 = PTR_DAT_000b1184 + -0x723c;
  (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,event);
  CVar8 = CURLE_OK;
LAB_00051a00:
  if (local_1c == *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4) {
    return CVar8;
  }
  state_00 = local_1c;
  puVar10 = PTR___stack_chk_fail_000b1c48;
  (*(code *)PTR___stack_chk_fail_000b1c48)();
  (**(code **)(puVar10 + 0x5f774))
            (state_00->conn->data,*(int *)(puVar10 + 0x5f704) + 0x3f1c,
             *(int *)(puVar10 + 0x5f74c) + -0x7218);
  state_00->state = TFTP_STATE_TX;
  CVar8 = tftp_set_timeouts(state_00);
  if (CVar8 == CURLE_OK) {
    CVar8 = tftp_tx(state_00,(tftp_event_t)event_00);
  }
  return CVar8;
}



int FUN_000514f8(undefined4 *param_1,undefined1 *param_2)

{
  undefined2 uVar1;
  int iVar2;
  uint uVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  undefined1 *puVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  undefined *puVar10;
  int local_20;
  undefined4 *local_1c;
  
  puVar10 = PTR_FUN_000b11ac;
  local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;
  iVar9 = *(int *)param_1[4];
  if (param_2 == &DAT_00000005) {
    *param_1 = 3;
    *(undefined1 *)param_1[0x53] = 0;
    *(undefined1 *)(param_1[0x53] + 1) = 5;
    uVar1 = *(undefined2 *)(param_1 + 0xc);
    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);
    *(char *)(param_1[0x53] + 3) = (char)uVar1;
    puVar6 = (undefined1 *)param_1[0x53];
    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);
    *param_1 = 3;
    iVar8 = 0;
    goto LAB_00051a00;
  }
  if ((int)param_2 < 6) {
    if (param_2 == (undefined1 *)0x4) {
      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&
         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {
        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);
        iVar8 = param_1[6];
        param_1[6] = iVar8 + 1;
        if ((int)param_1[8] < iVar8 + 1) {
          puVar6 = PTR_DAT_000b1184 + -0x729c;
          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));
          iVar8 = 0x37;
        }
        else {
          puVar6 = (undefined1 *)param_1[0x53];
          iVar8 = (*(code *)PTR_sendto_000b1a94)
                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]
                            );
          if (iVar8 < 0) {
            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();
            uVar5 = FUN_0004f978(param_1[4],*puVar4);
            puVar6 = PTR_LAB_000b113c + 0x2eb8;
            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);
            iVar8 = 0x37;
          }
          else {
            iVar8 = 0;
          }
        }
        goto LAB_00051a00;
      }
      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);
      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;
      puVar6 = param_2;
      goto LAB_000515f8;
    }
  }
  else {
    if (param_2 == &DAT_00000006) {
      *(undefined2 *)(param_1 + 0xc) = 1;
      puVar6 = param_2;
LAB_000515f8:
      param_1[6] = 0;
      *(undefined1 *)param_1[0x53] = 0;
      *(undefined1 *)(param_1[0x53] + 1) = 3;
      uVar1 = *(undefined2 *)(param_1 + 0xc);
      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);
      *(char *)(param_1[0x53] + 3) = (char)uVar1;
      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {
        param_1[0x4f] = 0;
        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;
        do {
          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);
          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);
          if (iVar8 != 0) goto LAB_00051a00;
          param_1[0x4f] = param_1[0x4f] + local_20;
          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;
        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));
        puVar6 = (undefined1 *)param_1[0x53];
        iVar2 = (*(code *)PTR_sendto_000b1a94)
                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);
        if (iVar2 < 0) {
          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);
          uVar5 = FUN_0004f978(param_1[4],*puVar4);
          puVar6 = PTR_LAB_000b113c + 0x2eb8;
          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);
          iVar8 = 0x37;
        }
        else {
          uVar3 = param_1[0x4f];
          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);
          *(uint *)(iVar9 + 0xc0) =
               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);
          *(uint *)(iVar9 + 0xc4) = uVar7;
          (*(code *)PTR_FUN_000b116c)();
        }
      }
      else {
        *param_1 = 3;
        iVar8 = 0;
      }
      goto LAB_00051a00;
    }
    if (param_2 == &DAT_00000007) {
      param_1[6] = param_1[6] + 1;
      puVar6 = PTR_DAT_000b1184 + -0x7270;
      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);
      if ((int)param_1[8] < (int)param_1[6]) {
        param_1[2] = 0xffffff9d;
        *param_1 = 3;
        iVar8 = 0;
      }
      else {
        puVar6 = (undefined1 *)param_1[0x53];
        iVar8 = (*(code *)PTR_sendto_000b1a94)
                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);
        if (iVar8 < 0) {
          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);
          uVar5 = FUN_0004f978(param_1[4],*puVar4);
          puVar6 = PTR_LAB_000b113c + 0x2eb8;
          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);
          iVar8 = 0x37;
        }
        else {
          (*(code *)PTR_FUN_000b116c)();
          iVar8 = 0;
        }
      }
      goto LAB_00051a00;
    }
  }
  puVar6 = PTR_DAT_000b1184 + -0x723c;
  (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);
  iVar8 = 0;
LAB_00051a00:
  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {
    return iVar8;
  }
  puVar4 = local_1c;
  puVar10 = PTR___stack_chk_fail_000b1c48;
  (*(code *)PTR___stack_chk_fail_000b1c48)();
  (**(code **)(puVar10 + 0x5f774))
            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,
             *(int *)(puVar10 + 0x5f74c) + -0x7218);
  *puVar4 = 2;
  iVar9 = FUN_00050f5c(puVar4);
  if (iVar9 == 0) {
    iVar9 = FUN_000514f8(puVar4,puVar6);
  }
  return iVar9;
}


lui gp,0x6
addiu gp,gp,0x7c18
addu gp,gp,t9
addiu sp,sp,-0x40
sw ra,0x3c(sp)
sw s3,0x38(sp)
sw s2,0x34(sp)
sw s1,0x30(sp)
sw s0,0x2c(sp)
sw gp,0x18(sp)
or s0,a0,zero
lw v0,-0x713c(gp)
lw v0,0x0(v0)
sw v0,0x24(sp)
lw v0,0x10(a0)
lw s2,0x0(v0)
li v0,0x5
beq a1,v0,0x00051990
_slti v0,a1,0x6
bne v0,zero,0x000515b4
_li v0,0x6
beq a1,v0,0x000515e8
_li v0,0x7
bne a1,v0,0x000515c0
_lw t9,-0x7f64(gp)
lw a3,0x18(a0)
addiu a3,a3,0x1
sw a3,0x18(a0)
lhu a2,0x30(a0)
addiu a2,a2,0x1
andi a2,a2,0xffff
lw a1,-0x7f8c(gp)
addiu a1,a1,-0x7270
or a0,s2,zero
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x18(s0)
lw v1,0x20(s0)
slt v0,v1,v0
beq v0,zero,0x000518e4
_li v0,-0x63
sw v0,0x8(s0)
li v0,0x3
sw v0,0x0(s0)
b 0x000519fc
_or s1,zero,zero
li v0,0x4
beq a1,v0,0x0005174c
_li v0,0x1
or a2,a1,zero
lw a1,-0x7f8c(gp)
addiu a1,a1,-0x723c
or a0,s2,zero
lw t9,-0x7fc4(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x000519fc
_or s1,zero,zero
li v0,0x4
beq a1,v0,0x0005174c
_li v0,0x1
sh v0,0x30(s0)
sw zero,0x18(s0)
lw v0,0x14c(s0)
sb zero,0x0(v0)
lw v0,0x14c(s0)
li v1,0x3
sb v1,0x1(v0)
lhu v0,0x30(s0)
lw v1,0x14c(s0)
srl a0,v0,0x8
sb a0,0x2(v1)
lw v1,0x14c(s0)
sb v0,0x3(v1)
lhu v0,0x30(s0)
sltiu v0,v0,0x2
bne v0,zero,0x0005164c
_nop
lw v0,0x13c(s0)
lw v1,0x140(s0)
slt v0,v0,v1
bne v0,zero,0x00051888
_li v0,0x3
sw zero,0x13c(s0)
lw v0,0x10(s0)
lw v1,0x0(v0)
lw v0,0x14c(s0)
addiu v0,v0,0x4
sw v0,0x14c(v1)
addiu s3,sp,0x20
lw a1,0x140(s0)
lw v0,0x13c(s0)
or a2,s3,zero
subu a1,a1,v0
lw a0,0x10(s0)
lw t9,-0x7f94(gp)
bal 0x0003ccf0
_nop
lw gp,0x18(sp)
bne v0,zero,0x000519fc
_or s1,v0,zero
lw v1,0x20(sp)
lw v0,0x13c(s0)
addu v0,v0,v1
sw v0,0x13c(s0)
lw v0,0x10(s0)
lw a0,0x0(v0)
lw v0,0x14c(a0)
addu v0,v0,v1
sw v0,0x14c(a0)
lw a2,0x13c(s0)
lw v0,0x140(s0)
slt v0,a2,v0
beq v0,zero,0x000516d4
_nop
bne v1,zero,0x00051668
_nop
lw v0,0x134(s0)
sw v0,0x14(sp)
addiu v0,s0,0xb4
sw v0,0x10(sp)
li a3,0x4000
addiu a2,a2,0x4
lw a1,0x14c(s0)
lw a0,0x14(s0)
lw t9,-0x767c(gp)
jalr t9
_nop
lw gp,0x18(sp)
bltz v0,0x00051894
_or a0,s2,zero
lw v0,0x13c(s0)
sra a2,v0,0x1f
lw v1,0xc0(s2)
lw a3,0xc4(s2)
addu a3,v0,a3
sltu v0,a3,v0
addu a2,a2,v1
addu a2,v0,a2
sw a2,0xc0(s2)
sw a3,0xc4(s2)
lw t9,-0x7fa4(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x00051a00
_or v0,s1,zero
lw v0,0x148(s0)
lbu a2,0x2(v0)
sll a2,a2,0x8
lbu v0,0x3(v0)
or a2,a2,v0
lhu a3,0x30(s0)
beq a3,a2,0x00051868
_addiu a0,s0,0x2c
bne a3,zero,0x0005177c
_ori v0,zero,0xffff
beq a2,v0,0x0005186c
_lw t9,-0x731c(gp)
lw a1,-0x7f8c(gp)
addiu a1,a1,-0x72c8
or a0,s2,zero
lw t9,-0x7f64(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x18(s0)
addiu v0,v0,0x1
sw v0,0x18(s0)
lw v1,0x20(s0)
slt v0,v1,v0
beq v0,zero,0x000517dc
_li a3,0x4000
lhu a2,0x30(s0)
lw a1,-0x7f8c(gp)
addiu a1,a1,-0x729c
or a0,s2,zero
lw t9,-0x7fc4(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x000519fc
_li s1,0x37
lw a2,0x13c(s0)
lw v0,0x134(s0)
sw v0,0x14(sp)
addiu v0,s0,0xb4
sw v0,0x10(sp)
addiu a2,a2,0x4
lw a1,0x14c(s0)
lw a0,0x14(s0)
lw t9,-0x767c(gp)
jalr t9
_nop
lw gp,0x18(sp)
bltz v0,0x0005181c
_lw t9,-0x7350(gp)
b 0x000519fc
_or s1,zero,zero
jalr t9
_nop
lw gp,0x18(sp)
lw a1,0x0(v0)
lw a0,0x10(s0)
lw t9,-0x7da8(gp)
bal 0x0004f978
_nop
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
addiu a1,a1,0x2eb8
or a0,s2,zero
lw t9,-0x7fc4(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x000519fc
_li s1,0x37
lw t9,-0x731c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lhu v0,0x30(s0)
addiu v0,v0,0x1
b 0x000515f8
_sh v0,0x30(s0)
sw v0,0x0(s0)
b 0x000519fc
_or s1,zero,zero
lw t9,-0x7350(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw a1,0x0(v0)
lw a0,0x10(s0)
lw t9,-0x7da8(gp)
bal 0x0004f978
_nop
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
addiu a1,a1,0x2eb8
or a0,s2,zero
lw t9,-0x7fc4(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x000519fc
_li s1,0x37
lw a2,0x13c(s0)
lw v0,0x134(s0)
sw v0,0x14(sp)
addiu v0,s0,0xb4
sw v0,0x10(sp)
li a3,0x4000
addiu a2,a2,0x4
lw a1,0x14c(s0)
lw a0,0x14(s0)
lw t9,-0x767c(gp)
jalr t9
_nop
lw gp,0x18(sp)
bltz v0,0x00051940
_or a0,s2,zero
lw a3,0xc4(s2)
lw a2,0xc0(s2)
lw t9,-0x7fa4(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x000519fc
_or s1,zero,zero
lw t9,-0x7350(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw a1,0x0(v0)
lw a0,0x10(s0)
lw t9,-0x7da8(gp)
bal 0x0004f978
_nop
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
addiu a1,a1,0x2eb8
or a0,s2,zero
lw t9,-0x7fc4(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x000519fc
_li s1,0x37
li s1,0x3
sw s1,0x0(a0)
lw v0,0x14c(a0)
sb zero,0x0(v0)
lw v0,0x14c(a0)
li v1,0x5
sb v1,0x1(v0)
lhu v0,0x30(a0)
lw v1,0x14c(a0)
srl a0,v0,0x8
sb a0,0x2(v1)
lw v1,0x14c(s0)
sb v0,0x3(v1)
lw v0,0x134(s0)
sw v0,0x14(sp)
addiu v0,s0,0xb4
sw v0,0x10(sp)
li a3,0x4000
li a2,0x4
lw a1,0x14c(s0)
lw a0,0x14(s0)
lw t9,-0x767c(gp)
jalr t9
_nop
lw gp,0x18(sp)
sw s1,0x0(s0)
or s1,zero,zero
or v0,s1,zero
lw a0,0x24(sp)
lw v1,-0x713c(gp)
lw v1,0x0(v1)
bne a0,v1,0x00051a2c
_lw ra,0x3c(sp)
lw s3,0x38(sp)
lw s2,0x34(sp)
lw s1,0x30(sp)
lw s0,0x2c(sp)
jr ra
_addiu sp,sp,0x40
lw t9,-0x74c8(gp)
jalr t9
_nop
(translation_unit "int FUN_000514f8(undefined4 *param_1,undefined1 *param_2)\n\n{\n  undefined2 uVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  int local_20;\n  undefined4 *local_1c;\n  \n  puVar10 = PTR_FUN_000b11ac;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar9 = *(int *)param_1[4];\n  if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }\n  if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  puVar6 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);\n  iVar8 = 0;\nLAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }\n  puVar4 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  *puVar4 = 2;\n  iVar9 = FUN_00050f5c(puVar4);\n  if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }\n  return iVar9;\n}\n\n" (function_definition "int FUN_000514f8(undefined4 *param_1,undefined1 *param_2)\n\n{\n  undefined2 uVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  int local_20;\n  undefined4 *local_1c;\n  \n  puVar10 = PTR_FUN_000b11ac;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar9 = *(int *)param_1[4];\n  if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }\n  if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  puVar6 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);\n  iVar8 = 0;\nLAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }\n  puVar4 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  *puVar4 = 2;\n  iVar9 = FUN_00050f5c(puVar4);\n  if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }\n  return iVar9;\n}" primitive_type (function_declarator "FUN_000514f8(undefined4 *param_1,undefined1 *param_2)" identifier (parameter_list "(undefined4 *param_1,undefined1 *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined1 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined2 uVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  int local_20;\n  undefined4 *local_1c;\n  \n  puVar10 = PTR_FUN_000b11ac;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar9 = *(int *)param_1[4];\n  if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }\n  if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  puVar6 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);\n  iVar8 = 0;\nLAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }\n  puVar4 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  *puVar4 = 2;\n  iVar9 = FUN_00050f5c(puVar4);\n  if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }\n  return iVar9;\n}" { (declaration "undefined2 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 *local_1c;" type_identifier (pointer_declarator "*local_1c" * identifier) ;) (expression_statement "puVar10 = PTR_FUN_000b11ac;" (assignment_expression "puVar10 = PTR_FUN_000b11ac" identifier = identifier) ;) (expression_statement "local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar9 = *(int *)param_1[4];" (assignment_expression "iVar9 = *(int *)param_1[4]" identifier = (pointer_expression "*(int *)param_1[4]" * (cast_expression "(int *)param_1[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ])))) ;) (if_statement "if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }" if (parenthesized_expression "(param_2 == &DAT_00000005)" ( (binary_expression "param_2 == &DAT_00000005" identifier == (pointer_expression "&DAT_00000005" & identifier)) )) (compound_statement "{\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }" { (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "*(undefined1 *)param_1[0x53] = 0;" (assignment_expression "*(undefined1 *)param_1[0x53] = 0" (pointer_expression "*(undefined1 *)param_1[0x53]" * (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1[0x53] + 1) = 5;" (assignment_expression "*(undefined1 *)(param_1[0x53] + 1) = 5" (pointer_expression "*(undefined1 *)(param_1[0x53] + 1)" * (cast_expression "(undefined1 *)(param_1[0x53] + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 1)" ( (binary_expression "param_1[0x53] + 1" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = *(undefined2 *)(param_1 + 0xc);" (assignment_expression "uVar1 = *(undefined2 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined2 *)(param_1 + 0xc)" * (cast_expression "(undefined2 *)(param_1 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);" (assignment_expression "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8)" (pointer_expression "*(char *)(param_1[0x53] + 2)" * (cast_expression "(char *)(param_1[0x53] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 2)" ( (binary_expression "param_1[0x53] + 2" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((ushort)uVar1 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((ushort)uVar1 >> 8)" ( (binary_expression "(ushort)uVar1 >> 8" (cast_expression "(ushort)uVar1" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(param_1[0x53] + 3) = (char)uVar1;" (assignment_expression "*(char *)(param_1[0x53] + 3) = (char)uVar1" (pointer_expression "*(char *)(param_1[0x53] + 3)" * (cast_expression "(char *)(param_1[0x53] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 3)" ( (binary_expression "param_1[0x53] + 3" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" identifier = (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) ;) (expression_statement "(*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);" (call_expression "(*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d])" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) , identifier , number_literal , number_literal , (binary_expression "param_1 + 0x2d" identifier + number_literal) , (subscript_expression "param_1[0x4d]" identifier [ number_literal ]) ))) ;) (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) (if_statement "if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" if (parenthesized_expression "((int)param_2 < 6)" ( (binary_expression "(int)param_2 < 6" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }" { (if_statement "if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }" if (parenthesized_expression "(param_2 == (undefined1 *)0x4)" ( (binary_expression "param_2 == (undefined1 *)0x4" identifier == (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }" { (if_statement "if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }" if (parenthesized_expression "((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1))))" ( (binary_expression "(*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))" (parenthesized_expression "(*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2))" ( (binary_expression "*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)" (pointer_expression "*(short *)(param_1 + 0xc)" * (cast_expression "(short *)(param_1 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != (pointer_expression "*(short *)(param_1[0x52] + 2)" * (cast_expression "(short *)(param_1[0x52] + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x52] + 2)" ( (binary_expression "param_1[0x52] + 2" (subscript_expression "param_1[0x52]" identifier [ number_literal ]) + number_literal) ))))) )) && (parenthesized_expression "((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))" ( (parenthesized_expression "(*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1))" ( (binary_expression "*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)" (binary_expression "*(short *)(param_1 + 0xc) != 0" (pointer_expression "*(short *)(param_1 + 0xc)" * (cast_expression "(short *)(param_1 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) || (parenthesized_expression "(*(short *)(param_1[0x52] + 2) != -1)" ( (binary_expression "*(short *)(param_1[0x52] + 2) != -1" (pointer_expression "*(short *)(param_1[0x52] + 2)" * (cast_expression "(short *)(param_1[0x52] + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x52] + 2)" ( (binary_expression "param_1[0x52] + 2" (subscript_expression "param_1[0x52]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) ))) )) (compound_statement "{\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }" { (expression_statement "(*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);" (call_expression "(*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8)" (parenthesized_expression "(*(code *)PTR_FUN_000b11ac)" ( (pointer_expression "*(code *)PTR_FUN_000b11ac" * (cast_expression "(code *)PTR_FUN_000b11ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,PTR_DAT_000b1184 + -0x72c8)" ( identifier , (binary_expression "PTR_DAT_000b1184 + -0x72c8" identifier + number_literal) ))) ;) (expression_statement "iVar8 = param_1[6];" (assignment_expression "iVar8 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "param_1[6] = iVar8 + 1;" (assignment_expression "param_1[6] = iVar8 + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }" if (parenthesized_expression "((int)param_1[8] < iVar8 + 1)" ( (binary_expression "(int)param_1[8] < iVar8 + 1" (cast_expression "(int)param_1[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) < (binary_expression "iVar8 + 1" identifier + number_literal)) )) (compound_statement "{\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }" { (expression_statement "puVar6 = PTR_DAT_000b1184 + -0x729c;" (assignment_expression "puVar6 = PTR_DAT_000b1184 + -0x729c" identifier = (binary_expression "PTR_DAT_000b1184 + -0x729c" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc))" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" ( (pointer_expression "*(code *)PTR_FUN_000b114c" * (cast_expression "(code *)PTR_FUN_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc))" ( identifier , identifier , (pointer_expression "*(undefined2 *)(param_1 + 0xc)" * (cast_expression "(undefined2 *)(param_1 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" identifier = number_literal) ;) }) (else_clause "else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }" else (compound_statement "{\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }" { (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" identifier = (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );" (assignment_expression "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            )" identifier = (call_expression "(*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            )" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            )" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) , identifier , (binary_expression "param_1[0x4f] + 4" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) + number_literal) , number_literal , (binary_expression "param_1 + 0x2d" identifier + number_literal) , (subscript_expression "param_1[0x4d]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b1dc0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b1dc0)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" ( (pointer_expression "*(code *)PTR___errno_location_000b1dc0" * (cast_expression "(code *)PTR___errno_location_000b1dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar5 = FUN_0004f978(param_1[4],*puVar4);" (assignment_expression "uVar5 = FUN_0004f978(param_1[4],*puVar4)" identifier = (call_expression "FUN_0004f978(param_1[4],*puVar4)" identifier (argument_list "(param_1[4],*puVar4)" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) , (pointer_expression "*puVar4" * identifier) )))) ;) (expression_statement "puVar6 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "puVar6 = PTR_LAB_000b113c + 0x2eb8" identifier = (binary_expression "PTR_LAB_000b113c + 0x2eb8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" ( (pointer_expression "*(code *)PTR_FUN_000b114c" * (cast_expression "(code *)PTR_FUN_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,uVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" identifier = number_literal) ;) }) (else_clause "else {\n            iVar8 = 0;\n          }" else (compound_statement "{\n            iVar8 = 0;\n          }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }))) }))) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_time_000b1df4)(param_1 + 0xb);" (call_expression "(*(code *)PTR_time_000b1df4)(param_1 + 0xb)" (parenthesized_expression "(*(code *)PTR_time_000b1df4)" ( (pointer_expression "*(code *)PTR_time_000b1df4" * (cast_expression "(code *)PTR_time_000b1df4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) ))) ;) (expression_statement "*(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;" (assignment_expression "*(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1" (pointer_expression "*(short *)(param_1 + 0xc)" * (cast_expression "(short *)(param_1 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "*(short *)(param_1 + 0xc) + 1" (pointer_expression "*(short *)(param_1 + 0xc)" * (cast_expression "(short *)(param_1 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar6 = param_2;" (assignment_expression "puVar6 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_000515f8;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" else (compound_statement "{\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" { (if_statement "if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }" if (parenthesized_expression "(param_2 == &DAT_00000006)" ( (binary_expression "param_2 == &DAT_00000006" identifier == (pointer_expression "&DAT_00000006" & identifier)) )) (compound_statement "{\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }" { (expression_statement "*(undefined2 *)(param_1 + 0xc) = 1;" (assignment_expression "*(undefined2 *)(param_1 + 0xc) = 1" (pointer_expression "*(undefined2 *)(param_1 + 0xc)" * (cast_expression "(undefined2 *)(param_1 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = param_2;" (assignment_expression "puVar6 = param_2" identifier = identifier) ;) (labeled_statement "LAB_000515f8:\n      param_1[6] = 0;" statement_identifier : (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined1 *)param_1[0x53] = 0;" (assignment_expression "*(undefined1 *)param_1[0x53] = 0" (pointer_expression "*(undefined1 *)param_1[0x53]" * (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1[0x53] + 1) = 3;" (assignment_expression "*(undefined1 *)(param_1[0x53] + 1) = 3" (pointer_expression "*(undefined1 *)(param_1[0x53] + 1)" * (cast_expression "(undefined1 *)(param_1[0x53] + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 1)" ( (binary_expression "param_1[0x53] + 1" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = *(undefined2 *)(param_1 + 0xc);" (assignment_expression "uVar1 = *(undefined2 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined2 *)(param_1 + 0xc)" * (cast_expression "(undefined2 *)(param_1 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);" (assignment_expression "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8)" (pointer_expression "*(char *)(param_1[0x53] + 2)" * (cast_expression "(char *)(param_1[0x53] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 2)" ( (binary_expression "param_1[0x53] + 2" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((ushort)uVar1 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((ushort)uVar1 >> 8)" ( (binary_expression "(ushort)uVar1 >> 8" (cast_expression "(ushort)uVar1" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(param_1[0x53] + 3) = (char)uVar1;" (assignment_expression "*(char *)(param_1[0x53] + 3) = (char)uVar1" (pointer_expression "*(char *)(param_1[0x53] + 3)" * (cast_expression "(char *)(param_1[0x53] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 3)" ( (binary_expression "param_1[0x53] + 3" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }" if (parenthesized_expression "((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f]))" ( (binary_expression "(*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])" (parenthesized_expression "(*(ushort *)(param_1 + 0xc) < 2)" ( (binary_expression "*(ushort *)(param_1 + 0xc) < 2" (pointer_expression "*(ushort *)(param_1 + 0xc)" * (cast_expression "(ushort *)(param_1 + 0xc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) < number_literal) )) || (parenthesized_expression "((int)param_1[0x50] <= (int)param_1[0x4f])" ( (binary_expression "(int)param_1[0x50] <= (int)param_1[0x4f]" (cast_expression "(int)param_1[0x50]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x50]" identifier [ number_literal ])) <= (cast_expression "(int)param_1[0x4f]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x4f]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }" { (expression_statement "param_1[0x4f] = 0;" (assignment_expression "param_1[0x4f] = 0" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;" (assignment_expression "*(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4" (pointer_expression "*(int *)(*(int *)param_1[4] + 0x14c)" * (cast_expression "(int *)(*(int *)param_1[4] + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1[4] + 0x14c)" ( (binary_expression "*(int *)param_1[4] + 0x14c" (pointer_expression "*(int *)param_1[4]" * (cast_expression "(int *)param_1[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) + number_literal) )))) = (binary_expression "param_1[0x53] + 4" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal)) ;) (do_statement "do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));" do (compound_statement "{\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        }" { (expression_statement "puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);" (assignment_expression "puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f])" identifier = (cast_expression "(undefined1 *)(param_1[0x50] - param_1[0x4f])" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x50] - param_1[0x4f])" ( (binary_expression "param_1[0x50] - param_1[0x4f]" (subscript_expression "param_1[0x50]" identifier [ number_literal ]) - (subscript_expression "param_1[0x4f]" identifier [ number_literal ])) )))) ;) (expression_statement "iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);" (assignment_expression "iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20)" identifier = (call_expression "FUN_0003ccf0(param_1[4],puVar6,&local_20)" identifier (argument_list "(param_1[4],puVar6,&local_20)" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) , identifier , (pointer_expression "&local_20" & identifier) )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00051a00;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;)) (expression_statement "param_1[0x4f] = param_1[0x4f] + local_20;" (assignment_expression "param_1[0x4f] = param_1[0x4f] + local_20" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) = (binary_expression "param_1[0x4f] + local_20" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "*(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;" (assignment_expression "*(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20" (pointer_expression "*(int *)(*(int *)param_1[4] + 0x14c)" * (cast_expression "(int *)(*(int *)param_1[4] + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1[4] + 0x14c)" ( (binary_expression "*(int *)param_1[4] + 0x14c" (pointer_expression "*(int *)param_1[4]" * (cast_expression "(int *)param_1[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) + number_literal) )))) = (binary_expression "*(int *)(*(int *)param_1[4] + 0x14c) + local_20" (pointer_expression "*(int *)(*(int *)param_1[4] + 0x14c)" * (cast_expression "(int *)(*(int *)param_1[4] + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1[4] + 0x14c)" ( (binary_expression "*(int *)param_1[4] + 0x14c" (pointer_expression "*(int *)param_1[4]" * (cast_expression "(int *)param_1[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) + number_literal) )))) + identifier)) ;) }) while (parenthesized_expression "(((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0))" ( (binary_expression "((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0)" (parenthesized_expression "((int)param_1[0x4f] < (int)param_1[0x50])" ( (binary_expression "(int)param_1[0x4f] < (int)param_1[0x50]" (cast_expression "(int)param_1[0x4f]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x4f]" identifier [ number_literal ])) < (cast_expression "(int)param_1[0x50]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x50]" identifier [ number_literal ]))) )) && (parenthesized_expression "(local_20 != 0)" ( (binary_expression "local_20 != 0" identifier != number_literal) ))) )) ;) (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" identifier = (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) ;) (expression_statement "iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);" (assignment_expression "iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" identifier = (call_expression "(*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) , identifier , (binary_expression "param_1[0x4f] + 4" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) + number_literal) , number_literal , (binary_expression "param_1 + 0x2d" identifier + number_literal) , (subscript_expression "param_1[0x4d]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b1dc0)(iVar9)" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" ( (pointer_expression "*(code *)PTR___errno_location_000b1dc0" * (cast_expression "(code *)PTR___errno_location_000b1dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier ))))) ;) (expression_statement "uVar5 = FUN_0004f978(param_1[4],*puVar4);" (assignment_expression "uVar5 = FUN_0004f978(param_1[4],*puVar4)" identifier = (call_expression "FUN_0004f978(param_1[4],*puVar4)" identifier (argument_list "(param_1[4],*puVar4)" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) , (pointer_expression "*puVar4" * identifier) )))) ;) (expression_statement "puVar6 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "puVar6 = PTR_LAB_000b113c + 0x2eb8" identifier = (binary_expression "PTR_LAB_000b113c + 0x2eb8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" ( (pointer_expression "*(code *)PTR_FUN_000b114c" * (cast_expression "(code *)PTR_FUN_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,uVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" identifier = number_literal) ;) }) (else_clause "else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }" else (compound_statement "{\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }" { (expression_statement "uVar3 = param_1[0x4f];" (assignment_expression "uVar3 = param_1[0x4f]" identifier = (subscript_expression "param_1[0x4f]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);" (assignment_expression "uVar7 = uVar3 + *(int *)(iVar9 + 0xc4)" identifier = (binary_expression "uVar3 + *(int *)(iVar9 + 0xc4)" identifier + (pointer_expression "*(int *)(iVar9 + 0xc4)" * (cast_expression "(int *)(iVar9 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc4)" ( (binary_expression "iVar9 + 0xc4" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);" (assignment_expression "*(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0)" (pointer_expression "*(uint *)(iVar9 + 0xc0)" * (cast_expression "(uint *)(iVar9 + 0xc0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc0)" ( (binary_expression "iVar9 + 0xc0" identifier + number_literal) )))) = (binary_expression "(uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0)" (binary_expression "(uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f)" (call_expression "(uint)(uVar7 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < uVar3)" ( (binary_expression "uVar7 < uVar3" identifier < identifier) ))) + (parenthesized_expression "((int)uVar3 >> 0x1f)" ( (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)(iVar9 + 0xc0)" * (cast_expression "(int *)(iVar9 + 0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc0)" ( (binary_expression "iVar9 + 0xc0" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(iVar9 + 0xc4) = uVar7;" (assignment_expression "*(uint *)(iVar9 + 0xc4) = uVar7" (pointer_expression "*(uint *)(iVar9 + 0xc4)" * (cast_expression "(uint *)(iVar9 + 0xc4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc4)" ( (binary_expression "iVar9 + 0xc4" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)PTR_FUN_000b116c)();" (call_expression "(*(code *)PTR_FUN_000b116c)()" (parenthesized_expression "(*(code *)PTR_FUN_000b116c)" ( (pointer_expression "*(code *)PTR_FUN_000b116c" * (cast_expression "(code *)PTR_FUN_000b116c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }" else (compound_statement "{\n        *param_1 = 3;\n        iVar8 = 0;\n      }" { (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) (if_statement "if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }" if (parenthesized_expression "(param_2 == &DAT_00000007)" ( (binary_expression "param_2 == &DAT_00000007" identifier == (pointer_expression "&DAT_00000007" & identifier)) )) (compound_statement "{\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }" { (expression_statement "param_1[6] = param_1[6] + 1;" (assignment_expression "param_1[6] = param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "puVar6 = PTR_DAT_000b1184 + -0x7270;" (assignment_expression "puVar6 = PTR_DAT_000b1184 + -0x7270" identifier = (binary_expression "PTR_DAT_000b1184 + -0x7270" identifier + number_literal)) ;) (expression_statement "(*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);" (call_expression "(*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1)" ( identifier , identifier , (binary_expression "*(short *)(param_1 + 0xc) + 1" (pointer_expression "*(short *)(param_1 + 0xc)" * (cast_expression "(short *)(param_1 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }" if (parenthesized_expression "((int)param_1[8] < (int)param_1[6])" ( (binary_expression "(int)param_1[8] < (int)param_1[6]" (cast_expression "(int)param_1[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) < (cast_expression "(int)param_1[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) )) (compound_statement "{\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }" { (expression_statement "param_1[2] = 0xffffff9d;" (assignment_expression "param_1[2] = 0xffffff9d" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }" else (compound_statement "{\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }" { (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" identifier = (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);" (assignment_expression "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" identifier = (call_expression "(*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) , identifier , (binary_expression "param_1[0x4f] + 4" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) + number_literal) , number_literal , (binary_expression "param_1 + 0x2d" identifier + number_literal) , (subscript_expression "param_1[0x4d]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b1dc0)(iVar9)" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" ( (pointer_expression "*(code *)PTR___errno_location_000b1dc0" * (cast_expression "(code *)PTR___errno_location_000b1dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier ))))) ;) (expression_statement "uVar5 = FUN_0004f978(param_1[4],*puVar4);" (assignment_expression "uVar5 = FUN_0004f978(param_1[4],*puVar4)" identifier = (call_expression "FUN_0004f978(param_1[4],*puVar4)" identifier (argument_list "(param_1[4],*puVar4)" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) , (pointer_expression "*puVar4" * identifier) )))) ;) (expression_statement "puVar6 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "puVar6 = PTR_LAB_000b113c + 0x2eb8" identifier = (binary_expression "PTR_LAB_000b113c + 0x2eb8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" ( (pointer_expression "*(code *)PTR_FUN_000b114c" * (cast_expression "(code *)PTR_FUN_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,uVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" identifier = number_literal) ;) }) (else_clause "else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }" else (compound_statement "{\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }" { (expression_statement "(*(code *)PTR_FUN_000b116c)();" (call_expression "(*(code *)PTR_FUN_000b116c)()" (parenthesized_expression "(*(code *)PTR_FUN_000b116c)" ( (pointer_expression "*(code *)PTR_FUN_000b116c" * (cast_expression "(code *)PTR_FUN_000b116c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }))) }))) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) }))) (expression_statement "puVar6 = PTR_DAT_000b1184 + -0x723c;" (assignment_expression "puVar6 = PTR_DAT_000b1184 + -0x723c" identifier = (binary_expression "PTR_DAT_000b1184 + -0x723c" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" ( (pointer_expression "*(code *)PTR_FUN_000b114c" * (cast_expression "(code *)PTR_FUN_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }" statement_identifier : (if_statement "if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }" if (parenthesized_expression "(local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4)" ( (binary_expression "local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4" identifier == (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) }))) (expression_statement "puVar4 = local_1c;" (assignment_expression "puVar4 = local_1c" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000b1c48" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" * (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);" (call_expression "(**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218)" (parenthesized_expression "(**(code **)(puVar10 + 0x5f774))" ( (pointer_expression "**(code **)(puVar10 + 0x5f774)" * (pointer_expression "*(code **)(puVar10 + 0x5f774)" * (cast_expression "(code **)(puVar10 + 0x5f774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x5f774)" ( (binary_expression "puVar10 + 0x5f774" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218)" ( (pointer_expression "*(undefined4 *)puVar4[4]" * (cast_expression "(undefined4 *)puVar4[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[4]" identifier [ number_literal ]))) , (binary_expression "*(int *)(puVar10 + 0x5f704) + 0x3f1c" (pointer_expression "*(int *)(puVar10 + 0x5f704)" * (cast_expression "(int *)(puVar10 + 0x5f704)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5f704)" ( (binary_expression "puVar10 + 0x5f704" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar10 + 0x5f74c) + -0x7218" (pointer_expression "*(int *)(puVar10 + 0x5f74c)" * (cast_expression "(int *)(puVar10 + 0x5f74c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5f74c)" ( (binary_expression "puVar10 + 0x5f74c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "*puVar4 = 2;" (assignment_expression "*puVar4 = 2" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "iVar9 = FUN_00050f5c(puVar4);" (assignment_expression "iVar9 = FUN_00050f5c(puVar4)" identifier = (call_expression "FUN_00050f5c(puVar4)" identifier (argument_list "(puVar4)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }" { (expression_statement "iVar9 = FUN_000514f8(puVar4,puVar6);" (assignment_expression "iVar9 = FUN_000514f8(puVar4,puVar6)" identifier = (call_expression "FUN_000514f8(puVar4,puVar6)" identifier (argument_list "(puVar4,puVar6)" ( identifier , identifier )))) ;) })) (return_statement "return iVar9;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nCURLcode tftp_tx(tftp_state_data_t *state,tftp_event_t event)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  Curl_easy *pCVar6;\n  tftp_state_data_t *state_00;\n  uchar *event_00;\n  uint uVar7;\n  CURLcode CVar8;\n  Curl_easy *pCVar9;\n  undefined *puVar10;\n  size_t cb;\n  tftp_state_data_t *local_1c;\n  \n  puVar10 = PTR_Curl_infof_000b11ac;\n  local_1c = *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4;\n  pCVar9 = state->conn->data;\n  if (event == TFTP_EVENT_ERROR) {\n    state->state = TFTP_STATE_FIN;\n    *(state->spacket).data = '\0';\n    (state->spacket).data[1] = '\x05';\n    uVar1 = state->block;\n    (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n    (state->spacket).data[3] = (uchar)uVar1;\n    event_00 = (state->spacket).data;\n    (*(code *)PTR_sendto_000b1a94)\n              (state->sockfd,event_00,4,0x4000,&state->remote_addr,state->remote_addrlen);\n    state->state = TFTP_STATE_FIN;\n    CVar8 = CURLE_OK;\n    goto LAB_00051a00;\n  }\n  if (event < TFTP_EVENT_OACK) {\n    if (event == TFTP_EVENT_ACK) {\n      uVar1 = *(ushort *)((state->rpacket).data + 2);\n      if ((state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff)))) {\n        (*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar3 = state->retries + 1;\n        state->retries = iVar3;\n        if (state->retry_max < iVar3) {\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(&state->rx_time);\n      state->block = state->block + 1;\n      event_00 = (uchar *)event;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (event == TFTP_EVENT_OACK) {\n      state->block = 1;\n      event_00 = (uchar *)event;\nLAB_000515f8:\n      state->retries = 0;\n      *(state->spacket).data = '\0';\n      (state->spacket).data[1] = '\x03';\n      uVar1 = state->block;\n      (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n      (state->spacket).data[3] = (uchar)uVar1;\n      if ((state->block < 2) || (state->blksize <= state->sbytes)) {\n        state->sbytes = 0;\n        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);\n        do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }\n      }\n      else {\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      goto LAB_00051a00;\n    }\n    if (event == TFTP_EVENT_TIMEOUT) {\n      state->retries = state->retries + 1;\n      event_00 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(pCVar9,event_00,state->block + 1);\n      if (state->retry_max < state->retries) {\n        state->error = TFTP_ERR_TIMEOUT;\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      else {\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  event_00 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,event);\n  CVar8 = CURLE_OK;\nLAB_00051a00:\n  if (local_1c == *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4) {\n    return CVar8;\n  }\n  state_00 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (state_00->conn->data,*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  state_00->state = TFTP_STATE_TX;\n  CVar8 = tftp_set_timeouts(state_00);\n  if (CVar8 == CURLE_OK) {\n    CVar8 = tftp_tx(state_00,(tftp_event_t)event_00);\n  }\n  return CVar8;\n}\n\n" comment (function_definition "CURLcode tftp_tx(tftp_state_data_t *state,tftp_event_t event)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  Curl_easy *pCVar6;\n  tftp_state_data_t *state_00;\n  uchar *event_00;\n  uint uVar7;\n  CURLcode CVar8;\n  Curl_easy *pCVar9;\n  undefined *puVar10;\n  size_t cb;\n  tftp_state_data_t *local_1c;\n  \n  puVar10 = PTR_Curl_infof_000b11ac;\n  local_1c = *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4;\n  pCVar9 = state->conn->data;\n  if (event == TFTP_EVENT_ERROR) {\n    state->state = TFTP_STATE_FIN;\n    *(state->spacket).data = '\0';\n    (state->spacket).data[1] = '\x05';\n    uVar1 = state->block;\n    (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n    (state->spacket).data[3] = (uchar)uVar1;\n    event_00 = (state->spacket).data;\n    (*(code *)PTR_sendto_000b1a94)\n              (state->sockfd,event_00,4,0x4000,&state->remote_addr,state->remote_addrlen);\n    state->state = TFTP_STATE_FIN;\n    CVar8 = CURLE_OK;\n    goto LAB_00051a00;\n  }\n  if (event < TFTP_EVENT_OACK) {\n    if (event == TFTP_EVENT_ACK) {\n      uVar1 = *(ushort *)((state->rpacket).data + 2);\n      if ((state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff)))) {\n        (*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar3 = state->retries + 1;\n        state->retries = iVar3;\n        if (state->retry_max < iVar3) {\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(&state->rx_time);\n      state->block = state->block + 1;\n      event_00 = (uchar *)event;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (event == TFTP_EVENT_OACK) {\n      state->block = 1;\n      event_00 = (uchar *)event;\nLAB_000515f8:\n      state->retries = 0;\n      *(state->spacket).data = '\0';\n      (state->spacket).data[1] = '\x03';\n      uVar1 = state->block;\n      (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n      (state->spacket).data[3] = (uchar)uVar1;\n      if ((state->block < 2) || (state->blksize <= state->sbytes)) {\n        state->sbytes = 0;\n        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);\n        do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }\n      }\n      else {\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      goto LAB_00051a00;\n    }\n    if (event == TFTP_EVENT_TIMEOUT) {\n      state->retries = state->retries + 1;\n      event_00 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(pCVar9,event_00,state->block + 1);\n      if (state->retry_max < state->retries) {\n        state->error = TFTP_ERR_TIMEOUT;\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      else {\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  event_00 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,event);\n  CVar8 = CURLE_OK;\nLAB_00051a00:\n  if (local_1c == *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4) {\n    return CVar8;\n  }\n  state_00 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (state_00->conn->data,*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  state_00->state = TFTP_STATE_TX;\n  CVar8 = tftp_set_timeouts(state_00);\n  if (CVar8 == CURLE_OK) {\n    CVar8 = tftp_tx(state_00,(tftp_event_t)event_00);\n  }\n  return CVar8;\n}" type_identifier (function_declarator "tftp_tx(tftp_state_data_t *state,tftp_event_t event)" identifier (parameter_list "(tftp_state_data_t *state,tftp_event_t event)" ( (parameter_declaration "tftp_state_data_t *state" type_identifier (pointer_declarator "*state" * identifier)) , (parameter_declaration "tftp_event_t event" type_identifier identifier) ))) (compound_statement "{\n  ushort uVar1;\n  uint uVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  Curl_easy *pCVar6;\n  tftp_state_data_t *state_00;\n  uchar *event_00;\n  uint uVar7;\n  CURLcode CVar8;\n  Curl_easy *pCVar9;\n  undefined *puVar10;\n  size_t cb;\n  tftp_state_data_t *local_1c;\n  \n  puVar10 = PTR_Curl_infof_000b11ac;\n  local_1c = *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4;\n  pCVar9 = state->conn->data;\n  if (event == TFTP_EVENT_ERROR) {\n    state->state = TFTP_STATE_FIN;\n    *(state->spacket).data = '\0';\n    (state->spacket).data[1] = '\x05';\n    uVar1 = state->block;\n    (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n    (state->spacket).data[3] = (uchar)uVar1;\n    event_00 = (state->spacket).data;\n    (*(code *)PTR_sendto_000b1a94)\n              (state->sockfd,event_00,4,0x4000,&state->remote_addr,state->remote_addrlen);\n    state->state = TFTP_STATE_FIN;\n    CVar8 = CURLE_OK;\n    goto LAB_00051a00;\n  }\n  if (event < TFTP_EVENT_OACK) {\n    if (event == TFTP_EVENT_ACK) {\n      uVar1 = *(ushort *)((state->rpacket).data + 2);\n      if ((state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff)))) {\n        (*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar3 = state->retries + 1;\n        state->retries = iVar3;\n        if (state->retry_max < iVar3) {\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(&state->rx_time);\n      state->block = state->block + 1;\n      event_00 = (uchar *)event;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (event == TFTP_EVENT_OACK) {\n      state->block = 1;\n      event_00 = (uchar *)event;\nLAB_000515f8:\n      state->retries = 0;\n      *(state->spacket).data = '\0';\n      (state->spacket).data[1] = '\x03';\n      uVar1 = state->block;\n      (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n      (state->spacket).data[3] = (uchar)uVar1;\n      if ((state->block < 2) || (state->blksize <= state->sbytes)) {\n        state->sbytes = 0;\n        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);\n        do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }\n      }\n      else {\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      goto LAB_00051a00;\n    }\n    if (event == TFTP_EVENT_TIMEOUT) {\n      state->retries = state->retries + 1;\n      event_00 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(pCVar9,event_00,state->block + 1);\n      if (state->retry_max < state->retries) {\n        state->error = TFTP_ERR_TIMEOUT;\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      else {\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  event_00 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,event);\n  CVar8 = CURLE_OK;\nLAB_00051a00:\n  if (local_1c == *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4) {\n    return CVar8;\n  }\n  state_00 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (state_00->conn->data,*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  state_00->state = TFTP_STATE_TX;\n  CVar8 = tftp_set_timeouts(state_00);\n  if (CVar8 == CURLE_OK) {\n    CVar8 = tftp_tx(state_00,(tftp_event_t)event_00);\n  }\n  return CVar8;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "Curl_easy *pCVar6;" type_identifier (pointer_declarator "*pCVar6" * identifier) ;) (declaration "tftp_state_data_t *state_00;" type_identifier (pointer_declarator "*state_00" * identifier) ;) (declaration "uchar *event_00;" type_identifier (pointer_declarator "*event_00" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "CURLcode CVar8;" type_identifier identifier ;) (declaration "Curl_easy *pCVar9;" type_identifier (pointer_declarator "*pCVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "size_t cb;" primitive_type identifier ;) (declaration "tftp_state_data_t *local_1c;" type_identifier (pointer_declarator "*local_1c" * identifier) ;) (expression_statement "puVar10 = PTR_Curl_infof_000b11ac;" (assignment_expression "puVar10 = PTR_Curl_infof_000b11ac" identifier = identifier) ;) (expression_statement "local_1c = *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "local_1c = *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4" identifier = (pointer_expression "*(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "tftp_state_data_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pCVar9 = state->conn->data;" (assignment_expression "pCVar9 = state->conn->data" identifier = (field_expression "state->conn->data" (field_expression "state->conn" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (event == TFTP_EVENT_ERROR) {\n    state->state = TFTP_STATE_FIN;\n    *(state->spacket).data = '\0';\n    (state->spacket).data[1] = '\x05';\n    uVar1 = state->block;\n    (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n    (state->spacket).data[3] = (uchar)uVar1;\n    event_00 = (state->spacket).data;\n    (*(code *)PTR_sendto_000b1a94)\n              (state->sockfd,event_00,4,0x4000,&state->remote_addr,state->remote_addrlen);\n    state->state = TFTP_STATE_FIN;\n    CVar8 = CURLE_OK;\n    goto LAB_00051a00;\n  }" if (parenthesized_expression "(event == TFTP_EVENT_ERROR)" ( (binary_expression "event == TFTP_EVENT_ERROR" identifier == identifier) )) (compound_statement "{\n    state->state = TFTP_STATE_FIN;\n    *(state->spacket).data = '\0';\n    (state->spacket).data[1] = '\x05';\n    uVar1 = state->block;\n    (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n    (state->spacket).data[3] = (uchar)uVar1;\n    event_00 = (state->spacket).data;\n    (*(code *)PTR_sendto_000b1a94)\n              (state->sockfd,event_00,4,0x4000,&state->remote_addr,state->remote_addrlen);\n    state->state = TFTP_STATE_FIN;\n    CVar8 = CURLE_OK;\n    goto LAB_00051a00;\n  }" { (expression_statement "state->state = TFTP_STATE_FIN;" (assignment_expression "state->state = TFTP_STATE_FIN" (field_expression "state->state" identifier -> field_identifier) = identifier) ;) (expression_statement "*(state->spacket).data = '\0';" (assignment_expression "*(state->spacket).data = '\0'" (pointer_expression "*(state->spacket).data" * (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(state->spacket).data[1] = '\x05';" (assignment_expression "(state->spacket).data[1] = '\x05'" (subscript_expression "(state->spacket).data[1]" (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (char_literal "'\x05'" ' escape_sequence ')) ;) (expression_statement "uVar1 = state->block;" (assignment_expression "uVar1 = state->block" identifier = (field_expression "state->block" identifier -> field_identifier)) ;) (expression_statement "(state->spacket).data[2] = (uchar)(uVar1 >> 8);" (assignment_expression "(state->spacket).data[2] = (uchar)(uVar1 >> 8)" (subscript_expression "(state->spacket).data[2]" (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (call_expression "(uchar)(uVar1 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar1 >> 8)" ( (binary_expression "uVar1 >> 8" identifier >> number_literal) )))) ;) (expression_statement "(state->spacket).data[3] = (uchar)uVar1;" (assignment_expression "(state->spacket).data[3] = (uchar)uVar1" (subscript_expression "(state->spacket).data[3]" (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (cast_expression "(uchar)uVar1" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "event_00 = (state->spacket).data;" (assignment_expression "event_00 = (state->spacket).data" identifier = (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(*(code *)PTR_sendto_000b1a94)\n              (state->sockfd,event_00,4,0x4000,&state->remote_addr,state->remote_addrlen);" (call_expression "(*(code *)PTR_sendto_000b1a94)\n              (state->sockfd,event_00,4,0x4000,&state->remote_addr,state->remote_addrlen)" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(state->sockfd,event_00,4,0x4000,&state->remote_addr,state->remote_addrlen)" ( (field_expression "state->sockfd" identifier -> field_identifier) , identifier , number_literal , number_literal , (pointer_expression "&state->remote_addr" & (field_expression "state->remote_addr" identifier -> field_identifier)) , (field_expression "state->remote_addrlen" identifier -> field_identifier) ))) ;) (expression_statement "state->state = TFTP_STATE_FIN;" (assignment_expression "state->state = TFTP_STATE_FIN" (field_expression "state->state" identifier -> field_identifier) = identifier) ;) (expression_statement "CVar8 = CURLE_OK;" (assignment_expression "CVar8 = CURLE_OK" identifier = identifier) ;) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) (if_statement "if (event < TFTP_EVENT_OACK) {\n    if (event == TFTP_EVENT_ACK) {\n      uVar1 = *(ushort *)((state->rpacket).data + 2);\n      if ((state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff)))) {\n        (*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar3 = state->retries + 1;\n        state->retries = iVar3;\n        if (state->retry_max < iVar3) {\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(&state->rx_time);\n      state->block = state->block + 1;\n      event_00 = (uchar *)event;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (event == TFTP_EVENT_OACK) {\n      state->block = 1;\n      event_00 = (uchar *)event;\nLAB_000515f8:\n      state->retries = 0;\n      *(state->spacket).data = '\0';\n      (state->spacket).data[1] = '\x03';\n      uVar1 = state->block;\n      (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n      (state->spacket).data[3] = (uchar)uVar1;\n      if ((state->block < 2) || (state->blksize <= state->sbytes)) {\n        state->sbytes = 0;\n        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);\n        do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }\n      }\n      else {\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      goto LAB_00051a00;\n    }\n    if (event == TFTP_EVENT_TIMEOUT) {\n      state->retries = state->retries + 1;\n      event_00 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(pCVar9,event_00,state->block + 1);\n      if (state->retry_max < state->retries) {\n        state->error = TFTP_ERR_TIMEOUT;\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      else {\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" if (parenthesized_expression "(event < TFTP_EVENT_OACK)" ( (binary_expression "event < TFTP_EVENT_OACK" identifier < identifier) )) (compound_statement "{\n    if (event == TFTP_EVENT_ACK) {\n      uVar1 = *(ushort *)((state->rpacket).data + 2);\n      if ((state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff)))) {\n        (*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar3 = state->retries + 1;\n        state->retries = iVar3;\n        if (state->retry_max < iVar3) {\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(&state->rx_time);\n      state->block = state->block + 1;\n      event_00 = (uchar *)event;\n      goto LAB_000515f8;\n    }\n  }" { (if_statement "if (event == TFTP_EVENT_ACK) {\n      uVar1 = *(ushort *)((state->rpacket).data + 2);\n      if ((state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff)))) {\n        (*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar3 = state->retries + 1;\n        state->retries = iVar3;\n        if (state->retry_max < iVar3) {\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(&state->rx_time);\n      state->block = state->block + 1;\n      event_00 = (uchar *)event;\n      goto LAB_000515f8;\n    }" if (parenthesized_expression "(event == TFTP_EVENT_ACK)" ( (binary_expression "event == TFTP_EVENT_ACK" identifier == identifier) )) (compound_statement "{\n      uVar1 = *(ushort *)((state->rpacket).data + 2);\n      if ((state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff)))) {\n        (*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar3 = state->retries + 1;\n        state->retries = iVar3;\n        if (state->retry_max < iVar3) {\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(&state->rx_time);\n      state->block = state->block + 1;\n      event_00 = (uchar *)event;\n      goto LAB_000515f8;\n    }" { (expression_statement "uVar1 = *(ushort *)((state->rpacket).data + 2);" (assignment_expression "uVar1 = *(ushort *)((state->rpacket).data + 2)" identifier = (pointer_expression "*(ushort *)((state->rpacket).data + 2)" * (cast_expression "(ushort *)((state->rpacket).data + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((state->rpacket).data + 2)" ( (binary_expression "(state->rpacket).data + 2" (field_expression "(state->rpacket).data" (parenthesized_expression "(state->rpacket)" ( (field_expression "state->rpacket" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;) (if_statement "if ((state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff)))) {\n        (*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar3 = state->retries + 1;\n        state->retries = iVar3;\n        if (state->retry_max < iVar3) {\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }\n        goto LAB_00051a00;\n      }" if (parenthesized_expression "((state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff))))" ( (binary_expression "(state->block != uVar1) && ((state->block != 0 || (uVar1 != 0xffff)))" (parenthesized_expression "(state->block != uVar1)" ( (binary_expression "state->block != uVar1" (field_expression "state->block" identifier -> field_identifier) != identifier) )) && (parenthesized_expression "((state->block != 0 || (uVar1 != 0xffff)))" ( (parenthesized_expression "(state->block != 0 || (uVar1 != 0xffff))" ( (binary_expression "state->block != 0 || (uVar1 != 0xffff)" (binary_expression "state->block != 0" (field_expression "state->block" identifier -> field_identifier) != number_literal) || (parenthesized_expression "(uVar1 != 0xffff)" ( (binary_expression "uVar1 != 0xffff" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n        (*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar3 = state->retries + 1;\n        state->retries = iVar3;\n        if (state->retry_max < iVar3) {\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }\n        goto LAB_00051a00;\n      }" { (expression_statement "(*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8);" (call_expression "(*(code *)PTR_Curl_infof_000b11ac)(pCVar9,PTR_DAT_000b1184 + -0x72c8)" (parenthesized_expression "(*(code *)PTR_Curl_infof_000b11ac)" ( (pointer_expression "*(code *)PTR_Curl_infof_000b11ac" * (cast_expression "(code *)PTR_Curl_infof_000b11ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pCVar9,PTR_DAT_000b1184 + -0x72c8)" ( identifier , (binary_expression "PTR_DAT_000b1184 + -0x72c8" identifier + number_literal) ))) ;) (expression_statement "iVar3 = state->retries + 1;" (assignment_expression "iVar3 = state->retries + 1" identifier = (binary_expression "state->retries + 1" (field_expression "state->retries" identifier -> field_identifier) + number_literal)) ;) (expression_statement "state->retries = iVar3;" (assignment_expression "state->retries = iVar3" (field_expression "state->retries" identifier -> field_identifier) = identifier) ;) (if_statement "if (state->retry_max < iVar3) {\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }" if (parenthesized_expression "(state->retry_max < iVar3)" ( (binary_expression "state->retry_max < iVar3" (field_expression "state->retry_max" identifier -> field_identifier) < identifier) )) (compound_statement "{\n          event_00 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);\n          CVar8 = CURLE_SEND_ERROR;\n        }" { (expression_statement "event_00 = PTR_DAT_000b1184 + -0x729c;" (assignment_expression "event_00 = PTR_DAT_000b1184 + -0x729c" identifier = (binary_expression "PTR_DAT_000b1184 + -0x729c" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);" (call_expression "(*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block)" (parenthesized_expression "(*(code *)PTR_Curl_failf_000b114c)" ( (pointer_expression "*(code *)PTR_Curl_failf_000b114c" * (cast_expression "(code *)PTR_Curl_failf_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pCVar9,event_00,state->block)" ( identifier , identifier , (field_expression "state->block" identifier -> field_identifier) ))) ;) (expression_statement "CVar8 = CURLE_SEND_ERROR;" (assignment_expression "CVar8 = CURLE_SEND_ERROR" identifier = identifier) ;) }) (else_clause "else {\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }" else (compound_statement "{\n          event_00 = (state->spacket).data;\n          iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);\n          if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }\n        }" { (expression_statement "event_00 = (state->spacket).data;" (assignment_expression "event_00 = (state->spacket).data" identifier = (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen);" (assignment_expression "iVar3 = (*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen)" identifier = (call_expression "(*(code *)PTR_sendto_000b1a94)\n                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen)" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                             state->remote_addrlen)" ( (field_expression "state->sockfd" identifier -> field_identifier) , identifier , (binary_expression "state->sbytes + 4" (field_expression "state->sbytes" identifier -> field_identifier) + number_literal) , number_literal , (pointer_expression "&state->remote_addr" & (field_expression "state->remote_addr" identifier -> field_identifier)) , (field_expression "state->remote_addrlen" identifier -> field_identifier) )))) ;) (if_statement "if (iVar3 < 0) {\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }\n          else {\n            CVar8 = CURLE_OK;\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n            piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();\n            pcVar5 = Curl_strerror(state->conn,*piVar4);\n            event_00 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n            CVar8 = CURLE_SEND_ERROR;\n          }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_000b1dc0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b1dc0)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" ( (pointer_expression "*(code *)PTR___errno_location_000b1dc0" * (cast_expression "(code *)PTR___errno_location_000b1dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar5 = Curl_strerror(state->conn,*piVar4);" (assignment_expression "pcVar5 = Curl_strerror(state->conn,*piVar4)" identifier = (call_expression "Curl_strerror(state->conn,*piVar4)" identifier (argument_list "(state->conn,*piVar4)" ( (field_expression "state->conn" identifier -> field_identifier) , (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "event_00 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "event_00 = PTR_LAB_000b113c + 0x2eb8" identifier = (binary_expression "PTR_LAB_000b113c + 0x2eb8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);" (call_expression "(*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5)" (parenthesized_expression "(*(code *)PTR_Curl_failf_000b114c)" ( (pointer_expression "*(code *)PTR_Curl_failf_000b114c" * (cast_expression "(code *)PTR_Curl_failf_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pCVar9,event_00,pcVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "CVar8 = CURLE_SEND_ERROR;" (assignment_expression "CVar8 = CURLE_SEND_ERROR" identifier = identifier) ;) }) (else_clause "else {\n            CVar8 = CURLE_OK;\n          }" else (compound_statement "{\n            CVar8 = CURLE_OK;\n          }" { (expression_statement "CVar8 = CURLE_OK;" (assignment_expression "CVar8 = CURLE_OK" identifier = identifier) ;) }))) }))) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_time_000b1df4)(&state->rx_time);" (call_expression "(*(code *)PTR_time_000b1df4)(&state->rx_time)" (parenthesized_expression "(*(code *)PTR_time_000b1df4)" ( (pointer_expression "*(code *)PTR_time_000b1df4" * (cast_expression "(code *)PTR_time_000b1df4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&state->rx_time)" ( (pointer_expression "&state->rx_time" & (field_expression "state->rx_time" identifier -> field_identifier)) ))) ;) (expression_statement "state->block = state->block + 1;" (assignment_expression "state->block = state->block + 1" (field_expression "state->block" identifier -> field_identifier) = (binary_expression "state->block + 1" (field_expression "state->block" identifier -> field_identifier) + number_literal)) ;) (expression_statement "event_00 = (uchar *)event;" (assignment_expression "event_00 = (uchar *)event" identifier = (cast_expression "(uchar *)event" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000515f8;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (event == TFTP_EVENT_OACK) {\n      state->block = 1;\n      event_00 = (uchar *)event;\nLAB_000515f8:\n      state->retries = 0;\n      *(state->spacket).data = '\0';\n      (state->spacket).data[1] = '\x03';\n      uVar1 = state->block;\n      (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n      (state->spacket).data[3] = (uchar)uVar1;\n      if ((state->block < 2) || (state->blksize <= state->sbytes)) {\n        state->sbytes = 0;\n        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);\n        do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }\n      }\n      else {\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      goto LAB_00051a00;\n    }\n    if (event == TFTP_EVENT_TIMEOUT) {\n      state->retries = state->retries + 1;\n      event_00 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(pCVar9,event_00,state->block + 1);\n      if (state->retry_max < state->retries) {\n        state->error = TFTP_ERR_TIMEOUT;\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      else {\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" else (compound_statement "{\n    if (event == TFTP_EVENT_OACK) {\n      state->block = 1;\n      event_00 = (uchar *)event;\nLAB_000515f8:\n      state->retries = 0;\n      *(state->spacket).data = '\0';\n      (state->spacket).data[1] = '\x03';\n      uVar1 = state->block;\n      (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n      (state->spacket).data[3] = (uchar)uVar1;\n      if ((state->block < 2) || (state->blksize <= state->sbytes)) {\n        state->sbytes = 0;\n        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);\n        do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }\n      }\n      else {\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      goto LAB_00051a00;\n    }\n    if (event == TFTP_EVENT_TIMEOUT) {\n      state->retries = state->retries + 1;\n      event_00 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(pCVar9,event_00,state->block + 1);\n      if (state->retry_max < state->retries) {\n        state->error = TFTP_ERR_TIMEOUT;\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      else {\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" { (if_statement "if (event == TFTP_EVENT_OACK) {\n      state->block = 1;\n      event_00 = (uchar *)event;\nLAB_000515f8:\n      state->retries = 0;\n      *(state->spacket).data = '\0';\n      (state->spacket).data[1] = '\x03';\n      uVar1 = state->block;\n      (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n      (state->spacket).data[3] = (uchar)uVar1;\n      if ((state->block < 2) || (state->blksize <= state->sbytes)) {\n        state->sbytes = 0;\n        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);\n        do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }\n      }\n      else {\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      goto LAB_00051a00;\n    }" if (parenthesized_expression "(event == TFTP_EVENT_OACK)" ( (binary_expression "event == TFTP_EVENT_OACK" identifier == identifier) )) (compound_statement "{\n      state->block = 1;\n      event_00 = (uchar *)event;\nLAB_000515f8:\n      state->retries = 0;\n      *(state->spacket).data = '\0';\n      (state->spacket).data[1] = '\x03';\n      uVar1 = state->block;\n      (state->spacket).data[2] = (uchar)(uVar1 >> 8);\n      (state->spacket).data[3] = (uchar)uVar1;\n      if ((state->block < 2) || (state->blksize <= state->sbytes)) {\n        state->sbytes = 0;\n        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);\n        do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }\n      }\n      else {\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      goto LAB_00051a00;\n    }" { (expression_statement "state->block = 1;" (assignment_expression "state->block = 1" (field_expression "state->block" identifier -> field_identifier) = number_literal) ;) (expression_statement "event_00 = (uchar *)event;" (assignment_expression "event_00 = (uchar *)event" identifier = (cast_expression "(uchar *)event" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_000515f8:\n      state->retries = 0;" statement_identifier : (expression_statement "state->retries = 0;" (assignment_expression "state->retries = 0" (field_expression "state->retries" identifier -> field_identifier) = number_literal) ;)) (expression_statement "*(state->spacket).data = '\0';" (assignment_expression "*(state->spacket).data = '\0'" (pointer_expression "*(state->spacket).data" * (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(state->spacket).data[1] = '\x03';" (assignment_expression "(state->spacket).data[1] = '\x03'" (subscript_expression "(state->spacket).data[1]" (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "uVar1 = state->block;" (assignment_expression "uVar1 = state->block" identifier = (field_expression "state->block" identifier -> field_identifier)) ;) (expression_statement "(state->spacket).data[2] = (uchar)(uVar1 >> 8);" (assignment_expression "(state->spacket).data[2] = (uchar)(uVar1 >> 8)" (subscript_expression "(state->spacket).data[2]" (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (call_expression "(uchar)(uVar1 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar1 >> 8)" ( (binary_expression "uVar1 >> 8" identifier >> number_literal) )))) ;) (expression_statement "(state->spacket).data[3] = (uchar)uVar1;" (assignment_expression "(state->spacket).data[3] = (uchar)uVar1" (subscript_expression "(state->spacket).data[3]" (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (cast_expression "(uchar)uVar1" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (if_statement "if ((state->block < 2) || (state->blksize <= state->sbytes)) {\n        state->sbytes = 0;\n        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);\n        do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }\n      }\n      else {\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }" if (parenthesized_expression "((state->block < 2) || (state->blksize <= state->sbytes))" ( (binary_expression "(state->block < 2) || (state->blksize <= state->sbytes)" (parenthesized_expression "(state->block < 2)" ( (binary_expression "state->block < 2" (field_expression "state->block" identifier -> field_identifier) < number_literal) )) || (parenthesized_expression "(state->blksize <= state->sbytes)" ( (binary_expression "state->blksize <= state->sbytes" (field_expression "state->blksize" identifier -> field_identifier) <= (field_expression "state->sbytes" identifier -> field_identifier)) ))) )) (compound_statement "{\n        state->sbytes = 0;\n        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);\n        do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }\n      }" { (expression_statement "state->sbytes = 0;" (assignment_expression "state->sbytes = 0" (field_expression "state->sbytes" identifier -> field_identifier) = number_literal) ;) (expression_statement "(state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);" (assignment_expression "(state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4)" (field_expression "(state->conn->data->req).upload_fromhere" (parenthesized_expression "(state->conn->data->req)" ( (field_expression "state->conn->data->req" (field_expression "state->conn->data" (field_expression "state->conn" identifier -> field_identifier) -> field_identifier) -> field_identifier) )) . field_identifier) = (cast_expression "(char *)((state->spacket).data + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((state->spacket).data + 4)" ( (binary_expression "(state->spacket).data + 4" (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier) + number_literal) )))) ;) (do_statement "do {\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        } while ((state->sbytes < state->blksize) && (cb != 0));" do (compound_statement "{\n          event_00 = (uchar *)(state->blksize - state->sbytes);\n          CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);\n          if (CVar8 != CURLE_OK) goto LAB_00051a00;\n          state->sbytes = state->sbytes + cb;\n          pCVar6 = state->conn->data;\n          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;\n        }" { (expression_statement "event_00 = (uchar *)(state->blksize - state->sbytes);" (assignment_expression "event_00 = (uchar *)(state->blksize - state->sbytes)" identifier = (cast_expression "(uchar *)(state->blksize - state->sbytes)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(state->blksize - state->sbytes)" ( (binary_expression "state->blksize - state->sbytes" (field_expression "state->blksize" identifier -> field_identifier) - (field_expression "state->sbytes" identifier -> field_identifier)) )))) ;) (expression_statement "CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb);" (assignment_expression "CVar8 = Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb)" identifier = (call_expression "Curl_fillreadbuffer(state->conn,(size_t)event_00,&cb)" identifier (argument_list "(state->conn,(size_t)event_00,&cb)" ( (field_expression "state->conn" identifier -> field_identifier) , (cast_expression "(size_t)event_00" ( (type_descriptor "size_t" primitive_type) ) identifier) , (pointer_expression "&cb" & identifier) )))) ;) (if_statement "if (CVar8 != CURLE_OK) goto LAB_00051a00;" if (parenthesized_expression "(CVar8 != CURLE_OK)" ( (binary_expression "CVar8 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;)) (expression_statement "state->sbytes = state->sbytes + cb;" (assignment_expression "state->sbytes = state->sbytes + cb" (field_expression "state->sbytes" identifier -> field_identifier) = (binary_expression "state->sbytes + cb" (field_expression "state->sbytes" identifier -> field_identifier) + identifier)) ;) (expression_statement "pCVar6 = state->conn->data;" (assignment_expression "pCVar6 = state->conn->data" identifier = (field_expression "state->conn->data" (field_expression "state->conn" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "(pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb;" (assignment_expression "(pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + cb" (field_expression "(pCVar6->req).upload_fromhere" (parenthesized_expression "(pCVar6->req)" ( (field_expression "pCVar6->req" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pCVar6->req).upload_fromhere + cb" (field_expression "(pCVar6->req).upload_fromhere" (parenthesized_expression "(pCVar6->req)" ( (field_expression "pCVar6->req" identifier -> field_identifier) )) . field_identifier) + identifier)) ;) }) while (parenthesized_expression "((state->sbytes < state->blksize) && (cb != 0))" ( (binary_expression "(state->sbytes < state->blksize) && (cb != 0)" (parenthesized_expression "(state->sbytes < state->blksize)" ( (binary_expression "state->sbytes < state->blksize" (field_expression "state->sbytes" identifier -> field_identifier) < (field_expression "state->blksize" identifier -> field_identifier)) )) && (parenthesized_expression "(cb != 0)" ( (binary_expression "cb != 0" identifier != number_literal) ))) )) ;) (expression_statement "event_00 = (state->spacket).data;" (assignment_expression "event_00 = (state->spacket).data" identifier = (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);" (assignment_expression "iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen)" identifier = (call_expression "(*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen)" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen)" ( (field_expression "state->sockfd" identifier -> field_identifier) , identifier , (binary_expression "state->sbytes + 4" (field_expression "state->sbytes" identifier -> field_identifier) + number_literal) , number_literal , (pointer_expression "&state->remote_addr" & (field_expression "state->remote_addr" identifier -> field_identifier)) , (field_expression "state->remote_addrlen" identifier -> field_identifier) )))) ;) (if_statement "if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9)" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b1dc0)(pCVar9)" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" ( (pointer_expression "*(code *)PTR___errno_location_000b1dc0" * (cast_expression "(code *)PTR___errno_location_000b1dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pCVar9)" ( identifier ))))) ;) (expression_statement "pcVar5 = Curl_strerror(state->conn,*piVar4);" (assignment_expression "pcVar5 = Curl_strerror(state->conn,*piVar4)" identifier = (call_expression "Curl_strerror(state->conn,*piVar4)" identifier (argument_list "(state->conn,*piVar4)" ( (field_expression "state->conn" identifier -> field_identifier) , (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "event_00 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "event_00 = PTR_LAB_000b113c + 0x2eb8" identifier = (binary_expression "PTR_LAB_000b113c + 0x2eb8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);" (call_expression "(*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5)" (parenthesized_expression "(*(code *)PTR_Curl_failf_000b114c)" ( (pointer_expression "*(code *)PTR_Curl_failf_000b114c" * (cast_expression "(code *)PTR_Curl_failf_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pCVar9,event_00,pcVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "CVar8 = CURLE_SEND_ERROR;" (assignment_expression "CVar8 = CURLE_SEND_ERROR" identifier = identifier) ;) }) (else_clause "else {\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }" else (compound_statement "{\n          uVar2 = state->sbytes;\n          uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;\n          *(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;\n          *(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n        }" { (expression_statement "uVar2 = state->sbytes;" (assignment_expression "uVar2 = state->sbytes" identifier = (field_expression "state->sbytes" identifier -> field_identifier)) ;) (expression_statement "uVar7 = uVar2 + (int)(pCVar9->req).writebytecount;" (assignment_expression "uVar7 = uVar2 + (int)(pCVar9->req).writebytecount" identifier = (binary_expression "uVar2 + (int)(pCVar9->req).writebytecount" identifier + (cast_expression "(int)(pCVar9->req).writebytecount" ( (type_descriptor "int" primitive_type) ) (field_expression "(pCVar9->req).writebytecount" (parenthesized_expression "(pCVar9->req)" ( (field_expression "pCVar9->req" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "*(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;" (assignment_expression "*(uint *)&(pCVar9->req).writebytecount =\n               (uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount" (pointer_expression "*(uint *)&(pCVar9->req).writebytecount" * (cast_expression "(uint *)&(pCVar9->req).writebytecount" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pCVar9->req).writebytecount" & (field_expression "(pCVar9->req).writebytecount" (parenthesized_expression "(pCVar9->req)" ( (field_expression "pCVar9->req" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "(uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount" (binary_expression "(uint)(uVar7 < uVar2) + ((int)uVar2 >> 0x1f)" (call_expression "(uint)(uVar7 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < uVar2)" ( (binary_expression "uVar7 < uVar2" identifier < identifier) ))) + (parenthesized_expression "((int)uVar2 >> 0x1f)" ( (binary_expression "(int)uVar2 >> 0x1f" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)&(pCVar9->req).writebytecount" * (cast_expression "(int *)&(pCVar9->req).writebytecount" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pCVar9->req).writebytecount" & (field_expression "(pCVar9->req).writebytecount" (parenthesized_expression "(pCVar9->req)" ( (field_expression "pCVar9->req" identifier -> field_identifier) )) . field_identifier)))))) ;) (expression_statement "*(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7;" (assignment_expression "*(uint *)((int)&(pCVar9->req).writebytecount + 4) = uVar7" (pointer_expression "*(uint *)((int)&(pCVar9->req).writebytecount + 4)" * (cast_expression "(uint *)((int)&(pCVar9->req).writebytecount + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pCVar9->req).writebytecount + 4)" ( (binary_expression "(int)&(pCVar9->req).writebytecount + 4" (cast_expression "(int)&(pCVar9->req).writebytecount" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pCVar9->req).writebytecount" & (field_expression "(pCVar9->req).writebytecount" (parenthesized_expression "(pCVar9->req)" ( (field_expression "pCVar9->req" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();" (call_expression "(*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)()" (parenthesized_expression "(*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)" ( (pointer_expression "*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c" * (cast_expression "(code *)PTR_Curl_pgrsSetUploadCounter_000b116c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }" else (compound_statement "{\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }" { (expression_statement "state->state = TFTP_STATE_FIN;" (assignment_expression "state->state = TFTP_STATE_FIN" (field_expression "state->state" identifier -> field_identifier) = identifier) ;) (expression_statement "CVar8 = CURLE_OK;" (assignment_expression "CVar8 = CURLE_OK" identifier = identifier) ;) }))) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) (if_statement "if (event == TFTP_EVENT_TIMEOUT) {\n      state->retries = state->retries + 1;\n      event_00 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(pCVar9,event_00,state->block + 1);\n      if (state->retry_max < state->retries) {\n        state->error = TFTP_ERR_TIMEOUT;\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      else {\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }\n      goto LAB_00051a00;\n    }" if (parenthesized_expression "(event == TFTP_EVENT_TIMEOUT)" ( (binary_expression "event == TFTP_EVENT_TIMEOUT" identifier == identifier) )) (compound_statement "{\n      state->retries = state->retries + 1;\n      event_00 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(pCVar9,event_00,state->block + 1);\n      if (state->retry_max < state->retries) {\n        state->error = TFTP_ERR_TIMEOUT;\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      else {\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }\n      goto LAB_00051a00;\n    }" { (expression_statement "state->retries = state->retries + 1;" (assignment_expression "state->retries = state->retries + 1" (field_expression "state->retries" identifier -> field_identifier) = (binary_expression "state->retries + 1" (field_expression "state->retries" identifier -> field_identifier) + number_literal)) ;) (expression_statement "event_00 = PTR_DAT_000b1184 + -0x7270;" (assignment_expression "event_00 = PTR_DAT_000b1184 + -0x7270" identifier = (binary_expression "PTR_DAT_000b1184 + -0x7270" identifier + number_literal)) ;) (expression_statement "(*(code *)puVar10)(pCVar9,event_00,state->block + 1);" (call_expression "(*(code *)puVar10)(pCVar9,event_00,state->block + 1)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pCVar9,event_00,state->block + 1)" ( identifier , identifier , (binary_expression "state->block + 1" (field_expression "state->block" identifier -> field_identifier) + number_literal) ))) ;) (if_statement "if (state->retry_max < state->retries) {\n        state->error = TFTP_ERR_TIMEOUT;\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }\n      else {\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }" if (parenthesized_expression "(state->retry_max < state->retries)" ( (binary_expression "state->retry_max < state->retries" (field_expression "state->retry_max" identifier -> field_identifier) < (field_expression "state->retries" identifier -> field_identifier)) )) (compound_statement "{\n        state->error = TFTP_ERR_TIMEOUT;\n        state->state = TFTP_STATE_FIN;\n        CVar8 = CURLE_OK;\n      }" { (expression_statement "state->error = TFTP_ERR_TIMEOUT;" (assignment_expression "state->error = TFTP_ERR_TIMEOUT" (field_expression "state->error" identifier -> field_identifier) = identifier) ;) (expression_statement "state->state = TFTP_STATE_FIN;" (assignment_expression "state->state = TFTP_STATE_FIN" (field_expression "state->state" identifier -> field_identifier) = identifier) ;) (expression_statement "CVar8 = CURLE_OK;" (assignment_expression "CVar8 = CURLE_OK" identifier = identifier) ;) }) (else_clause "else {\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }" else (compound_statement "{\n        event_00 = (state->spacket).data;\n        iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);\n        if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }\n      }" { (expression_statement "event_00 = (state->spacket).data;" (assignment_expression "event_00 = (state->spacket).data" identifier = (field_expression "(state->spacket).data" (parenthesized_expression "(state->spacket)" ( (field_expression "state->spacket" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen);" (assignment_expression "iVar3 = (*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen)" identifier = (call_expression "(*(code *)PTR_sendto_000b1a94)\n                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen)" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,\n                           state->remote_addrlen)" ( (field_expression "state->sockfd" identifier -> field_identifier) , identifier , (binary_expression "state->sbytes + 4" (field_expression "state->sbytes" identifier -> field_identifier) + number_literal) , number_literal , (pointer_expression "&state->remote_addr" & (field_expression "state->remote_addr" identifier -> field_identifier)) , (field_expression "state->remote_addrlen" identifier -> field_identifier) )))) ;) (if_statement "if (iVar3 < 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }\n        else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);\n          pcVar5 = Curl_strerror(state->conn,*piVar4);\n          event_00 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);\n          CVar8 = CURLE_SEND_ERROR;\n        }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9);" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9)" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_000b1dc0)(pCVar9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b1dc0)(pCVar9)" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" ( (pointer_expression "*(code *)PTR___errno_location_000b1dc0" * (cast_expression "(code *)PTR___errno_location_000b1dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pCVar9)" ( identifier ))))) ;) (expression_statement "pcVar5 = Curl_strerror(state->conn,*piVar4);" (assignment_expression "pcVar5 = Curl_strerror(state->conn,*piVar4)" identifier = (call_expression "Curl_strerror(state->conn,*piVar4)" identifier (argument_list "(state->conn,*piVar4)" ( (field_expression "state->conn" identifier -> field_identifier) , (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "event_00 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "event_00 = PTR_LAB_000b113c + 0x2eb8" identifier = (binary_expression "PTR_LAB_000b113c + 0x2eb8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);" (call_expression "(*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5)" (parenthesized_expression "(*(code *)PTR_Curl_failf_000b114c)" ( (pointer_expression "*(code *)PTR_Curl_failf_000b114c" * (cast_expression "(code *)PTR_Curl_failf_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pCVar9,event_00,pcVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "CVar8 = CURLE_SEND_ERROR;" (assignment_expression "CVar8 = CURLE_SEND_ERROR" identifier = identifier) ;) }) (else_clause "else {\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }" else (compound_statement "{\n          (*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();\n          CVar8 = CURLE_OK;\n        }" { (expression_statement "(*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)();" (call_expression "(*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)()" (parenthesized_expression "(*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c)" ( (pointer_expression "*(code *)PTR_Curl_pgrsSetUploadCounter_000b116c" * (cast_expression "(code *)PTR_Curl_pgrsSetUploadCounter_000b116c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "CVar8 = CURLE_OK;" (assignment_expression "CVar8 = CURLE_OK" identifier = identifier) ;) }))) }))) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) }))) (expression_statement "event_00 = PTR_DAT_000b1184 + -0x723c;" (assignment_expression "event_00 = PTR_DAT_000b1184 + -0x723c" identifier = (binary_expression "PTR_DAT_000b1184 + -0x723c" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,event);" (call_expression "(*(code *)PTR_Curl_failf_000b114c)(pCVar9,event_00,event)" (parenthesized_expression "(*(code *)PTR_Curl_failf_000b114c)" ( (pointer_expression "*(code *)PTR_Curl_failf_000b114c" * (cast_expression "(code *)PTR_Curl_failf_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pCVar9,event_00,event)" ( identifier , identifier , identifier ))) ;) (expression_statement "CVar8 = CURLE_OK;" (assignment_expression "CVar8 = CURLE_OK" identifier = identifier) ;) (labeled_statement "LAB_00051a00:\n  if (local_1c == *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4) {\n    return CVar8;\n  }" statement_identifier : (if_statement "if (local_1c == *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4) {\n    return CVar8;\n  }" if (parenthesized_expression "(local_1c == *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4)" ( (binary_expression "local_1c == *(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4" identifier == (pointer_expression "*(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(tftp_state_data_t **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "tftp_state_data_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return CVar8;\n  }" { (return_statement "return CVar8;" return identifier ;) }))) (expression_statement "state_00 = local_1c;" (assignment_expression "state_00 = local_1c" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000b1c48" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" * (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar10 + 0x5f774))\n            (state_00->conn->data,*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);" (call_expression "(**(code **)(puVar10 + 0x5f774))\n            (state_00->conn->data,*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218)" (parenthesized_expression "(**(code **)(puVar10 + 0x5f774))" ( (pointer_expression "**(code **)(puVar10 + 0x5f774)" * (pointer_expression "*(code **)(puVar10 + 0x5f774)" * (cast_expression "(code **)(puVar10 + 0x5f774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x5f774)" ( (binary_expression "puVar10 + 0x5f774" identifier + number_literal) ))))) )) (argument_list "(state_00->conn->data,*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218)" ( (field_expression "state_00->conn->data" (field_expression "state_00->conn" identifier -> field_identifier) -> field_identifier) , (binary_expression "*(int *)(puVar10 + 0x5f704) + 0x3f1c" (pointer_expression "*(int *)(puVar10 + 0x5f704)" * (cast_expression "(int *)(puVar10 + 0x5f704)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5f704)" ( (binary_expression "puVar10 + 0x5f704" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar10 + 0x5f74c) + -0x7218" (pointer_expression "*(int *)(puVar10 + 0x5f74c)" * (cast_expression "(int *)(puVar10 + 0x5f74c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5f74c)" ( (binary_expression "puVar10 + 0x5f74c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "state_00->state = TFTP_STATE_TX;" (assignment_expression "state_00->state = TFTP_STATE_TX" (field_expression "state_00->state" identifier -> field_identifier) = identifier) ;) (expression_statement "CVar8 = tftp_set_timeouts(state_00);" (assignment_expression "CVar8 = tftp_set_timeouts(state_00)" identifier = (call_expression "tftp_set_timeouts(state_00)" identifier (argument_list "(state_00)" ( identifier )))) ;) (if_statement "if (CVar8 == CURLE_OK) {\n    CVar8 = tftp_tx(state_00,(tftp_event_t)event_00);\n  }" if (parenthesized_expression "(CVar8 == CURLE_OK)" ( (binary_expression "CVar8 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n    CVar8 = tftp_tx(state_00,(tftp_event_t)event_00);\n  }" { (expression_statement "CVar8 = tftp_tx(state_00,(tftp_event_t)event_00);" (assignment_expression "CVar8 = tftp_tx(state_00,(tftp_event_t)event_00)" identifier = (call_expression "tftp_tx(state_00,(tftp_event_t)event_00)" identifier (argument_list "(state_00,(tftp_event_t)event_00)" ( identifier , (cast_expression "(tftp_event_t)event_00" ( (type_descriptor "tftp_event_t" type_identifier) ) identifier) )))) ;) })) (return_statement "return CVar8;" return identifier ;) })))
(translation_unit "int FUN_000514f8(undefined4 *param_1,undefined1 *param_2)\n\n{\n  undefined2 uVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  int local_20;\n  undefined4 *local_1c;\n  \n  puVar10 = PTR_FUN_000b11ac;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar9 = *(int *)param_1[4];\n  if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }\n  if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  puVar6 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);\n  iVar8 = 0;\nLAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }\n  puVar4 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  *puVar4 = 2;\n  iVar9 = FUN_00050f5c(puVar4);\n  if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }\n  return iVar9;\n}\n\n" (function_definition "int FUN_000514f8(undefined4 *param_1,undefined1 *param_2)\n\n{\n  undefined2 uVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  int local_20;\n  undefined4 *local_1c;\n  \n  puVar10 = PTR_FUN_000b11ac;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar9 = *(int *)param_1[4];\n  if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }\n  if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  puVar6 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);\n  iVar8 = 0;\nLAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }\n  puVar4 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  *puVar4 = 2;\n  iVar9 = FUN_00050f5c(puVar4);\n  if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }\n  return iVar9;\n}" primitive_type (function_declarator "FUN_000514f8(undefined4 *param_1,undefined1 *param_2)" identifier (parameter_list "(undefined4 *param_1,undefined1 *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined1 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined2 uVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  int local_20;\n  undefined4 *local_1c;\n  \n  puVar10 = PTR_FUN_000b11ac;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar9 = *(int *)param_1[4];\n  if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }\n  if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  puVar6 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);\n  iVar8 = 0;\nLAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }\n  puVar4 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  *puVar4 = 2;\n  iVar9 = FUN_00050f5c(puVar4);\n  if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }\n  return iVar9;\n}" { (declaration "undefined2 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 *local_1c;" type_identifier (pointer_declarator "*local_1c" * identifier) ;) (expression_statement "puVar10 = PTR_FUN_000b11ac;" (assignment_expression "puVar10 = PTR_FUN_000b11ac" identifier = identifier) ;) (expression_statement "local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar9 = *(int *)param_1[4];" (assignment_expression "iVar9 = *(int *)param_1[4]" identifier = (pointer_expression "*(int *)param_1[4]" * (cast_expression "(int *)param_1[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ])))) ;) (if_statement "if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }" if (parenthesized_expression "(param_2 == &DAT_00000005)" ( (binary_expression "param_2 == &DAT_00000005" identifier == (pointer_expression "&DAT_00000005" & identifier)) )) (compound_statement "{\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }" { (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "*(undefined1 *)param_1[0x53] = 0;" (assignment_expression "*(undefined1 *)param_1[0x53] = 0" (pointer_expression "*(undefined1 *)param_1[0x53]" * (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1[0x53] + 1) = 5;" (assignment_expression "*(undefined1 *)(param_1[0x53] + 1) = 5" (pointer_expression "*(undefined1 *)(param_1[0x53] + 1)" * (cast_expression "(undefined1 *)(param_1[0x53] + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 1)" ( (binary_expression "param_1[0x53] + 1" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = *(undefined2 *)(param_1 + 0xc);" (assignment_expression "uVar1 = *(undefined2 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined2 *)(param_1 + 0xc)" * (cast_expression "(undefined2 *)(param_1 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);" (assignment_expression "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8)" (pointer_expression "*(char *)(param_1[0x53] + 2)" * (cast_expression "(char *)(param_1[0x53] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 2)" ( (binary_expression "param_1[0x53] + 2" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((ushort)uVar1 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((ushort)uVar1 >> 8)" ( (binary_expression "(ushort)uVar1 >> 8" (cast_expression "(ushort)uVar1" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(param_1[0x53] + 3) = (char)uVar1;" (assignment_expression "*(char *)(param_1[0x53] + 3) = (char)uVar1" (pointer_expression "*(char *)(param_1[0x53] + 3)" * (cast_expression "(char *)(param_1[0x53] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 3)" ( (binary_expression "param_1[0x53] + 3" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" identifier = (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) ;) (expression_statement "(*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);" (call_expression "(*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d])" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) , identifier , number_literal , number_literal , (binary_expression "param_1 + 0x2d" identifier + number_literal) , (subscript_expression "param_1[0x4d]" identifier [ number_literal ]) ))) ;) (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) (if_statement "if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" if (parenthesized_expression "((int)param_2 < 6)" ( (binary_expression "(int)param_2 < 6" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }" { (if_statement "if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }" if (parenthesized_expression "(param_2 == (undefined1 *)0x4)" ( (binary_expression "param_2 == (undefined1 *)0x4" identifier == (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }" { (if_statement "if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }" if (parenthesized_expression "((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1))))" ( (binary_expression "(*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))" (parenthesized_expression "(*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2))" ( (binary_expression "*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)" (pointer_expression "*(short *)(param_1 + 0xc)" * (cast_expression "(short *)(param_1 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != (pointer_expression "*(short *)(param_1[0x52] + 2)" * (cast_expression "(short *)(param_1[0x52] + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x52] + 2)" ( (binary_expression "param_1[0x52] + 2" (subscript_expression "param_1[0x52]" identifier [ number_literal ]) + number_literal) ))))) )) && (parenthesized_expression "((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))" ( (parenthesized_expression "(*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1))" ( (binary_expression "*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)" (binary_expression "*(short *)(param_1 + 0xc) != 0" (pointer_expression "*(short *)(param_1 + 0xc)" * (cast_expression "(short *)(param_1 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) || (parenthesized_expression "(*(short *)(param_1[0x52] + 2) != -1)" ( (binary_expression "*(short *)(param_1[0x52] + 2) != -1" (pointer_expression "*(short *)(param_1[0x52] + 2)" * (cast_expression "(short *)(param_1[0x52] + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x52] + 2)" ( (binary_expression "param_1[0x52] + 2" (subscript_expression "param_1[0x52]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) ))) )) (compound_statement "{\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }" { (expression_statement "(*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);" (call_expression "(*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8)" (parenthesized_expression "(*(code *)PTR_FUN_000b11ac)" ( (pointer_expression "*(code *)PTR_FUN_000b11ac" * (cast_expression "(code *)PTR_FUN_000b11ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,PTR_DAT_000b1184 + -0x72c8)" ( identifier , (binary_expression "PTR_DAT_000b1184 + -0x72c8" identifier + number_literal) ))) ;) (expression_statement "iVar8 = param_1[6];" (assignment_expression "iVar8 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "param_1[6] = iVar8 + 1;" (assignment_expression "param_1[6] = iVar8 + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }" if (parenthesized_expression "((int)param_1[8] < iVar8 + 1)" ( (binary_expression "(int)param_1[8] < iVar8 + 1" (cast_expression "(int)param_1[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) < (binary_expression "iVar8 + 1" identifier + number_literal)) )) (compound_statement "{\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }" { (expression_statement "puVar6 = PTR_DAT_000b1184 + -0x729c;" (assignment_expression "puVar6 = PTR_DAT_000b1184 + -0x729c" identifier = (binary_expression "PTR_DAT_000b1184 + -0x729c" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc))" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" ( (pointer_expression "*(code *)PTR_FUN_000b114c" * (cast_expression "(code *)PTR_FUN_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc))" ( identifier , identifier , (pointer_expression "*(undefined2 *)(param_1 + 0xc)" * (cast_expression "(undefined2 *)(param_1 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" identifier = number_literal) ;) }) (else_clause "else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }" else (compound_statement "{\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }" { (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" identifier = (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );" (assignment_expression "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            )" identifier = (call_expression "(*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            )" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            )" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) , identifier , (binary_expression "param_1[0x4f] + 4" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) + number_literal) , number_literal , (binary_expression "param_1 + 0x2d" identifier + number_literal) , (subscript_expression "param_1[0x4d]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b1dc0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b1dc0)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" ( (pointer_expression "*(code *)PTR___errno_location_000b1dc0" * (cast_expression "(code *)PTR___errno_location_000b1dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar5 = FUN_0004f978(param_1[4],*puVar4);" (assignment_expression "uVar5 = FUN_0004f978(param_1[4],*puVar4)" identifier = (call_expression "FUN_0004f978(param_1[4],*puVar4)" identifier (argument_list "(param_1[4],*puVar4)" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) , (pointer_expression "*puVar4" * identifier) )))) ;) (expression_statement "puVar6 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "puVar6 = PTR_LAB_000b113c + 0x2eb8" identifier = (binary_expression "PTR_LAB_000b113c + 0x2eb8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" ( (pointer_expression "*(code *)PTR_FUN_000b114c" * (cast_expression "(code *)PTR_FUN_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,uVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" identifier = number_literal) ;) }) (else_clause "else {\n            iVar8 = 0;\n          }" else (compound_statement "{\n            iVar8 = 0;\n          }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }))) }))) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_time_000b1df4)(param_1 + 0xb);" (call_expression "(*(code *)PTR_time_000b1df4)(param_1 + 0xb)" (parenthesized_expression "(*(code *)PTR_time_000b1df4)" ( (pointer_expression "*(code *)PTR_time_000b1df4" * (cast_expression "(code *)PTR_time_000b1df4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) ))) ;) (expression_statement "*(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;" (assignment_expression "*(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1" (pointer_expression "*(short *)(param_1 + 0xc)" * (cast_expression "(short *)(param_1 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "*(short *)(param_1 + 0xc) + 1" (pointer_expression "*(short *)(param_1 + 0xc)" * (cast_expression "(short *)(param_1 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar6 = param_2;" (assignment_expression "puVar6 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_000515f8;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" else (compound_statement "{\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" { (if_statement "if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }" if (parenthesized_expression "(param_2 == &DAT_00000006)" ( (binary_expression "param_2 == &DAT_00000006" identifier == (pointer_expression "&DAT_00000006" & identifier)) )) (compound_statement "{\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }" { (expression_statement "*(undefined2 *)(param_1 + 0xc) = 1;" (assignment_expression "*(undefined2 *)(param_1 + 0xc) = 1" (pointer_expression "*(undefined2 *)(param_1 + 0xc)" * (cast_expression "(undefined2 *)(param_1 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = param_2;" (assignment_expression "puVar6 = param_2" identifier = identifier) ;) (labeled_statement "LAB_000515f8:\n      param_1[6] = 0;" statement_identifier : (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined1 *)param_1[0x53] = 0;" (assignment_expression "*(undefined1 *)param_1[0x53] = 0" (pointer_expression "*(undefined1 *)param_1[0x53]" * (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1[0x53] + 1) = 3;" (assignment_expression "*(undefined1 *)(param_1[0x53] + 1) = 3" (pointer_expression "*(undefined1 *)(param_1[0x53] + 1)" * (cast_expression "(undefined1 *)(param_1[0x53] + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 1)" ( (binary_expression "param_1[0x53] + 1" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = *(undefined2 *)(param_1 + 0xc);" (assignment_expression "uVar1 = *(undefined2 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined2 *)(param_1 + 0xc)" * (cast_expression "(undefined2 *)(param_1 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);" (assignment_expression "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8)" (pointer_expression "*(char *)(param_1[0x53] + 2)" * (cast_expression "(char *)(param_1[0x53] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 2)" ( (binary_expression "param_1[0x53] + 2" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((ushort)uVar1 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((ushort)uVar1 >> 8)" ( (binary_expression "(ushort)uVar1 >> 8" (cast_expression "(ushort)uVar1" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(param_1[0x53] + 3) = (char)uVar1;" (assignment_expression "*(char *)(param_1[0x53] + 3) = (char)uVar1" (pointer_expression "*(char *)(param_1[0x53] + 3)" * (cast_expression "(char *)(param_1[0x53] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x53] + 3)" ( (binary_expression "param_1[0x53] + 3" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }" if (parenthesized_expression "((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f]))" ( (binary_expression "(*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])" (parenthesized_expression "(*(ushort *)(param_1 + 0xc) < 2)" ( (binary_expression "*(ushort *)(param_1 + 0xc) < 2" (pointer_expression "*(ushort *)(param_1 + 0xc)" * (cast_expression "(ushort *)(param_1 + 0xc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) < number_literal) )) || (parenthesized_expression "((int)param_1[0x50] <= (int)param_1[0x4f])" ( (binary_expression "(int)param_1[0x50] <= (int)param_1[0x4f]" (cast_expression "(int)param_1[0x50]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x50]" identifier [ number_literal ])) <= (cast_expression "(int)param_1[0x4f]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x4f]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }" { (expression_statement "param_1[0x4f] = 0;" (assignment_expression "param_1[0x4f] = 0" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;" (assignment_expression "*(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4" (pointer_expression "*(int *)(*(int *)param_1[4] + 0x14c)" * (cast_expression "(int *)(*(int *)param_1[4] + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1[4] + 0x14c)" ( (binary_expression "*(int *)param_1[4] + 0x14c" (pointer_expression "*(int *)param_1[4]" * (cast_expression "(int *)param_1[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) + number_literal) )))) = (binary_expression "param_1[0x53] + 4" (subscript_expression "param_1[0x53]" identifier [ number_literal ]) + number_literal)) ;) (do_statement "do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));" do (compound_statement "{\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        }" { (expression_statement "puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);" (assignment_expression "puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f])" identifier = (cast_expression "(undefined1 *)(param_1[0x50] - param_1[0x4f])" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x50] - param_1[0x4f])" ( (binary_expression "param_1[0x50] - param_1[0x4f]" (subscript_expression "param_1[0x50]" identifier [ number_literal ]) - (subscript_expression "param_1[0x4f]" identifier [ number_literal ])) )))) ;) (expression_statement "iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);" (assignment_expression "iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20)" identifier = (call_expression "FUN_0003ccf0(param_1[4],puVar6,&local_20)" identifier (argument_list "(param_1[4],puVar6,&local_20)" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) , identifier , (pointer_expression "&local_20" & identifier) )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00051a00;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;)) (expression_statement "param_1[0x4f] = param_1[0x4f] + local_20;" (assignment_expression "param_1[0x4f] = param_1[0x4f] + local_20" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) = (binary_expression "param_1[0x4f] + local_20" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "*(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;" (assignment_expression "*(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20" (pointer_expression "*(int *)(*(int *)param_1[4] + 0x14c)" * (cast_expression "(int *)(*(int *)param_1[4] + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1[4] + 0x14c)" ( (binary_expression "*(int *)param_1[4] + 0x14c" (pointer_expression "*(int *)param_1[4]" * (cast_expression "(int *)param_1[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) + number_literal) )))) = (binary_expression "*(int *)(*(int *)param_1[4] + 0x14c) + local_20" (pointer_expression "*(int *)(*(int *)param_1[4] + 0x14c)" * (cast_expression "(int *)(*(int *)param_1[4] + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1[4] + 0x14c)" ( (binary_expression "*(int *)param_1[4] + 0x14c" (pointer_expression "*(int *)param_1[4]" * (cast_expression "(int *)param_1[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) + number_literal) )))) + identifier)) ;) }) while (parenthesized_expression "(((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0))" ( (binary_expression "((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0)" (parenthesized_expression "((int)param_1[0x4f] < (int)param_1[0x50])" ( (binary_expression "(int)param_1[0x4f] < (int)param_1[0x50]" (cast_expression "(int)param_1[0x4f]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x4f]" identifier [ number_literal ])) < (cast_expression "(int)param_1[0x50]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x50]" identifier [ number_literal ]))) )) && (parenthesized_expression "(local_20 != 0)" ( (binary_expression "local_20 != 0" identifier != number_literal) ))) )) ;) (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" identifier = (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) ;) (expression_statement "iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);" (assignment_expression "iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" identifier = (call_expression "(*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) , identifier , (binary_expression "param_1[0x4f] + 4" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) + number_literal) , number_literal , (binary_expression "param_1 + 0x2d" identifier + number_literal) , (subscript_expression "param_1[0x4d]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b1dc0)(iVar9)" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" ( (pointer_expression "*(code *)PTR___errno_location_000b1dc0" * (cast_expression "(code *)PTR___errno_location_000b1dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier ))))) ;) (expression_statement "uVar5 = FUN_0004f978(param_1[4],*puVar4);" (assignment_expression "uVar5 = FUN_0004f978(param_1[4],*puVar4)" identifier = (call_expression "FUN_0004f978(param_1[4],*puVar4)" identifier (argument_list "(param_1[4],*puVar4)" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) , (pointer_expression "*puVar4" * identifier) )))) ;) (expression_statement "puVar6 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "puVar6 = PTR_LAB_000b113c + 0x2eb8" identifier = (binary_expression "PTR_LAB_000b113c + 0x2eb8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" ( (pointer_expression "*(code *)PTR_FUN_000b114c" * (cast_expression "(code *)PTR_FUN_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,uVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" identifier = number_literal) ;) }) (else_clause "else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }" else (compound_statement "{\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }" { (expression_statement "uVar3 = param_1[0x4f];" (assignment_expression "uVar3 = param_1[0x4f]" identifier = (subscript_expression "param_1[0x4f]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);" (assignment_expression "uVar7 = uVar3 + *(int *)(iVar9 + 0xc4)" identifier = (binary_expression "uVar3 + *(int *)(iVar9 + 0xc4)" identifier + (pointer_expression "*(int *)(iVar9 + 0xc4)" * (cast_expression "(int *)(iVar9 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc4)" ( (binary_expression "iVar9 + 0xc4" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);" (assignment_expression "*(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0)" (pointer_expression "*(uint *)(iVar9 + 0xc0)" * (cast_expression "(uint *)(iVar9 + 0xc0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc0)" ( (binary_expression "iVar9 + 0xc0" identifier + number_literal) )))) = (binary_expression "(uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0)" (binary_expression "(uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f)" (call_expression "(uint)(uVar7 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < uVar3)" ( (binary_expression "uVar7 < uVar3" identifier < identifier) ))) + (parenthesized_expression "((int)uVar3 >> 0x1f)" ( (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)(iVar9 + 0xc0)" * (cast_expression "(int *)(iVar9 + 0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc0)" ( (binary_expression "iVar9 + 0xc0" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(iVar9 + 0xc4) = uVar7;" (assignment_expression "*(uint *)(iVar9 + 0xc4) = uVar7" (pointer_expression "*(uint *)(iVar9 + 0xc4)" * (cast_expression "(uint *)(iVar9 + 0xc4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc4)" ( (binary_expression "iVar9 + 0xc4" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)PTR_FUN_000b116c)();" (call_expression "(*(code *)PTR_FUN_000b116c)()" (parenthesized_expression "(*(code *)PTR_FUN_000b116c)" ( (pointer_expression "*(code *)PTR_FUN_000b116c" * (cast_expression "(code *)PTR_FUN_000b116c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }" else (compound_statement "{\n        *param_1 = 3;\n        iVar8 = 0;\n      }" { (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) (if_statement "if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }" if (parenthesized_expression "(param_2 == &DAT_00000007)" ( (binary_expression "param_2 == &DAT_00000007" identifier == (pointer_expression "&DAT_00000007" & identifier)) )) (compound_statement "{\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }" { (expression_statement "param_1[6] = param_1[6] + 1;" (assignment_expression "param_1[6] = param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "puVar6 = PTR_DAT_000b1184 + -0x7270;" (assignment_expression "puVar6 = PTR_DAT_000b1184 + -0x7270" identifier = (binary_expression "PTR_DAT_000b1184 + -0x7270" identifier + number_literal)) ;) (expression_statement "(*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);" (call_expression "(*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1)" ( identifier , identifier , (binary_expression "*(short *)(param_1 + 0xc) + 1" (pointer_expression "*(short *)(param_1 + 0xc)" * (cast_expression "(short *)(param_1 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }" if (parenthesized_expression "((int)param_1[8] < (int)param_1[6])" ( (binary_expression "(int)param_1[8] < (int)param_1[6]" (cast_expression "(int)param_1[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) < (cast_expression "(int)param_1[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) )) (compound_statement "{\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }" { (expression_statement "param_1[2] = 0xffffff9d;" (assignment_expression "param_1[2] = 0xffffff9d" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }" else (compound_statement "{\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }" { (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" identifier = (cast_expression "(undefined1 *)param_1[0x53]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x53]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);" (assignment_expression "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" identifier = (call_expression "(*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" ( (pointer_expression "*(code *)PTR_sendto_000b1a94" * (cast_expression "(code *)PTR_sendto_000b1a94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) , identifier , (binary_expression "param_1[0x4f] + 4" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) + number_literal) , number_literal , (binary_expression "param_1 + 0x2d" identifier + number_literal) , (subscript_expression "param_1[0x4d]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b1dc0)(iVar9)" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" ( (pointer_expression "*(code *)PTR___errno_location_000b1dc0" * (cast_expression "(code *)PTR___errno_location_000b1dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier ))))) ;) (expression_statement "uVar5 = FUN_0004f978(param_1[4],*puVar4);" (assignment_expression "uVar5 = FUN_0004f978(param_1[4],*puVar4)" identifier = (call_expression "FUN_0004f978(param_1[4],*puVar4)" identifier (argument_list "(param_1[4],*puVar4)" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) , (pointer_expression "*puVar4" * identifier) )))) ;) (expression_statement "puVar6 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "puVar6 = PTR_LAB_000b113c + 0x2eb8" identifier = (binary_expression "PTR_LAB_000b113c + 0x2eb8" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" ( (pointer_expression "*(code *)PTR_FUN_000b114c" * (cast_expression "(code *)PTR_FUN_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,uVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" identifier = number_literal) ;) }) (else_clause "else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }" else (compound_statement "{\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }" { (expression_statement "(*(code *)PTR_FUN_000b116c)();" (call_expression "(*(code *)PTR_FUN_000b116c)()" (parenthesized_expression "(*(code *)PTR_FUN_000b116c)" ( (pointer_expression "*(code *)PTR_FUN_000b116c" * (cast_expression "(code *)PTR_FUN_000b116c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }))) }))) (goto_statement "goto LAB_00051a00;" goto statement_identifier ;) })) }))) (expression_statement "puVar6 = PTR_DAT_000b1184 + -0x723c;" (assignment_expression "puVar6 = PTR_DAT_000b1184 + -0x723c" identifier = (binary_expression "PTR_DAT_000b1184 + -0x723c" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" ( (pointer_expression "*(code *)PTR_FUN_000b114c" * (cast_expression "(code *)PTR_FUN_000b114c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,puVar6,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }" statement_identifier : (if_statement "if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }" if (parenthesized_expression "(local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4)" ( (binary_expression "local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4" identifier == (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) }))) (expression_statement "puVar4 = local_1c;" (assignment_expression "puVar4 = local_1c" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000b1c48" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" * (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);" (call_expression "(**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218)" (parenthesized_expression "(**(code **)(puVar10 + 0x5f774))" ( (pointer_expression "**(code **)(puVar10 + 0x5f774)" * (pointer_expression "*(code **)(puVar10 + 0x5f774)" * (cast_expression "(code **)(puVar10 + 0x5f774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x5f774)" ( (binary_expression "puVar10 + 0x5f774" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218)" ( (pointer_expression "*(undefined4 *)puVar4[4]" * (cast_expression "(undefined4 *)puVar4[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[4]" identifier [ number_literal ]))) , (binary_expression "*(int *)(puVar10 + 0x5f704) + 0x3f1c" (pointer_expression "*(int *)(puVar10 + 0x5f704)" * (cast_expression "(int *)(puVar10 + 0x5f704)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5f704)" ( (binary_expression "puVar10 + 0x5f704" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar10 + 0x5f74c) + -0x7218" (pointer_expression "*(int *)(puVar10 + 0x5f74c)" * (cast_expression "(int *)(puVar10 + 0x5f74c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x5f74c)" ( (binary_expression "puVar10 + 0x5f74c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "*puVar4 = 2;" (assignment_expression "*puVar4 = 2" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "iVar9 = FUN_00050f5c(puVar4);" (assignment_expression "iVar9 = FUN_00050f5c(puVar4)" identifier = (call_expression "FUN_00050f5c(puVar4)" identifier (argument_list "(puVar4)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }" { (expression_statement "iVar9 = FUN_000514f8(puVar4,puVar6);" (assignment_expression "iVar9 = FUN_000514f8(puVar4,puVar6)" identifier = (call_expression "FUN_000514f8(puVar4,puVar6)" identifier (argument_list "(puVar4,puVar6)" ( identifier , identifier )))) ;) })) (return_statement "return iVar9;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT , LIT , (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 ( (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT , (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) )))) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) )))) + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 ( (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT , (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 ( (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT , (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (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 *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (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 = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_000514f8(undefined4 *param_1,undefined1 *param_2)\n\n{\n  undefined2 uVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  int local_20;\n  undefined4 *local_1c;\n  \n  puVar10 = PTR_FUN_000b11ac;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar9 = *(int *)param_1[4];\n  if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }\n  if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  puVar6 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);\n  iVar8 = 0;\nLAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }\n  puVar4 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  *puVar4 = 2;\n  iVar9 = FUN_00050f5c(puVar4);\n  if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }\n  return iVar9;\n}" (primitive_type "int") (function_declarator "FUN_000514f8(undefined4 *param_1,undefined1 *param_2)" (identifier "FUN_000514f8") (parameter_list "(undefined4 *param_1,undefined1 *param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined1 *param_2" (type_identifier "undefined1") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined2 uVar1;\n  int iVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  int local_20;\n  undefined4 *local_1c;\n  \n  puVar10 = PTR_FUN_000b11ac;\n  local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;\n  iVar9 = *(int *)param_1[4];\n  if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }\n  if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }\n  puVar6 = PTR_DAT_000b1184 + -0x723c;\n  (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);\n  iVar8 = 0;\nLAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }\n  puVar4 = local_1c;\n  puVar10 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  (**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);\n  *puVar4 = 2;\n  iVar9 = FUN_00050f5c(puVar4);\n  if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }\n  return iVar9;\n}" ({ "{") (declaration "undefined2 uVar1;" (type_identifier "undefined2") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined1 *puVar6;" (type_identifier "undefined1") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 *local_1c;" (type_identifier "undefined4") (pointer_declarator "*local_1c" (* "*") (identifier "local_1c")) (; ";")) (expression_statement "puVar10 = PTR_FUN_000b11ac;" (assignment_expression "puVar10 = PTR_FUN_000b11ac" (identifier "puVar10") (= "=") (identifier "PTR_FUN_000b11ac")) (; ";")) (expression_statement "local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4" (identifier "local_1c") (= "=") (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" (* "*") (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000b1fd4")))) (; ";")) (expression_statement "iVar9 = *(int *)param_1[4];" (assignment_expression "iVar9 = *(int *)param_1[4]" (identifier "iVar9") (= "=") (pointer_expression "*(int *)param_1[4]" (* "*") (cast_expression "(int *)param_1[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))))) (; ";")) (if_statement "if (param_2 == &DAT_00000005) {\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }" (if "if") (parenthesized_expression "(param_2 == &DAT_00000005)" (( "(") (binary_expression "param_2 == &DAT_00000005" (identifier "param_2") (== "==") (pointer_expression "&DAT_00000005" (& "&") (identifier "DAT_00000005"))) () ")")) (compound_statement "{\n    *param_1 = 3;\n    *(undefined1 *)param_1[0x53] = 0;\n    *(undefined1 *)(param_1[0x53] + 1) = 5;\n    uVar1 = *(undefined2 *)(param_1 + 0xc);\n    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n    *(char *)(param_1[0x53] + 3) = (char)uVar1;\n    puVar6 = (undefined1 *)param_1[0x53];\n    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n    *param_1 = 3;\n    iVar8 = 0;\n    goto LAB_00051a00;\n  }" ({ "{") (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(undefined1 *)param_1[0x53] = 0;" (assignment_expression "*(undefined1 *)param_1[0x53] = 0" (pointer_expression "*(undefined1 *)param_1[0x53]" (* "*") (cast_expression "(undefined1 *)param_1[0x53]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1[0x53] + 1) = 5;" (assignment_expression "*(undefined1 *)(param_1[0x53] + 1) = 5" (pointer_expression "*(undefined1 *)(param_1[0x53] + 1)" (* "*") (cast_expression "(undefined1 *)(param_1[0x53] + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x53] + 1)" (( "(") (binary_expression "param_1[0x53] + 1" (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "uVar1 = *(undefined2 *)(param_1 + 0xc);" (assignment_expression "uVar1 = *(undefined2 *)(param_1 + 0xc)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined2 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);" (assignment_expression "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8)" (pointer_expression "*(char *)(param_1[0x53] + 2)" (* "*") (cast_expression "(char *)(param_1[0x53] + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x53] + 2)" (( "(") (binary_expression "param_1[0x53] + 2" (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)((ushort)uVar1 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((ushort)uVar1 >> 8)" (( "(") (binary_expression "(ushort)uVar1 >> 8" (cast_expression "(ushort)uVar1" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar1")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*(char *)(param_1[0x53] + 3) = (char)uVar1;" (assignment_expression "*(char *)(param_1[0x53] + 3) = (char)uVar1" (pointer_expression "*(char *)(param_1[0x53] + 3)" (* "*") (cast_expression "(char *)(param_1[0x53] + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x53] + 3)" (( "(") (binary_expression "param_1[0x53] + 3" (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")) (+ "+") (number_literal "3")) () ")")))) (= "=") (cast_expression "(char)uVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar1"))) (; ";")) (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)param_1[0x53]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")))) (; ";")) (expression_statement "(*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);" (call_expression "(*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d])" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" (( "(") (pointer_expression "*(code *)PTR_sendto_000b1a94" (* "*") (cast_expression "(code *)PTR_sendto_000b1a94" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sendto_000b1a94"))) () ")")) (argument_list "(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d])" (( "(") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (, ",") (identifier "puVar6") (, ",") (number_literal "4") (, ",") (number_literal "0x4000") (, ",") (binary_expression "param_1 + 0x2d" (identifier "param_1") (+ "+") (number_literal "0x2d")) (, ",") (subscript_expression "param_1[0x4d]" (identifier "param_1") ([ "[") (number_literal "0x4d") (] "]")) () ")"))) (; ";")) (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00051a00;" (goto "goto") (statement_identifier "LAB_00051a00") (; ";")) (} "}"))) (if_statement "if ((int)param_2 < 6) {\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }\n  else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" (if "if") (parenthesized_expression "((int)param_2 < 6)" (( "(") (binary_expression "(int)param_2 < 6" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (number_literal "6")) () ")")) (compound_statement "{\n    if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }\n  }" ({ "{") (if_statement "if (param_2 == (undefined1 *)0x4) {\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }" (if "if") (parenthesized_expression "(param_2 == (undefined1 *)0x4)" (( "(") (binary_expression "param_2 == (undefined1 *)0x4" (identifier "param_2") (== "==") (cast_expression "(undefined1 *)0x4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }\n      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);\n      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;\n      puVar6 = param_2;\n      goto LAB_000515f8;\n    }" ({ "{") (if_statement "if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }" (if "if") (parenthesized_expression "((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1))))" (( "(") (binary_expression "(*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&\n         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))" (parenthesized_expression "(*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2))" (( "(") (binary_expression "*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)" (pointer_expression "*(short *)(param_1 + 0xc)" (* "*") (cast_expression "(short *)(param_1 + 0xc)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (pointer_expression "*(short *)(param_1[0x52] + 2)" (* "*") (cast_expression "(short *)(param_1[0x52] + 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x52] + 2)" (( "(") (binary_expression "param_1[0x52] + 2" (subscript_expression "param_1[0x52]" (identifier "param_1") ([ "[") (number_literal "0x52") (] "]")) (+ "+") (number_literal "2")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))" (( "(") (parenthesized_expression "(*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1))" (( "(") (binary_expression "*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)" (binary_expression "*(short *)(param_1 + 0xc) != 0" (pointer_expression "*(short *)(param_1 + 0xc)" (* "*") (cast_expression "(short *)(param_1 + 0xc)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(*(short *)(param_1[0x52] + 2) != -1)" (( "(") (binary_expression "*(short *)(param_1[0x52] + 2) != -1" (pointer_expression "*(short *)(param_1[0x52] + 2)" (* "*") (cast_expression "(short *)(param_1[0x52] + 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x52] + 2)" (( "(") (binary_expression "param_1[0x52] + 2" (subscript_expression "param_1[0x52]" (identifier "param_1") ([ "[") (number_literal "0x52") (] "]")) (+ "+") (number_literal "2")) () ")")))) (!= "!=") (number_literal "-1")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);\n        iVar8 = param_1[6];\n        param_1[6] = iVar8 + 1;\n        if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }\n        goto LAB_00051a00;\n      }" ({ "{") (expression_statement "(*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);" (call_expression "(*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8)" (parenthesized_expression "(*(code *)PTR_FUN_000b11ac)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b11ac" (* "*") (cast_expression "(code *)PTR_FUN_000b11ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b11ac"))) () ")")) (argument_list "(iVar9,PTR_DAT_000b1184 + -0x72c8)" (( "(") (identifier "iVar9") (, ",") (binary_expression "PTR_DAT_000b1184 + -0x72c8" (identifier "PTR_DAT_000b1184") (+ "+") (number_literal "-0x72c8")) () ")"))) (; ";")) (expression_statement "iVar8 = param_1[6];" (assignment_expression "iVar8 = param_1[6]" (identifier "iVar8") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "param_1[6] = iVar8 + 1;" (assignment_expression "param_1[6] = iVar8 + 1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((int)param_1[8] < iVar8 + 1) {\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }\n        else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }" (if "if") (parenthesized_expression "((int)param_1[8] < iVar8 + 1)" (( "(") (binary_expression "(int)param_1[8] < iVar8 + 1" (cast_expression "(int)param_1[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (< "<") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          puVar6 = PTR_DAT_000b1184 + -0x729c;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));\n          iVar8 = 0x37;\n        }" ({ "{") (expression_statement "puVar6 = PTR_DAT_000b1184 + -0x729c;" (assignment_expression "puVar6 = PTR_DAT_000b1184 + -0x729c" (identifier "puVar6") (= "=") (binary_expression "PTR_DAT_000b1184 + -0x729c" (identifier "PTR_DAT_000b1184") (+ "+") (number_literal "-0x729c"))) (; ";")) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc))" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b114c" (* "*") (cast_expression "(code *)PTR_FUN_000b114c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b114c"))) () ")")) (argument_list "(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc))" (( "(") (identifier "iVar9") (, ",") (identifier "puVar6") (, ",") (pointer_expression "*(undefined2 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" (identifier "iVar8") (= "=") (number_literal "0x37")) (; ";")) (} "}")) (else_clause "else {\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }" (else "else") (compound_statement "{\n          puVar6 = (undefined1 *)param_1[0x53];\n          iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );\n          if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }\n        }" ({ "{") (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)param_1[0x53]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")))) (; ";")) (expression_statement "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            );" (assignment_expression "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            )" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_sendto_000b1a94)\n                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            )" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" (( "(") (pointer_expression "*(code *)PTR_sendto_000b1a94" (* "*") (cast_expression "(code *)PTR_sendto_000b1a94" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sendto_000b1a94"))) () ")")) (argument_list "(param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]\n                            )" (( "(") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (, ",") (identifier "puVar6") (, ",") (binary_expression "param_1[0x4f] + 4" (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]")) (+ "+") (number_literal "4")) (, ",") (number_literal "0x4000") (, ",") (binary_expression "param_1 + 0x2d" (identifier "param_1") (+ "+") (number_literal "0x2d")) (, ",") (subscript_expression "param_1[0x4d]" (identifier "param_1") ([ "[") (number_literal "0x4d") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar8 < 0) {\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }\n          else {\n            iVar8 = 0;\n          }" (if "if") (parenthesized_expression "(iVar8 < 0)" (( "(") (binary_expression "iVar8 < 0" (identifier "iVar8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();\n            uVar5 = FUN_0004f978(param_1[4],*puVar4);\n            puVar6 = PTR_LAB_000b113c + 0x2eb8;\n            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n            iVar8 = 0x37;\n          }" ({ "{") (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b1dc0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000b1dc0)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000b1dc0" (* "*") (cast_expression "(code *)PTR___errno_location_000b1dc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000b1dc0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar5 = FUN_0004f978(param_1[4],*puVar4);" (assignment_expression "uVar5 = FUN_0004f978(param_1[4],*puVar4)" (identifier "uVar5") (= "=") (call_expression "FUN_0004f978(param_1[4],*puVar4)" (identifier "FUN_0004f978") (argument_list "(param_1[4],*puVar4)" (( "(") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (, ",") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")")))) (; ";")) (expression_statement "puVar6 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "puVar6 = PTR_LAB_000b113c + 0x2eb8" (identifier "puVar6") (= "=") (binary_expression "PTR_LAB_000b113c + 0x2eb8" (identifier "PTR_LAB_000b113c") (+ "+") (number_literal "0x2eb8"))) (; ";")) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b114c" (* "*") (cast_expression "(code *)PTR_FUN_000b114c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b114c"))) () ")")) (argument_list "(iVar9,puVar6,uVar5)" (( "(") (identifier "iVar9") (, ",") (identifier "puVar6") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" (identifier "iVar8") (= "=") (number_literal "0x37")) (; ";")) (} "}")) (else_clause "else {\n            iVar8 = 0;\n          }" (else "else") (compound_statement "{\n            iVar8 = 0;\n          }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (goto_statement "goto LAB_00051a00;" (goto "goto") (statement_identifier "LAB_00051a00") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_time_000b1df4)(param_1 + 0xb);" (call_expression "(*(code *)PTR_time_000b1df4)(param_1 + 0xb)" (parenthesized_expression "(*(code *)PTR_time_000b1df4)" (( "(") (pointer_expression "*(code *)PTR_time_000b1df4" (* "*") (cast_expression "(code *)PTR_time_000b1df4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_time_000b1df4"))) () ")")) (argument_list "(param_1 + 0xb)" (( "(") (binary_expression "param_1 + 0xb" (identifier "param_1") (+ "+") (number_literal "0xb")) () ")"))) (; ";")) (expression_statement "*(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;" (assignment_expression "*(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1" (pointer_expression "*(short *)(param_1 + 0xc)" (* "*") (cast_expression "(short *)(param_1 + 0xc)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(short *)(param_1 + 0xc) + 1" (pointer_expression "*(short *)(param_1 + 0xc)" (* "*") (cast_expression "(short *)(param_1 + 0xc)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar6 = param_2;" (assignment_expression "puVar6 = param_2" (identifier "puVar6") (= "=") (identifier "param_2")) (; ";")) (goto_statement "goto LAB_000515f8;" (goto "goto") (statement_identifier "LAB_000515f8") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" (else "else") (compound_statement "{\n    if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }\n    if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }\n  }" ({ "{") (if_statement "if (param_2 == &DAT_00000006) {\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }" (if "if") (parenthesized_expression "(param_2 == &DAT_00000006)" (( "(") (binary_expression "param_2 == &DAT_00000006" (identifier "param_2") (== "==") (pointer_expression "&DAT_00000006" (& "&") (identifier "DAT_00000006"))) () ")")) (compound_statement "{\n      *(undefined2 *)(param_1 + 0xc) = 1;\n      puVar6 = param_2;\nLAB_000515f8:\n      param_1[6] = 0;\n      *(undefined1 *)param_1[0x53] = 0;\n      *(undefined1 *)(param_1[0x53] + 1) = 3;\n      uVar1 = *(undefined2 *)(param_1 + 0xc);\n      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);\n      *(char *)(param_1[0x53] + 3) = (char)uVar1;\n      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      goto LAB_00051a00;\n    }" ({ "{") (expression_statement "*(undefined2 *)(param_1 + 0xc) = 1;" (assignment_expression "*(undefined2 *)(param_1 + 0xc) = 1" (pointer_expression "*(undefined2 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar6 = param_2;" (assignment_expression "puVar6 = param_2" (identifier "puVar6") (= "=") (identifier "param_2")) (; ";")) (labeled_statement "LAB_000515f8:\n      param_1[6] = 0;" (statement_identifier "LAB_000515f8") (: ":") (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "*(undefined1 *)param_1[0x53] = 0;" (assignment_expression "*(undefined1 *)param_1[0x53] = 0" (pointer_expression "*(undefined1 *)param_1[0x53]" (* "*") (cast_expression "(undefined1 *)param_1[0x53]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1[0x53] + 1) = 3;" (assignment_expression "*(undefined1 *)(param_1[0x53] + 1) = 3" (pointer_expression "*(undefined1 *)(param_1[0x53] + 1)" (* "*") (cast_expression "(undefined1 *)(param_1[0x53] + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x53] + 1)" (( "(") (binary_expression "param_1[0x53] + 1" (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "uVar1 = *(undefined2 *)(param_1 + 0xc);" (assignment_expression "uVar1 = *(undefined2 *)(param_1 + 0xc)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined2 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);" (assignment_expression "*(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8)" (pointer_expression "*(char *)(param_1[0x53] + 2)" (* "*") (cast_expression "(char *)(param_1[0x53] + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x53] + 2)" (( "(") (binary_expression "param_1[0x53] + 2" (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)((ushort)uVar1 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((ushort)uVar1 >> 8)" (( "(") (binary_expression "(ushort)uVar1 >> 8" (cast_expression "(ushort)uVar1" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar1")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*(char *)(param_1[0x53] + 3) = (char)uVar1;" (assignment_expression "*(char *)(param_1[0x53] + 3) = (char)uVar1" (pointer_expression "*(char *)(param_1[0x53] + 3)" (* "*") (cast_expression "(char *)(param_1[0x53] + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x53] + 3)" (( "(") (binary_expression "param_1[0x53] + 3" (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")) (+ "+") (number_literal "3")) () ")")))) (= "=") (cast_expression "(char)uVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar1"))) (; ";")) (if_statement "if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }\n      else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }" (if "if") (parenthesized_expression "((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f]))" (( "(") (binary_expression "(*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])" (parenthesized_expression "(*(ushort *)(param_1 + 0xc) < 2)" (( "(") (binary_expression "*(ushort *)(param_1 + 0xc) < 2" (pointer_expression "*(ushort *)(param_1 + 0xc)" (* "*") (cast_expression "(ushort *)(param_1 + 0xc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "((int)param_1[0x50] <= (int)param_1[0x4f])" (( "(") (binary_expression "(int)param_1[0x50] <= (int)param_1[0x4f]" (cast_expression "(int)param_1[0x50]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x50]" (identifier "param_1") ([ "[") (number_literal "0x50") (] "]"))) (<= "<=") (cast_expression "(int)param_1[0x4f]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]")))) () ")"))) () ")")) (compound_statement "{\n        param_1[0x4f] = 0;\n        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }\n      }" ({ "{") (expression_statement "param_1[0x4f] = 0;" (assignment_expression "param_1[0x4f] = 0" (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;" (assignment_expression "*(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4" (pointer_expression "*(int *)(*(int *)param_1[4] + 0x14c)" (* "*") (cast_expression "(int *)(*(int *)param_1[4] + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_1[4] + 0x14c)" (( "(") (binary_expression "*(int *)param_1[4] + 0x14c" (pointer_expression "*(int *)param_1[4]" (* "*") (cast_expression "(int *)param_1[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")))) (+ "+") (number_literal "0x14c")) () ")")))) (= "=") (binary_expression "param_1[0x53] + 4" (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (do_statement "do {\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));" (do "do") (compound_statement "{\n          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);\n          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);\n          if (iVar8 != 0) goto LAB_00051a00;\n          param_1[0x4f] = param_1[0x4f] + local_20;\n          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;\n        }" ({ "{") (expression_statement "puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);" (assignment_expression "puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f])" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)(param_1[0x50] - param_1[0x4f])" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x50] - param_1[0x4f])" (( "(") (binary_expression "param_1[0x50] - param_1[0x4f]" (subscript_expression "param_1[0x50]" (identifier "param_1") ([ "[") (number_literal "0x50") (] "]")) (- "-") (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]"))) () ")")))) (; ";")) (expression_statement "iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);" (assignment_expression "iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20)" (identifier "iVar8") (= "=") (call_expression "FUN_0003ccf0(param_1[4],puVar6,&local_20)" (identifier "FUN_0003ccf0") (argument_list "(param_1[4],puVar6,&local_20)" (( "(") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "puVar6") (, ",") (pointer_expression "&local_20" (& "&") (identifier "local_20")) () ")")))) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_00051a00;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00051a00;" (goto "goto") (statement_identifier "LAB_00051a00") (; ";"))) (expression_statement "param_1[0x4f] = param_1[0x4f] + local_20;" (assignment_expression "param_1[0x4f] = param_1[0x4f] + local_20" (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]")) (= "=") (binary_expression "param_1[0x4f] + local_20" (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]")) (+ "+") (identifier "local_20"))) (; ";")) (expression_statement "*(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;" (assignment_expression "*(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20" (pointer_expression "*(int *)(*(int *)param_1[4] + 0x14c)" (* "*") (cast_expression "(int *)(*(int *)param_1[4] + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_1[4] + 0x14c)" (( "(") (binary_expression "*(int *)param_1[4] + 0x14c" (pointer_expression "*(int *)param_1[4]" (* "*") (cast_expression "(int *)param_1[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")))) (+ "+") (number_literal "0x14c")) () ")")))) (= "=") (binary_expression "*(int *)(*(int *)param_1[4] + 0x14c) + local_20" (pointer_expression "*(int *)(*(int *)param_1[4] + 0x14c)" (* "*") (cast_expression "(int *)(*(int *)param_1[4] + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_1[4] + 0x14c)" (( "(") (binary_expression "*(int *)param_1[4] + 0x14c" (pointer_expression "*(int *)param_1[4]" (* "*") (cast_expression "(int *)param_1[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")))) (+ "+") (number_literal "0x14c")) () ")")))) (+ "+") (identifier "local_20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0))" (( "(") (binary_expression "((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0)" (parenthesized_expression "((int)param_1[0x4f] < (int)param_1[0x50])" (( "(") (binary_expression "(int)param_1[0x4f] < (int)param_1[0x50]" (cast_expression "(int)param_1[0x4f]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]"))) (< "<") (cast_expression "(int)param_1[0x50]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x50]" (identifier "param_1") ([ "[") (number_literal "0x50") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(local_20 != 0)" (( "(") (binary_expression "local_20 != 0" (identifier "local_20") (!= "!=") (number_literal "0")) () ")"))) () ")")) (; ";")) (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)param_1[0x53]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);" (assignment_expression "iVar2 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" (( "(") (pointer_expression "*(code *)PTR_sendto_000b1a94" (* "*") (cast_expression "(code *)PTR_sendto_000b1a94" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sendto_000b1a94"))) () ")")) (argument_list "(param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" (( "(") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (, ",") (identifier "puVar6") (, ",") (binary_expression "param_1[0x4f] + 4" (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]")) (+ "+") (number_literal "4")) (, ",") (number_literal "0x4000") (, ",") (binary_expression "param_1 + 0x2d" (identifier "param_1") (+ "+") (number_literal "0x2d")) (, ",") (subscript_expression "param_1[0x4d]" (identifier "param_1") ([ "[") (number_literal "0x4d") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar2 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }" ({ "{") (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000b1dc0)(iVar9)" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000b1dc0" (* "*") (cast_expression "(code *)PTR___errno_location_000b1dc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000b1dc0"))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))))) (; ";")) (expression_statement "uVar5 = FUN_0004f978(param_1[4],*puVar4);" (assignment_expression "uVar5 = FUN_0004f978(param_1[4],*puVar4)" (identifier "uVar5") (= "=") (call_expression "FUN_0004f978(param_1[4],*puVar4)" (identifier "FUN_0004f978") (argument_list "(param_1[4],*puVar4)" (( "(") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (, ",") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")")))) (; ";")) (expression_statement "puVar6 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "puVar6 = PTR_LAB_000b113c + 0x2eb8" (identifier "puVar6") (= "=") (binary_expression "PTR_LAB_000b113c + 0x2eb8" (identifier "PTR_LAB_000b113c") (+ "+") (number_literal "0x2eb8"))) (; ";")) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b114c" (* "*") (cast_expression "(code *)PTR_FUN_000b114c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b114c"))) () ")")) (argument_list "(iVar9,puVar6,uVar5)" (( "(") (identifier "iVar9") (, ",") (identifier "puVar6") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" (identifier "iVar8") (= "=") (number_literal "0x37")) (; ";")) (} "}")) (else_clause "else {\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }" (else "else") (compound_statement "{\n          uVar3 = param_1[0x4f];\n          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);\n          *(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);\n          *(uint *)(iVar9 + 0xc4) = uVar7;\n          (*(code *)PTR_FUN_000b116c)();\n        }" ({ "{") (expression_statement "uVar3 = param_1[0x4f];" (assignment_expression "uVar3 = param_1[0x4f]" (identifier "uVar3") (= "=") (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]"))) (; ";")) (expression_statement "uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);" (assignment_expression "uVar7 = uVar3 + *(int *)(iVar9 + 0xc4)" (identifier "uVar7") (= "=") (binary_expression "uVar3 + *(int *)(iVar9 + 0xc4)" (identifier "uVar3") (+ "+") (pointer_expression "*(int *)(iVar9 + 0xc4)" (* "*") (cast_expression "(int *)(iVar9 + 0xc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc4)" (( "(") (binary_expression "iVar9 + 0xc4" (identifier "iVar9") (+ "+") (number_literal "0xc4")) () ")")))))) (; ";")) (expression_statement "*(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);" (assignment_expression "*(uint *)(iVar9 + 0xc0) =\n               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0)" (pointer_expression "*(uint *)(iVar9 + 0xc0)" (* "*") (cast_expression "(uint *)(iVar9 + 0xc0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc0)" (( "(") (binary_expression "iVar9 + 0xc0" (identifier "iVar9") (+ "+") (number_literal "0xc0")) () ")")))) (= "=") (binary_expression "(uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0)" (binary_expression "(uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f)" (call_expression "(uint)(uVar7 < uVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar7 < uVar3)" (( "(") (binary_expression "uVar7 < uVar3" (identifier "uVar7") (< "<") (identifier "uVar3")) () ")"))) (+ "+") (parenthesized_expression "((int)uVar3 >> 0x1f)" (( "(") (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar3")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (pointer_expression "*(int *)(iVar9 + 0xc0)" (* "*") (cast_expression "(int *)(iVar9 + 0xc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc0)" (( "(") (binary_expression "iVar9 + 0xc0" (identifier "iVar9") (+ "+") (number_literal "0xc0")) () ")")))))) (; ";")) (expression_statement "*(uint *)(iVar9 + 0xc4) = uVar7;" (assignment_expression "*(uint *)(iVar9 + 0xc4) = uVar7" (pointer_expression "*(uint *)(iVar9 + 0xc4)" (* "*") (cast_expression "(uint *)(iVar9 + 0xc4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc4)" (( "(") (binary_expression "iVar9 + 0xc4" (identifier "iVar9") (+ "+") (number_literal "0xc4")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "(*(code *)PTR_FUN_000b116c)();" (call_expression "(*(code *)PTR_FUN_000b116c)()" (parenthesized_expression "(*(code *)PTR_FUN_000b116c)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b116c" (* "*") (cast_expression "(code *)PTR_FUN_000b116c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b116c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        *param_1 = 3;\n        iVar8 = 0;\n      }" (else "else") (compound_statement "{\n        *param_1 = 3;\n        iVar8 = 0;\n      }" ({ "{") (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_00051a00;" (goto "goto") (statement_identifier "LAB_00051a00") (; ";")) (} "}"))) (if_statement "if (param_2 == &DAT_00000007) {\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }" (if "if") (parenthesized_expression "(param_2 == &DAT_00000007)" (( "(") (binary_expression "param_2 == &DAT_00000007" (identifier "param_2") (== "==") (pointer_expression "&DAT_00000007" (& "&") (identifier "DAT_00000007"))) () ")")) (compound_statement "{\n      param_1[6] = param_1[6] + 1;\n      puVar6 = PTR_DAT_000b1184 + -0x7270;\n      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);\n      if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }\n      goto LAB_00051a00;\n    }" ({ "{") (expression_statement "param_1[6] = param_1[6] + 1;" (assignment_expression "param_1[6] = param_1[6] + 1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "param_1[6] + 1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar6 = PTR_DAT_000b1184 + -0x7270;" (assignment_expression "puVar6 = PTR_DAT_000b1184 + -0x7270" (identifier "puVar6") (= "=") (binary_expression "PTR_DAT_000b1184 + -0x7270" (identifier "PTR_DAT_000b1184") (+ "+") (number_literal "-0x7270"))) (; ";")) (expression_statement "(*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);" (call_expression "(*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1)" (parenthesized_expression "(*(code *)puVar10)" (( "(") (pointer_expression "*(code *)puVar10" (* "*") (cast_expression "(code *)puVar10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10"))) () ")")) (argument_list "(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1)" (( "(") (identifier "iVar9") (, ",") (identifier "puVar6") (, ",") (binary_expression "*(short *)(param_1 + 0xc) + 1" (pointer_expression "*(short *)(param_1 + 0xc)" (* "*") (cast_expression "(short *)(param_1 + 0xc)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1")) () ")"))) (; ";")) (if_statement "if ((int)param_1[8] < (int)param_1[6]) {\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }\n      else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }" (if "if") (parenthesized_expression "((int)param_1[8] < (int)param_1[6])" (( "(") (binary_expression "(int)param_1[8] < (int)param_1[6]" (cast_expression "(int)param_1[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (< "<") (cast_expression "(int)param_1[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) () ")")) (compound_statement "{\n        param_1[2] = 0xffffff9d;\n        *param_1 = 3;\n        iVar8 = 0;\n      }" ({ "{") (expression_statement "param_1[2] = 0xffffff9d;" (assignment_expression "param_1[2] = 0xffffff9d" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0xffffff9d")) (; ";")) (expression_statement "*param_1 = 3;" (assignment_expression "*param_1 = 3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }" (else "else") (compound_statement "{\n        puVar6 = (undefined1 *)param_1[0x53];\n        iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);\n        if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }\n      }" ({ "{") (expression_statement "puVar6 = (undefined1 *)param_1[0x53];" (assignment_expression "puVar6 = (undefined1 *)param_1[0x53]" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)param_1[0x53]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")))) (; ";")) (expression_statement "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);" (assignment_expression "iVar8 = (*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_sendto_000b1a94)\n                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" (parenthesized_expression "(*(code *)PTR_sendto_000b1a94)" (( "(") (pointer_expression "*(code *)PTR_sendto_000b1a94" (* "*") (cast_expression "(code *)PTR_sendto_000b1a94" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sendto_000b1a94"))) () ")")) (argument_list "(param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d])" (( "(") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (, ",") (identifier "puVar6") (, ",") (binary_expression "param_1[0x4f] + 4" (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]")) (+ "+") (number_literal "4")) (, ",") (number_literal "0x4000") (, ",") (binary_expression "param_1 + 0x2d" (identifier "param_1") (+ "+") (number_literal "0x2d")) (, ",") (subscript_expression "param_1[0x4d]" (identifier "param_1") ([ "[") (number_literal "0x4d") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar8 < 0) {\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }\n        else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }" (if "if") (parenthesized_expression "(iVar8 < 0)" (( "(") (binary_expression "iVar8 < 0" (identifier "iVar8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);\n          uVar5 = FUN_0004f978(param_1[4],*puVar4);\n          puVar6 = PTR_LAB_000b113c + 0x2eb8;\n          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);\n          iVar8 = 0x37;\n        }" ({ "{") (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000b1dc0)(iVar9)" (parenthesized_expression "(*(code *)PTR___errno_location_000b1dc0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000b1dc0" (* "*") (cast_expression "(code *)PTR___errno_location_000b1dc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000b1dc0"))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))))) (; ";")) (expression_statement "uVar5 = FUN_0004f978(param_1[4],*puVar4);" (assignment_expression "uVar5 = FUN_0004f978(param_1[4],*puVar4)" (identifier "uVar5") (= "=") (call_expression "FUN_0004f978(param_1[4],*puVar4)" (identifier "FUN_0004f978") (argument_list "(param_1[4],*puVar4)" (( "(") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (, ",") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")")))) (; ";")) (expression_statement "puVar6 = PTR_LAB_000b113c + 0x2eb8;" (assignment_expression "puVar6 = PTR_LAB_000b113c + 0x2eb8" (identifier "puVar6") (= "=") (binary_expression "PTR_LAB_000b113c + 0x2eb8" (identifier "PTR_LAB_000b113c") (+ "+") (number_literal "0x2eb8"))) (; ";")) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b114c" (* "*") (cast_expression "(code *)PTR_FUN_000b114c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b114c"))) () ")")) (argument_list "(iVar9,puVar6,uVar5)" (( "(") (identifier "iVar9") (, ",") (identifier "puVar6") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "iVar8 = 0x37;" (assignment_expression "iVar8 = 0x37" (identifier "iVar8") (= "=") (number_literal "0x37")) (; ";")) (} "}")) (else_clause "else {\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }" (else "else") (compound_statement "{\n          (*(code *)PTR_FUN_000b116c)();\n          iVar8 = 0;\n        }" ({ "{") (expression_statement "(*(code *)PTR_FUN_000b116c)();" (call_expression "(*(code *)PTR_FUN_000b116c)()" (parenthesized_expression "(*(code *)PTR_FUN_000b116c)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b116c" (* "*") (cast_expression "(code *)PTR_FUN_000b116c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b116c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (goto_statement "goto LAB_00051a00;" (goto "goto") (statement_identifier "LAB_00051a00") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar6 = PTR_DAT_000b1184 + -0x723c;" (assignment_expression "puVar6 = PTR_DAT_000b1184 + -0x723c" (identifier "puVar6") (= "=") (binary_expression "PTR_DAT_000b1184 + -0x723c" (identifier "PTR_DAT_000b1184") (+ "+") (number_literal "-0x723c"))) (; ";")) (expression_statement "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);" (call_expression "(*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2)" (parenthesized_expression "(*(code *)PTR_FUN_000b114c)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b114c" (* "*") (cast_expression "(code *)PTR_FUN_000b114c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b114c"))) () ")")) (argument_list "(iVar9,puVar6,param_2)" (( "(") (identifier "iVar9") (, ",") (identifier "puVar6") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00051a00:\n  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }" (statement_identifier "LAB_00051a00") (: ":") (if_statement "if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {\n    return iVar8;\n  }" (if "if") (parenthesized_expression "(local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4)" (( "(") (binary_expression "local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4" (identifier "local_1c") (== "==") (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_000b1fd4" (* "*") (cast_expression "(undefined4 **)PTR___stack_chk_guard_000b1fd4" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000b1fd4")))) () ")")) (compound_statement "{\n    return iVar8;\n  }" ({ "{") (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}")))) (expression_statement "puVar4 = local_1c;" (assignment_expression "puVar4 = local_1c" (identifier "puVar4") (= "=") (identifier "local_1c")) (; ";")) (expression_statement "puVar10 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000b1c48" (identifier "puVar10") (= "=") (identifier "PTR___stack_chk_fail_000b1c48")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000b1c48"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218);" (call_expression "(**(code **)(puVar10 + 0x5f774))\n            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218)" (parenthesized_expression "(**(code **)(puVar10 + 0x5f774))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x5f774)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x5f774)" (* "*") (cast_expression "(code **)(puVar10 + 0x5f774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x5f774)" (( "(") (binary_expression "puVar10 + 0x5f774" (identifier "puVar10") (+ "+") (number_literal "0x5f774")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,\n             *(int *)(puVar10 + 0x5f74c) + -0x7218)" (( "(") (pointer_expression "*(undefined4 *)puVar4[4]" (* "*") (cast_expression "(undefined4 *)puVar4[4]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")))) (, ",") (binary_expression "*(int *)(puVar10 + 0x5f704) + 0x3f1c" (pointer_expression "*(int *)(puVar10 + 0x5f704)" (* "*") (cast_expression "(int *)(puVar10 + 0x5f704)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x5f704)" (( "(") (binary_expression "puVar10 + 0x5f704" (identifier "puVar10") (+ "+") (number_literal "0x5f704")) () ")")))) (+ "+") (number_literal "0x3f1c")) (, ",") (binary_expression "*(int *)(puVar10 + 0x5f74c) + -0x7218" (pointer_expression "*(int *)(puVar10 + 0x5f74c)" (* "*") (cast_expression "(int *)(puVar10 + 0x5f74c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x5f74c)" (( "(") (binary_expression "puVar10 + 0x5f74c" (identifier "puVar10") (+ "+") (number_literal "0x5f74c")) () ")")))) (+ "+") (number_literal "-0x7218")) () ")"))) (; ";")) (expression_statement "*puVar4 = 2;" (assignment_expression "*puVar4 = 2" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar9 = FUN_00050f5c(puVar4);" (assignment_expression "iVar9 = FUN_00050f5c(puVar4)" (identifier "iVar9") (= "=") (call_expression "FUN_00050f5c(puVar4)" (identifier "FUN_00050f5c") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar9 = FUN_000514f8(puVar4,puVar6);\n  }" ({ "{") (expression_statement "iVar9 = FUN_000514f8(puVar4,puVar6);" (assignment_expression "iVar9 = FUN_000514f8(puVar4,puVar6)" (identifier "iVar9") (= "=") (call_expression "FUN_000514f8(puVar4,puVar6)" (identifier "FUN_000514f8") (argument_list "(puVar4,puVar6)" (( "(") (identifier "puVar4") (, ",") (identifier "puVar6") () ")")))) (; ";")) (} "}"))) (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (} "}")))

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

type_1 function_1(type_2 *state,type_3 var_1)

{
  type_4 var_3;
  type_5 var_14;
  int var_7;
  int *piVar4;
  char *pcVar5;
  type_6 *pCVar6;
  type_2 *state_00;
  type_7 *event_00;
  type_5 var_15;
  type_1 var_11;
  type_6 *pCVar9;
  type_8 *var_18;
  size_t var_13;
  type_2 *var_17;
  
  var_18 = PTR_Curl_infof_000b11ac;
  var_17 = *(type_2 **)PTR___stack_chk_guard_000b1fd4;
  pCVar9 = state->conn->data;
  if (var_1 == var_2) {
    state->state = TFTP_STATE_FIN;
    *(state->spacket).data = '\0';
    (state->spacket).data[1] = '\x05';
    var_3 = state->block;
    (state->spacket).data[2] = (type_7)(var_3 >> 8);
    (state->spacket).data[3] = (type_7)var_3;
    event_00 = (state->spacket).data;
    (*(type_9 *)PTR_sendto_000b1a94)
              (state->sockfd,event_00,4,0x4000,&state->remote_addr,state->remote_addrlen);
    state->state = TFTP_STATE_FIN;
    var_11 = var_12;
    goto LAB_00051a00;
  }
  if (var_1 < var_4) {
    if (var_1 == var_5) {
      var_3 = *(type_4 *)((state->rpacket).data + 2);
      if ((state->block != var_3) && ((state->block != 0 || (var_3 != 0xffff)))) {
        (*(type_9 *)PTR_Curl_infof_000b11ac)(pCVar9,var_6 + -0x72c8);
        var_7 = state->retries + 1;
        state->retries = var_7;
        if (state->retry_max < var_7) {
          event_00 = var_6 + -0x729c;
          (*(type_9 *)PTR_Curl_failf_000b114c)(pCVar9,event_00,state->block);
          var_11 = CURLE_SEND_ERROR;
        }
        else {
          event_00 = (state->spacket).data;
          var_7 = (*(type_9 *)PTR_sendto_000b1a94)
                            (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,
                             state->remote_addrlen);
          if (var_7 < 0) {
            piVar4 = (int *)(*(type_9 *)PTR___errno_location_000b1dc0)();
            pcVar5 = var_8(state->conn,*piVar4);
            event_00 = var_9 + 0x2eb8;
            (*(type_9 *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);
            var_11 = CURLE_SEND_ERROR;
          }
          else {
            var_11 = var_12;
          }
        }
        goto LAB_00051a00;
      }
      (*(type_9 *)PTR_time_000b1df4)(&state->rx_time);
      state->block = state->block + 1;
      event_00 = (type_7 *)var_1;
      goto LAB_000515f8;
    }
  }
  else {
    if (var_1 == var_4) {
      state->block = 1;
      event_00 = (type_7 *)var_1;
LAB_000515f8:
      state->retries = 0;
      *(state->spacket).data = '\0';
      (state->spacket).data[1] = '\x03';
      var_3 = state->block;
      (state->spacket).data[2] = (type_7)(var_3 >> 8);
      (state->spacket).data[3] = (type_7)var_3;
      if ((state->block < 2) || (state->blksize <= state->sbytes)) {
        state->sbytes = 0;
        (state->conn->data->req).upload_fromhere = (char *)((state->spacket).data + 4);
        do {
          event_00 = (type_7 *)(state->blksize - state->sbytes);
          var_11 = var_10(state->conn,(size_t)event_00,&var_13);
          if (var_11 != var_12) goto LAB_00051a00;
          state->sbytes = state->sbytes + var_13;
          pCVar6 = state->conn->data;
          (pCVar6->req).upload_fromhere = (pCVar6->req).upload_fromhere + var_13;
        } while ((state->sbytes < state->blksize) && (var_13 != 0));
        event_00 = (state->spacket).data;
        var_7 = (*(type_9 *)PTR_sendto_000b1a94)
                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,
                           state->remote_addrlen);
        if (var_7 < 0) {
          piVar4 = (int *)(*(type_9 *)PTR___errno_location_000b1dc0)(pCVar9);
          pcVar5 = var_8(state->conn,*piVar4);
          event_00 = var_9 + 0x2eb8;
          (*(type_9 *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);
          var_11 = CURLE_SEND_ERROR;
        }
        else {
          var_14 = state->sbytes;
          var_15 = var_14 + (int)(pCVar9->req).writebytecount;
          *(type_5 *)&(pCVar9->req).writebytecount =
               (type_5)(var_15 < var_14) + ((int)var_14 >> 0x1f) + *(int *)&(pCVar9->req).writebytecount;
          *(type_5 *)((int)&(pCVar9->req).writebytecount + 4) = var_15;
          (*(type_9 *)PTR_Curl_pgrsSetUploadCounter_000b116c)();
        }
      }
      else {
        state->state = TFTP_STATE_FIN;
        var_11 = var_12;
      }
      goto LAB_00051a00;
    }
    if (var_1 == var_16) {
      state->retries = state->retries + 1;
      event_00 = var_6 + -0x7270;
      (*(type_9 *)var_18)(pCVar9,event_00,state->block + 1);
      if (state->retry_max < state->retries) {
        state->error = TFTP_ERR_TIMEOUT;
        state->state = TFTP_STATE_FIN;
        var_11 = var_12;
      }
      else {
        event_00 = (state->spacket).data;
        var_7 = (*(type_9 *)PTR_sendto_000b1a94)
                          (state->sockfd,event_00,state->sbytes + 4,0x4000,&state->remote_addr,
                           state->remote_addrlen);
        if (var_7 < 0) {
          piVar4 = (int *)(*(type_9 *)PTR___errno_location_000b1dc0)(pCVar9);
          pcVar5 = var_8(state->conn,*piVar4);
          event_00 = var_9 + 0x2eb8;
          (*(type_9 *)PTR_Curl_failf_000b114c)(pCVar9,event_00,pcVar5);
          var_11 = CURLE_SEND_ERROR;
        }
        else {
          (*(type_9 *)PTR_Curl_pgrsSetUploadCounter_000b116c)();
          var_11 = var_12;
        }
      }
      goto LAB_00051a00;
    }
  }
  event_00 = var_6 + -0x723c;
  (*(type_9 *)PTR_Curl_failf_000b114c)(pCVar9,event_00,var_1);
  var_11 = var_12;
LAB_00051a00:
  if (var_17 == *(type_2 **)PTR___stack_chk_guard_000b1fd4) {
    return var_11;
  }
  state_00 = var_17;
  var_18 = PTR___stack_chk_fail_000b1c48;
  (*(type_9 *)PTR___stack_chk_fail_000b1c48)();
  (**(type_9 **)(var_18 + 0x5f774))
            (state_00->conn->data,*(int *)(var_18 + 0x5f704) + 0x3f1c,
             *(int *)(var_18 + 0x5f74c) + -0x7218);
  state_00->state = TFTP_STATE_TX;
  var_11 = var_19(state_00);
  if (var_11 == var_12) {
    var_11 = function_1(state_00,(type_3)event_00);
  }
  return var_11;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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 (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (number_literal) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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 (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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 (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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: (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: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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 (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_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 (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) 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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_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))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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 (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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 (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (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: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) 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: (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 (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))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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 (identifier) (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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 (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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 (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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 (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (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: (subscript_expression argument: (identifier) index: (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)) (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: (pointer_expression argument: (identifier)) right: (number_literal))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (return_statement (identifier)))))

int MASKED(undefined4 *param_1,undefined1 *param_2)

{
  undefined2 uVar1;
  int iVar2;
  uint uVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  undefined1 *puVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  undefined *puVar10;
  int local_20;
  undefined4 *local_1c;
  
  puVar10 = PTR_FUN_000b11ac;
  local_1c = *(undefined4 **)PTR___stack_chk_guard_000b1fd4;
  iVar9 = *(int *)param_1[4];
  if (param_2 == &DAT_00000005) {
    *param_1 = 3;
    *(undefined1 *)param_1[0x53] = 0;
    *(undefined1 *)(param_1[0x53] + 1) = 5;
    uVar1 = *(undefined2 *)(param_1 + 0xc);
    *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);
    *(char *)(param_1[0x53] + 3) = (char)uVar1;
    puVar6 = (undefined1 *)param_1[0x53];
    (*(code *)PTR_sendto_000b1a94)(param_1[5],puVar6,4,0x4000,param_1 + 0x2d,param_1[0x4d]);
    *param_1 = 3;
    iVar8 = 0;
    goto LAB_00051a00;
  }
  if ((int)param_2 < 6) {
    if (param_2 == (undefined1 *)0x4) {
      if ((*(short *)(param_1 + 0xc) != *(short *)(param_1[0x52] + 2)) &&
         ((*(short *)(param_1 + 0xc) != 0 || (*(short *)(param_1[0x52] + 2) != -1)))) {
        (*(code *)PTR_FUN_000b11ac)(iVar9,PTR_DAT_000b1184 + -0x72c8);
        iVar8 = param_1[6];
        param_1[6] = iVar8 + 1;
        if ((int)param_1[8] < iVar8 + 1) {
          puVar6 = PTR_DAT_000b1184 + -0x729c;
          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,*(undefined2 *)(param_1 + 0xc));
          iVar8 = 0x37;
        }
        else {
          puVar6 = (undefined1 *)param_1[0x53];
          iVar8 = (*(code *)PTR_sendto_000b1a94)
                            (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]
                            );
          if (iVar8 < 0) {
            puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)();
            uVar5 = FUN_0004f978(param_1[4],*puVar4);
            puVar6 = PTR_LAB_000b113c + 0x2eb8;
            (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);
            iVar8 = 0x37;
          }
          else {
            iVar8 = 0;
          }
        }
        goto LAB_00051a00;
      }
      (*(code *)PTR_time_000b1df4)(param_1 + 0xb);
      *(short *)(param_1 + 0xc) = *(short *)(param_1 + 0xc) + 1;
      puVar6 = param_2;
      goto LAB_000515f8;
    }
  }
  else {
    if (param_2 == &DAT_00000006) {
      *(undefined2 *)(param_1 + 0xc) = 1;
      puVar6 = param_2;
LAB_000515f8:
      param_1[6] = 0;
      *(undefined1 *)param_1[0x53] = 0;
      *(undefined1 *)(param_1[0x53] + 1) = 3;
      uVar1 = *(undefined2 *)(param_1 + 0xc);
      *(char *)(param_1[0x53] + 2) = (char)((ushort)uVar1 >> 8);
      *(char *)(param_1[0x53] + 3) = (char)uVar1;
      if ((*(ushort *)(param_1 + 0xc) < 2) || ((int)param_1[0x50] <= (int)param_1[0x4f])) {
        param_1[0x4f] = 0;
        *(int *)(*(int *)param_1[4] + 0x14c) = param_1[0x53] + 4;
        do {
          puVar6 = (undefined1 *)(param_1[0x50] - param_1[0x4f]);
          iVar8 = FUN_0003ccf0(param_1[4],puVar6,&local_20);
          if (iVar8 != 0) goto LAB_00051a00;
          param_1[0x4f] = param_1[0x4f] + local_20;
          *(int *)(*(int *)param_1[4] + 0x14c) = *(int *)(*(int *)param_1[4] + 0x14c) + local_20;
        } while (((int)param_1[0x4f] < (int)param_1[0x50]) && (local_20 != 0));
        puVar6 = (undefined1 *)param_1[0x53];
        iVar2 = (*(code *)PTR_sendto_000b1a94)
                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);
        if (iVar2 < 0) {
          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);
          uVar5 = FUN_0004f978(param_1[4],*puVar4);
          puVar6 = PTR_LAB_000b113c + 0x2eb8;
          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);
          iVar8 = 0x37;
        }
        else {
          uVar3 = param_1[0x4f];
          uVar7 = uVar3 + *(int *)(iVar9 + 0xc4);
          *(uint *)(iVar9 + 0xc0) =
               (uint)(uVar7 < uVar3) + ((int)uVar3 >> 0x1f) + *(int *)(iVar9 + 0xc0);
          *(uint *)(iVar9 + 0xc4) = uVar7;
          (*(code *)PTR_FUN_000b116c)();
        }
      }
      else {
        *param_1 = 3;
        iVar8 = 0;
      }
      goto LAB_00051a00;
    }
    if (param_2 == &DAT_00000007) {
      param_1[6] = param_1[6] + 1;
      puVar6 = PTR_DAT_000b1184 + -0x7270;
      (*(code *)puVar10)(iVar9,puVar6,*(short *)(param_1 + 0xc) + 1);
      if ((int)param_1[8] < (int)param_1[6]) {
        param_1[2] = 0xffffff9d;
        *param_1 = 3;
        iVar8 = 0;
      }
      else {
        puVar6 = (undefined1 *)param_1[0x53];
        iVar8 = (*(code *)PTR_sendto_000b1a94)
                          (param_1[5],puVar6,param_1[0x4f] + 4,0x4000,param_1 + 0x2d,param_1[0x4d]);
        if (iVar8 < 0) {
          puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000b1dc0)(iVar9);
          uVar5 = FUN_0004f978(param_1[4],*puVar4);
          puVar6 = PTR_LAB_000b113c + 0x2eb8;
          (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,uVar5);
          iVar8 = 0x37;
        }
        else {
          (*(code *)PTR_FUN_000b116c)();
          iVar8 = 0;
        }
      }
      goto LAB_00051a00;
    }
  }
  puVar6 = PTR_DAT_000b1184 + -0x723c;
  (*(code *)PTR_FUN_000b114c)(iVar9,puVar6,param_2);
  iVar8 = 0;
LAB_00051a00:
  if (local_1c == *(undefined4 **)PTR___stack_chk_guard_000b1fd4) {
    return iVar8;
  }
  puVar4 = local_1c;
  puVar10 = PTR___stack_chk_fail_000b1c48;
  (*(code *)PTR___stack_chk_fail_000b1c48)();
  (**(code **)(puVar10 + 0x5f774))
            (*(undefined4 *)puVar4[4],*(int *)(puVar10 + 0x5f704) + 0x3f1c,
             *(int *)(puVar10 + 0x5f74c) + -0x7218);
  *puVar4 = 2;
  iVar9 = FUN_00050f5c(puVar4);
  if (iVar9 == 0) {
    iVar9 = MASKED(puVar4,puVar6);
  }
  return iVar9;
}

