
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int rand_main(int argc,char **argv)

{
  int iVar1;
  char *pcVar2;
  int iVar3;
  int iVar4;
  char **ppcVar5;
  int iVar6;
  char *engine;
  BIO_METHOD *type;
  BIO *b;
  long lVar7;
  char *filename;
  BIO *append;
  byte *pbVar8;
  int in_GS_OFFSET;
  int local_1048;
  ENGINE *local_1044;
  int num;
  uchar buf [4096];
  
  filename = (char *)0x0;
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  num = -1;
  pcVar2 = opt_init(argc,argv,(OPTIONS *)rand_options);
  local_1048 = 2;
  local_1044 = (ENGINE *)0x0;
LAB_0004c330:
  iVar3 = opt_next();
  if (iVar3 != 0) goto LAB_0004c33d;
LAB_0004c425:
  iVar4 = opt_num_rest();
  ppcVar5 = opt_rest();
  if (iVar4 == 1) {
    iVar4 = opt_int(*ppcVar5,&num);
    if ((iVar4 != 0) && (0 < num)) goto LAB_0004c444;
LAB_0004c3fe:
    append = (BIO *)0x0;
    goto LAB_0004c380;
  }
  if (0 < iVar4) {
    BIO_printf((BIO *)bio_err,"Extra arguments given.\n");
LAB_0004c366:
    append = (BIO *)0x0;
    BIO_printf((BIO *)bio_err,"%s: Use -help for summary.\n",pcVar2);
    goto LAB_0004c380;
  }
LAB_0004c444:
  append = (BIO *)bio_open_default(filename,'w',local_1048);
  if (append == (BIO *)0x0) goto LAB_0004c3fe;
  if (local_1048 == 0x8003) {
    type = BIO_f_base64();
    b = BIO_new(type);
    if (b == (BIO *)0x0) goto LAB_0004c380;
    append = BIO_push(b,append);
    if (num < 1) goto LAB_0004c594;
  }
  else if (num < 1) goto LAB_0004c4e8;
  goto LAB_0004c487;
LAB_0004c33d:
  while (iVar3 != 3) {
    if (iVar3 < 4) {
      if (iVar3 == 1) {
        iVar3 = 0;
        append = (BIO *)0x0;
        opt_help((OPTIONS *)rand_options);
        goto LAB_0004c392;
      }
      if (iVar3 < 2) {
        if (iVar3 == -1) goto LAB_0004c366;
      }
      else {
        filename = opt_arg();
      }
      goto LAB_0004c330;
    }
    if (iVar3 == 5) {
      local_1048 = 0x8001;
      goto LAB_0004c330;
    }
    if (4 < iVar3) {
      if ((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)) goto LAB_0004c330;
      goto LAB_0004c3fe;
    }
    local_1048 = 0x8003;
    iVar3 = opt_next();
    if (iVar3 == 0) goto LAB_0004c425;
  }
  engine = opt_arg();
  local_1044 = setup_engine(engine,0);
  goto LAB_0004c330;
  while( true ) {
    if (local_1048 == 0x8001) {
      pbVar8 = buf;
      do {
        iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);
        if (iVar6 != 2) goto LAB_0004c380;
        pbVar8 = pbVar8 + 1;
      } while (buf + iVar4 != pbVar8);
    }
    else {
      iVar6 = BIO_write(append,buf,iVar4);
      if (iVar6 != iVar4) goto LAB_0004c380;
    }
    num = num - iVar4;
    if (num < 1) break;
LAB_0004c487:
    iVar4 = num;
    if (0x1000 < num) {
      iVar4 = 0x1000;
    }
    iVar6 = RAND_bytes(buf,iVar4);
    if (iVar6 < 1) goto LAB_0004c380;
  }
LAB_0004c4e8:
  if (local_1048 == 0x8001) {
    BIO_puts(append,"\n");
  }
LAB_0004c594:
  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);
  if (lVar7 < 1) {
LAB_0004c380:
    iVar3 = 1;
    ERR_print_errors((BIO *)bio_err);
  }
LAB_0004c392:
  release_engine(local_1044);
  BIO_free_all(append);
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return iVar3;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int FUN_0004c2d0(undefined4 param_1,undefined4 param_2)

{
  undefined4 uVar1;
  int iVar2;
  int iVar3;
  undefined4 *puVar4;
  int iVar5;
  undefined4 uVar6;
  BIO_METHOD *type;
  BIO *b;
  long lVar7;
  undefined4 uVar8;
  BIO *append;
  byte *pbVar9;
  int in_GS_OFFSET;
  int local_1048;
  undefined4 local_1044;
  int local_1024;
  byte local_1020 [4096];
  int local_20;
  undefined4 uStack_14;
  
  uVar8 = 0;
  uStack_14 = 0x4c2db;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_1024 = -1;
  uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);
  local_1048 = 2;
  local_1044 = 0;
LAB_0004c330:
  iVar2 = FUN_00078780();
  if (iVar2 != 0) goto LAB_0004c33d;
LAB_0004c425:
  iVar3 = FUN_00079110();
  puVar4 = (undefined4 *)FUN_000790f0();
  if (iVar3 == 1) {
    iVar3 = FUN_000784c0(*puVar4,&local_1024);
    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;
LAB_0004c3fe:
    append = (BIO *)0x0;
    goto LAB_0004c380;
  }
  if (0 < iVar3) {
    BIO_printf(DAT_000c458c,"Extra arguments given.\n");
LAB_0004c366:
    append = (BIO *)0x0;
    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);
    goto LAB_0004c380;
  }
LAB_0004c444:
  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);
  if (append == (BIO *)0x0) goto LAB_0004c3fe;
  if (local_1048 == 0x8003) {
    type = BIO_f_base64();
    b = BIO_new(type);
    if (b == (BIO *)0x0) goto LAB_0004c380;
    append = BIO_push(b,append);
    if (local_1024 < 1) goto LAB_0004c594;
  }
  else if (local_1024 < 1) goto LAB_0004c4e8;
  goto LAB_0004c487;
LAB_0004c33d:
  while (iVar2 != 3) {
    if (iVar2 < 4) {
      if (iVar2 == 1) {
        iVar2 = 0;
        append = (BIO *)0x0;
        FUN_00079140(&PTR_DAT_000bb340);
        goto LAB_0004c392;
      }
      if (iVar2 < 2) {
        if (iVar2 == -1) goto LAB_0004c366;
      }
      else {
        uVar8 = FUN_00078b30();
      }
      goto LAB_0004c330;
    }
    if (iVar2 == 5) {
      local_1048 = 0x8001;
      goto LAB_0004c330;
    }
    if (4 < iVar2) {
      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;
      goto LAB_0004c3fe;
    }
    local_1048 = 0x8003;
    iVar2 = FUN_00078780();
    if (iVar2 == 0) goto LAB_0004c425;
  }
  uVar6 = FUN_00078b30();
  local_1044 = FUN_00074050(uVar6,0);
  goto LAB_0004c330;
  while( true ) {
    if (local_1048 == 0x8001) {
      pbVar9 = local_1020;
      do {
        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);
        if (iVar5 != 2) goto LAB_0004c380;
        pbVar9 = pbVar9 + 1;
      } while (local_1020 + iVar3 != pbVar9);
    }
    else {
      iVar5 = BIO_write(append,local_1020,iVar3);
      if (iVar5 != iVar3) goto LAB_0004c380;
    }
    local_1024 = local_1024 - iVar3;
    if (local_1024 < 1) break;
LAB_0004c487:
    iVar3 = local_1024;
    if (0x1000 < local_1024) {
      iVar3 = 0x1000;
    }
    iVar5 = RAND_bytes(local_1020,iVar3);
    if (iVar5 < 1) goto LAB_0004c380;
  }
LAB_0004c4e8:
  if (local_1048 == 0x8001) {
    BIO_puts(append,"\n");
  }
LAB_0004c594:
  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);
  if (lVar7 < 1) {
LAB_0004c380:
    iVar2 = 1;
    ERR_print_errors(DAT_000c458c);
  }
LAB_0004c392:
  FUN_00074230(local_1044);
  BIO_free_all(append);
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0007d010();
  }
  return iVar2;
}


PUSH EBP
XOR EBP,EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0002c7d0
ADD EBX,0x7079d
SUB ESP,0x1040
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x1030],EAX
XOR EAX,EAX
MOV dword ptr [ESP + 0x2c],0xffffffff
LEA ESI,[EBX + 0xffffe8c8]
PUSH ESI
PUSH dword ptr [ESP + 0x105c]
PUSH dword ptr [ESP + 0x105c]
CALL 0x00077e50
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
MOV dword ptr [ESP + 0x4],0x2
MOV dword ptr [ESP + 0x8],0x0
NOP
CALL 0x00078780
TEST EAX,EAX
JZ 0x0004c425
CMP EAX,0x3
JZ 0x0004c538
JG 0x0004c3d0
CMP EAX,0x1
JZ 0x0004c520
JG 0x0004c558
CMP EAX,-0x1
JNZ 0x0004c330
LEA ESI,[EBX + 0x7b14]
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc16e9]
XOR EBP,EBP
PUSH dword ptr [ESP + 0x10]
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESI]
MOV EDI,0x1
CALL 0x0002c0c0
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x00074230
MOV dword ptr [ESP],EBP
CALL 0x0002a850
ADD ESP,0x10
MOV EAX,EDI
MOV ECX,dword ptr [ESP + 0x102c]
XOR ECX,dword ptr GS:[0x14]
JNZ 0x0004c64a
ADD ESP,0x103c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP EAX,0x5
JZ 0x0004c510
JL 0x0004c410
LEA EDX,[EAX + 0xfffffa23]
CMP EDX,0x1
JA 0x0004c330
SUB ESP,0xc
PUSH EAX
CALL 0x00072560
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004c330
XOR EBP,EBP
LEA ESI,[EBX + 0x7b14]
JMP 0x0004c380
MOV dword ptr [ESP + 0x4],0x8003
CALL 0x00078780
TEST EAX,EAX
JNZ 0x0004c33d
MOV EDI,EAX
CALL 0x00079110
MOV ESI,EAX
CALL 0x000790f0
CMP ESI,0x1
JZ 0x0004c61f
TEST ESI,ESI
JG 0x0004c600
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x8]
PUSH ESI
PUSH 0x77
PUSH EBP
CALL 0x00075fa0
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0004c3fe
CMP ESI,0x8003
JZ 0x0004c564
MOV ESI,dword ptr [ESP + 0x28]
TEST ESI,ESI
JLE 0x0004c4e8
LEA EAX,[ESP + 0x2c]
MOV dword ptr [ESP + 0x1c],EDI
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xfffd66a4]
MOV dword ptr [ESP + 0x14],EAX
CMP ESI,0x1000
MOV EAX,0x1000
CMOVG ESI,EAX
SUB ESP,0x8
PUSH ESI
PUSH dword ptr [ESP + 0x1c]
CALL 0x0002b140
ADD ESP,0x10
TEST EAX,EAX
JLE 0x0004c5b0
CMP dword ptr [ESP + 0x4],0x8001
JZ 0x0004c5c0
SUB ESP,0x4
PUSH ESI
PUSH dword ptr [ESP + 0x18]
PUSH EBP
CALL 0x0002a5d0
ADD ESP,0x10
CMP EAX,ESI
JNZ 0x0004c5b0
MOV EAX,dword ptr [ESP + 0x28]
SUB EAX,ESI
MOV ESI,EAX
MOV dword ptr [ESP + 0x28],EAX
TEST EAX,EAX
JG 0x0004c487
MOV EDI,dword ptr [ESP + 0x1c]
CMP dword ptr [ESP + 0x4],0x8001
JNZ 0x0004c594
SUB ESP,0x8
LEA EAX,[EBX + 0xfffc8c91]
PUSH EAX
PUSH EBP
CALL 0x000283e0
ADD ESP,0x10
JMP 0x0004c594
MOV dword ptr [ESP + 0x4],0x8001
JMP 0x0004c330
SUB ESP,0xc
XOR EDI,EDI
XOR EBP,EBP
PUSH ESI
CALL 0x00079140
ADD ESP,0x10
JMP 0x0004c392
CALL 0x00078b30
SUB ESP,0x8
PUSH 0x0
PUSH EAX
CALL 0x00074050
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
JMP 0x0004c330
CALL 0x00078b30
MOV EBP,EAX
JMP 0x0004c330
CALL 0x00029e60
SUB ESP,0xc
PUSH EAX
CALL 0x00029060
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004c5b0
SUB ESP,0x8
PUSH EBP
PUSH EAX
CALL 0x00028540
MOV ESI,dword ptr [ESP + 0x38]
ADD ESP,0x10
MOV EBP,EAX
TEST ESI,ESI
JG 0x0004c471
PUSH 0x0
PUSH 0x0
PUSH 0xb
PUSH EBP
CALL 0x0002b800
ADD ESP,0x10
TEST EAX,EAX
JG 0x0004c392
LEA ESI,[ESI]
NOP
LEA ESI,[EBX + 0x7b14]
JMP 0x0004c380
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x18],ESI
MOV EDI,EAX
ADD EAX,ESI
MOV ESI,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0xc],EAX
LEA ESI,[ESI]
MOVZX EAX,byte ptr [EDI]
SUB ESP,0x4
PUSH EAX
PUSH ESI
PUSH EBP
CALL 0x00027240
ADD ESP,0x10
CMP EAX,0x2
JNZ 0x0004c5b0
ADD EDI,0x1
CMP dword ptr [ESP + 0xc],EDI
JNZ 0x0004c5d8
MOV ESI,dword ptr [ESP + 0x18]
JMP 0x0004c4d4
LEA ESI,[EBX + 0x7b14]
SUB ESP,0x8
LEA EAX,[EBX + 0xfffc6f5f]
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
ADD ESP,0x10
JMP 0x0004c366
SUB ESP,0x8
LEA ECX,[ESP + 0x30]
PUSH ECX
PUSH dword ptr [EAX]
CALL 0x000784c0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004c3fe
MOV EAX,dword ptr [ESP + 0x28]
TEST EAX,EAX
JG 0x0004c444
JMP 0x0004c3fe
CALL 0x0007d010
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_0004c2d0(undefined4 param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  undefined4 uVar8;\n  BIO *append;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  int local_1048;\n  undefined4 local_1044;\n  int local_1024;\n  byte local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uVar8 = 0;\n  uStack_14 = 0x4c2db;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_1024 = -1;\n  uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);\n  local_1048 = 2;\n  local_1044 = 0;\nLAB_0004c330:\n  iVar2 = FUN_00078780();\n  if (iVar2 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar3 = FUN_00079110();\n  puVar4 = (undefined4 *)FUN_000790f0();\n  if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }\n  uVar6 = FUN_00078b30();\n  local_1044 = FUN_00074050(uVar6,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }\nLAB_0004c392:\n  FUN_00074230(local_1044);\n  BIO_free_all(append);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }\n  return iVar2;\n}\n\n" comment (function_definition "int FUN_0004c2d0(undefined4 param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  undefined4 uVar8;\n  BIO *append;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  int local_1048;\n  undefined4 local_1044;\n  int local_1024;\n  byte local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uVar8 = 0;\n  uStack_14 = 0x4c2db;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_1024 = -1;\n  uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);\n  local_1048 = 2;\n  local_1044 = 0;\nLAB_0004c330:\n  iVar2 = FUN_00078780();\n  if (iVar2 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar3 = FUN_00079110();\n  puVar4 = (undefined4 *)FUN_000790f0();\n  if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }\n  uVar6 = FUN_00078b30();\n  local_1044 = FUN_00074050(uVar6,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }\nLAB_0004c392:\n  FUN_00074230(local_1044);\n  BIO_free_all(append);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }\n  return iVar2;\n}" primitive_type (function_declarator "FUN_0004c2d0(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  undefined4 uVar8;\n  BIO *append;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  int local_1048;\n  undefined4 local_1044;\n  int local_1024;\n  byte local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uVar8 = 0;\n  uStack_14 = 0x4c2db;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_1024 = -1;\n  uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);\n  local_1048 = 2;\n  local_1044 = 0;\nLAB_0004c330:\n  iVar2 = FUN_00078780();\n  if (iVar2 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar3 = FUN_00079110();\n  puVar4 = (undefined4 *)FUN_000790f0();\n  if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }\n  uVar6 = FUN_00078b30();\n  local_1044 = FUN_00074050(uVar6,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }\nLAB_0004c392:\n  FUN_00074230(local_1044);\n  BIO_free_all(append);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }\n  return iVar2;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "BIO_METHOD *type;" type_identifier (pointer_declarator "*type" * identifier) ;) (declaration "BIO *b;" type_identifier (pointer_declarator "*b" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "BIO *append;" type_identifier (pointer_declarator "*append" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_1048;" primitive_type identifier ;) (declaration "undefined4 local_1044;" type_identifier identifier ;) (declaration "int local_1024;" primitive_type identifier ;) (declaration "byte local_1020 [4096];" type_identifier (array_declarator "local_1020 [4096]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x4c2db;" (assignment_expression "uStack_14 = 0x4c2db" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_1024 = -1;" (assignment_expression "local_1024 = -1" identifier = number_literal) ;) (expression_statement "uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);" (assignment_expression "uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340)" identifier = (call_expression "FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340)" identifier (argument_list "(param_1,param_2,&PTR_DAT_000bb340)" ( identifier , identifier , (pointer_expression "&PTR_DAT_000bb340" & identifier) )))) ;) (expression_statement "local_1048 = 2;" (assignment_expression "local_1048 = 2" identifier = number_literal) ;) (expression_statement "local_1044 = 0;" (assignment_expression "local_1044 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004c330:\n  iVar2 = FUN_00078780();" statement_identifier : (expression_statement "iVar2 = FUN_00078780();" (assignment_expression "iVar2 = FUN_00078780()" identifier = (call_expression "FUN_00078780()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar2 != 0) goto LAB_0004c33d;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004c33d;" goto statement_identifier ;)) (labeled_statement "LAB_0004c425:\n  iVar3 = FUN_00079110();" statement_identifier : (expression_statement "iVar3 = FUN_00079110();" (assignment_expression "iVar3 = FUN_00079110()" identifier = (call_expression "FUN_00079110()" identifier (argument_list "()" ( )))) ;)) (expression_statement "puVar4 = (undefined4 *)FUN_000790f0();" (assignment_expression "puVar4 = (undefined4 *)FUN_000790f0()" identifier = (cast_expression "(undefined4 *)FUN_000790f0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000790f0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }" { (expression_statement "iVar3 = FUN_000784c0(*puVar4,&local_1024);" (assignment_expression "iVar3 = FUN_000784c0(*puVar4,&local_1024)" identifier = (call_expression "FUN_000784c0(*puVar4,&local_1024)" identifier (argument_list "(*puVar4,&local_1024)" ( (pointer_expression "*puVar4" * identifier) , (pointer_expression "&local_1024" & identifier) )))) ;) (if_statement "if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;" if (parenthesized_expression "((iVar3 != 0) && (0 < local_1024))" ( (binary_expression "(iVar3 != 0) && (0 < local_1024)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(0 < local_1024)" ( (binary_expression "0 < local_1024" number_literal < identifier) ))) )) (goto_statement "goto LAB_0004c444;" goto statement_identifier ;)) (labeled_statement "LAB_0004c3fe:\n    append = (BIO *)0x0;" statement_identifier : (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;) })) (if_statement "if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }" { (expression_statement "BIO_printf(DAT_000c458c,"Extra arguments given.\n");" (call_expression "BIO_printf(DAT_000c458c,"Extra arguments given.\n")" identifier (argument_list "(DAT_000c458c,"Extra arguments given.\n")" ( identifier , (string_literal ""Extra arguments given.\n"" " string_content escape_sequence ") ))) ;) (labeled_statement "LAB_0004c366:\n    append = (BIO *)0x0;" statement_identifier : (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);" (call_expression "BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1)" identifier (argument_list "(DAT_000c458c,"%s: Use -help for summary.\n",uVar1)" ( identifier , (string_literal ""%s: Use -help for summary.\n"" " string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;) })) (labeled_statement "LAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);" statement_identifier : (expression_statement "append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);" (assignment_expression "append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048)" identifier = (cast_expression "(BIO *)FUN_00075fa0(uVar8,0x77,local_1048)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00075fa0(uVar8,0x77,local_1048)" identifier (argument_list "(uVar8,0x77,local_1048)" ( identifier , number_literal , identifier ))))) ;)) (if_statement "if (append == (BIO *)0x0) goto LAB_0004c3fe;" if (parenthesized_expression "(append == (BIO *)0x0)" ( (binary_expression "append == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c3fe;" goto statement_identifier ;)) (if_statement "if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;" if (parenthesized_expression "(local_1048 == 0x8003)" ( (binary_expression "local_1048 == 0x8003" identifier == number_literal) )) (compound_statement "{\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }" { (expression_statement "type = BIO_f_base64();" (assignment_expression "type = BIO_f_base64()" identifier = (call_expression "BIO_f_base64()" identifier (argument_list "()" ( )))) ;) (expression_statement "b = BIO_new(type);" (assignment_expression "b = BIO_new(type)" identifier = (call_expression "BIO_new(type)" identifier (argument_list "(type)" ( identifier )))) ;) (if_statement "if (b == (BIO *)0x0) goto LAB_0004c380;" if (parenthesized_expression "(b == (BIO *)0x0)" ( (binary_expression "b == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) (expression_statement "append = BIO_push(b,append);" (assignment_expression "append = BIO_push(b,append)" identifier = (call_expression "BIO_push(b,append)" identifier (argument_list "(b,append)" ( identifier , identifier )))) ;) (if_statement "if (local_1024 < 1) goto LAB_0004c594;" if (parenthesized_expression "(local_1024 < 1)" ( (binary_expression "local_1024 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0004c594;" goto statement_identifier ;)) }) (else_clause "else if (local_1024 < 1) goto LAB_0004c4e8;" else (if_statement "if (local_1024 < 1) goto LAB_0004c4e8;" if (parenthesized_expression "(local_1024 < 1)" ( (binary_expression "local_1024 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0004c4e8;" goto statement_identifier ;)))) (goto_statement "goto LAB_0004c487;" goto statement_identifier ;) (labeled_statement "LAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }" statement_identifier : (while_statement "while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }" while (parenthesized_expression "(iVar2 != 3)" ( (binary_expression "iVar2 != 3" identifier != number_literal) )) (compound_statement "{\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }" { (if_statement "if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }" if (parenthesized_expression "(iVar2 < 4)" ( (binary_expression "iVar2 < 4" identifier < number_literal) )) (compound_statement "{\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }" { (if_statement "if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00079140(&PTR_DAT_000bb340);" (call_expression "FUN_00079140(&PTR_DAT_000bb340)" identifier (argument_list "(&PTR_DAT_000bb340)" ( (pointer_expression "&PTR_DAT_000bb340" & identifier) ))) ;) (goto_statement "goto LAB_0004c392;" goto statement_identifier ;) })) (if_statement "if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }" if (parenthesized_expression "(iVar2 < 2)" ( (binary_expression "iVar2 < 2" identifier < number_literal) )) (compound_statement "{\n        if (iVar2 == -1) goto LAB_0004c366;\n      }" { (if_statement "if (iVar2 == -1) goto LAB_0004c366;" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0004c366;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar8 = FUN_00078b30();\n      }" else (compound_statement "{\n        uVar8 = FUN_00078b30();\n      }" { (expression_statement "uVar8 = FUN_00078b30();" (assignment_expression "uVar8 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) }))) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;) })) (if_statement "if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }" if (parenthesized_expression "(iVar2 == 5)" ( (binary_expression "iVar2 == 5" identifier == number_literal) )) (compound_statement "{\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }" { (expression_statement "local_1048 = 0x8001;" (assignment_expression "local_1048 = 0x8001" identifier = number_literal) ;) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;) })) (if_statement "if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }" if (parenthesized_expression "(4 < iVar2)" ( (binary_expression "4 < iVar2" number_literal < identifier) )) (compound_statement "{\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }" { (if_statement "if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;" if (parenthesized_expression "((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0))" ( (binary_expression "(1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)" (parenthesized_expression "(1 < iVar2 - 0x5ddU)" ( (binary_expression "1 < iVar2 - 0x5ddU" number_literal < (binary_expression "iVar2 - 0x5ddU" identifier - number_literal)) )) || (parenthesized_expression "(iVar2 = FUN_00072560(iVar2), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_00072560(iVar2), iVar2 != 0" (assignment_expression "iVar2 = FUN_00072560(iVar2)" identifier = (call_expression "FUN_00072560(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;)) (goto_statement "goto LAB_0004c3fe;" goto statement_identifier ;) })) (expression_statement "local_1048 = 0x8003;" (assignment_expression "local_1048 = 0x8003" identifier = number_literal) ;) (expression_statement "iVar2 = FUN_00078780();" (assignment_expression "iVar2 = FUN_00078780()" identifier = (call_expression "FUN_00078780()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0004c425;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c425;" goto statement_identifier ;)) }))) (expression_statement "uVar6 = FUN_00078b30();" (assignment_expression "uVar6 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_1044 = FUN_00074050(uVar6,0);" (assignment_expression "local_1044 = FUN_00074050(uVar6,0)" identifier = (call_expression "FUN_00074050(uVar6,0)" identifier (argument_list "(uVar6,0)" ( identifier , number_literal )))) ;) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;) (while_statement "while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }" { (if_statement "if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }" if (parenthesized_expression "(local_1048 == 0x8001)" ( (binary_expression "local_1048 == 0x8001" identifier == number_literal) )) (compound_statement "{\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }" { (expression_statement "pbVar9 = local_1020;" (assignment_expression "pbVar9 = local_1020" identifier = identifier) ;) (do_statement "do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);" do (compound_statement "{\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      }" { (expression_statement "iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);" (assignment_expression "iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9)" identifier = (call_expression "BIO_printf(append,"%02x",(uint)*pbVar9)" identifier (argument_list "(append,"%02x",(uint)*pbVar9)" ( identifier , (string_literal ""%02x"" " string_content ") , (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;) (if_statement "if (iVar5 != 2) goto LAB_0004c380;" if (parenthesized_expression "(iVar5 != 2)" ( (binary_expression "iVar5 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_1020 + iVar3 != pbVar9)" ( (binary_expression "local_1020 + iVar3 != pbVar9" (binary_expression "local_1020 + iVar3" identifier + identifier) != identifier) )) ;) }) (else_clause "else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }" else (compound_statement "{\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }" { (expression_statement "iVar5 = BIO_write(append,local_1020,iVar3);" (assignment_expression "iVar5 = BIO_write(append,local_1020,iVar3)" identifier = (call_expression "BIO_write(append,local_1020,iVar3)" identifier (argument_list "(append,local_1020,iVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 != iVar3) goto LAB_0004c380;" if (parenthesized_expression "(iVar5 != iVar3)" ( (binary_expression "iVar5 != iVar3" identifier != identifier) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) }))) (expression_statement "local_1024 = local_1024 - iVar3;" (assignment_expression "local_1024 = local_1024 - iVar3" identifier = (binary_expression "local_1024 - iVar3" identifier - identifier)) ;) (if_statement "if (local_1024 < 1) break;" if (parenthesized_expression "(local_1024 < 1)" ( (binary_expression "local_1024 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0004c487:\n    iVar3 = local_1024;" statement_identifier : (expression_statement "iVar3 = local_1024;" (assignment_expression "iVar3 = local_1024" identifier = identifier) ;)) (if_statement "if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }" if (parenthesized_expression "(0x1000 < local_1024)" ( (binary_expression "0x1000 < local_1024" number_literal < identifier) )) (compound_statement "{\n      iVar3 = 0x1000;\n    }" { (expression_statement "iVar3 = 0x1000;" (assignment_expression "iVar3 = 0x1000" identifier = number_literal) ;) })) (expression_statement "iVar5 = RAND_bytes(local_1020,iVar3);" (assignment_expression "iVar5 = RAND_bytes(local_1020,iVar3)" identifier = (call_expression "RAND_bytes(local_1020,iVar3)" identifier (argument_list "(local_1020,iVar3)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 < 1) goto LAB_0004c380;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) })) (labeled_statement "LAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }" statement_identifier : (if_statement "if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }" if (parenthesized_expression "(local_1048 == 0x8001)" ( (binary_expression "local_1048 == 0x8001" identifier == number_literal) )) (compound_statement "{\n    BIO_puts(append,"\n");\n  }" { (expression_statement "BIO_puts(append,"\n");" (call_expression "BIO_puts(append,"\n")" identifier (argument_list "(append,"\n")" ( identifier , (string_literal ""\n"" " escape_sequence ") ))) ;) }))) (labeled_statement "LAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);" statement_identifier : (expression_statement "lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);" (assignment_expression "lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0)" identifier = (call_expression "BIO_ctrl(append,0xb,0,(void *)0x0)" identifier (argument_list "(append,0xb,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (if_statement "if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }" if (parenthesized_expression "(lVar7 < 1)" ( (binary_expression "lVar7 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }" { (labeled_statement "LAB_0004c380:\n    iVar2 = 1;" statement_identifier : (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;)) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) })) (labeled_statement "LAB_0004c392:\n  FUN_00074230(local_1044);" statement_identifier : (expression_statement "FUN_00074230(local_1044);" (call_expression "FUN_00074230(local_1044)" identifier (argument_list "(local_1044)" ( identifier ))) ;)) (expression_statement "BIO_free_all(append);" (call_expression "BIO_free_all(append)" identifier (argument_list "(append)" ( identifier ))) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }" { comment (expression_statement "FUN_0007d010();" (call_expression "FUN_0007d010()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint rand_main(int argc,char **argv)\n\n{\n  int iVar1;\n  char *pcVar2;\n  int iVar3;\n  int iVar4;\n  char **ppcVar5;\n  int iVar6;\n  char *engine;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  char *filename;\n  BIO *append;\n  byte *pbVar8;\n  int in_GS_OFFSET;\n  int local_1048;\n  ENGINE *local_1044;\n  int num;\n  uchar buf [4096];\n  \n  filename = (char *)0x0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  num = -1;\n  pcVar2 = opt_init(argc,argv,(OPTIONS *)rand_options);\n  local_1048 = 2;\n  local_1044 = (ENGINE *)0x0;\nLAB_0004c330:\n  iVar3 = opt_next();\n  if (iVar3 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar4 = opt_num_rest();\n  ppcVar5 = opt_rest();\n  if (iVar4 == 1) {\n    iVar4 = opt_int(*ppcVar5,&num);\n    if ((iVar4 != 0) && (0 < num)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar4) {\n    BIO_printf((BIO *)bio_err,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf((BIO *)bio_err,"%s: Use -help for summary.\n",pcVar2);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)bio_open_default(filename,'w',local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (num < 1) goto LAB_0004c594;\n  }\n  else if (num < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar3 != 3) {\n    if (iVar3 < 4) {\n      if (iVar3 == 1) {\n        iVar3 = 0;\n        append = (BIO *)0x0;\n        opt_help((OPTIONS *)rand_options);\n        goto LAB_0004c392;\n      }\n      if (iVar3 < 2) {\n        if (iVar3 == -1) goto LAB_0004c366;\n      }\n      else {\n        filename = opt_arg();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar3 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar3) {\n      if ((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar3 = opt_next();\n    if (iVar3 == 0) goto LAB_0004c425;\n  }\n  engine = opt_arg();\n  local_1044 = setup_engine(engine,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar8 = buf;\n      do {\n        iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);\n        if (iVar6 != 2) goto LAB_0004c380;\n        pbVar8 = pbVar8 + 1;\n      } while (buf + iVar4 != pbVar8);\n    }\n    else {\n      iVar6 = BIO_write(append,buf,iVar4);\n      if (iVar6 != iVar4) goto LAB_0004c380;\n    }\n    num = num - iVar4;\n    if (num < 1) break;\nLAB_0004c487:\n    iVar4 = num;\n    if (0x1000 < num) {\n      iVar4 = 0x1000;\n    }\n    iVar6 = RAND_bytes(buf,iVar4);\n    if (iVar6 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar3 = 1;\n    ERR_print_errors((BIO *)bio_err);\n  }\nLAB_0004c392:\n  release_engine(local_1044);\n  BIO_free_all(append);\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar3;\n}\n\n" comment (function_definition "int rand_main(int argc,char **argv)\n\n{\n  int iVar1;\n  char *pcVar2;\n  int iVar3;\n  int iVar4;\n  char **ppcVar5;\n  int iVar6;\n  char *engine;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  char *filename;\n  BIO *append;\n  byte *pbVar8;\n  int in_GS_OFFSET;\n  int local_1048;\n  ENGINE *local_1044;\n  int num;\n  uchar buf [4096];\n  \n  filename = (char *)0x0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  num = -1;\n  pcVar2 = opt_init(argc,argv,(OPTIONS *)rand_options);\n  local_1048 = 2;\n  local_1044 = (ENGINE *)0x0;\nLAB_0004c330:\n  iVar3 = opt_next();\n  if (iVar3 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar4 = opt_num_rest();\n  ppcVar5 = opt_rest();\n  if (iVar4 == 1) {\n    iVar4 = opt_int(*ppcVar5,&num);\n    if ((iVar4 != 0) && (0 < num)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar4) {\n    BIO_printf((BIO *)bio_err,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf((BIO *)bio_err,"%s: Use -help for summary.\n",pcVar2);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)bio_open_default(filename,'w',local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (num < 1) goto LAB_0004c594;\n  }\n  else if (num < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar3 != 3) {\n    if (iVar3 < 4) {\n      if (iVar3 == 1) {\n        iVar3 = 0;\n        append = (BIO *)0x0;\n        opt_help((OPTIONS *)rand_options);\n        goto LAB_0004c392;\n      }\n      if (iVar3 < 2) {\n        if (iVar3 == -1) goto LAB_0004c366;\n      }\n      else {\n        filename = opt_arg();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar3 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar3) {\n      if ((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar3 = opt_next();\n    if (iVar3 == 0) goto LAB_0004c425;\n  }\n  engine = opt_arg();\n  local_1044 = setup_engine(engine,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar8 = buf;\n      do {\n        iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);\n        if (iVar6 != 2) goto LAB_0004c380;\n        pbVar8 = pbVar8 + 1;\n      } while (buf + iVar4 != pbVar8);\n    }\n    else {\n      iVar6 = BIO_write(append,buf,iVar4);\n      if (iVar6 != iVar4) goto LAB_0004c380;\n    }\n    num = num - iVar4;\n    if (num < 1) break;\nLAB_0004c487:\n    iVar4 = num;\n    if (0x1000 < num) {\n      iVar4 = 0x1000;\n    }\n    iVar6 = RAND_bytes(buf,iVar4);\n    if (iVar6 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar3 = 1;\n    ERR_print_errors((BIO *)bio_err);\n  }\nLAB_0004c392:\n  release_engine(local_1044);\n  BIO_free_all(append);\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar3;\n}" primitive_type (function_declarator "rand_main(int argc,char **argv)" identifier (parameter_list "(int argc,char **argv)" ( (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  int iVar3;\n  int iVar4;\n  char **ppcVar5;\n  int iVar6;\n  char *engine;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  char *filename;\n  BIO *append;\n  byte *pbVar8;\n  int in_GS_OFFSET;\n  int local_1048;\n  ENGINE *local_1044;\n  int num;\n  uchar buf [4096];\n  \n  filename = (char *)0x0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  num = -1;\n  pcVar2 = opt_init(argc,argv,(OPTIONS *)rand_options);\n  local_1048 = 2;\n  local_1044 = (ENGINE *)0x0;\nLAB_0004c330:\n  iVar3 = opt_next();\n  if (iVar3 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar4 = opt_num_rest();\n  ppcVar5 = opt_rest();\n  if (iVar4 == 1) {\n    iVar4 = opt_int(*ppcVar5,&num);\n    if ((iVar4 != 0) && (0 < num)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar4) {\n    BIO_printf((BIO *)bio_err,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf((BIO *)bio_err,"%s: Use -help for summary.\n",pcVar2);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)bio_open_default(filename,'w',local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (num < 1) goto LAB_0004c594;\n  }\n  else if (num < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar3 != 3) {\n    if (iVar3 < 4) {\n      if (iVar3 == 1) {\n        iVar3 = 0;\n        append = (BIO *)0x0;\n        opt_help((OPTIONS *)rand_options);\n        goto LAB_0004c392;\n      }\n      if (iVar3 < 2) {\n        if (iVar3 == -1) goto LAB_0004c366;\n      }\n      else {\n        filename = opt_arg();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar3 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar3) {\n      if ((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar3 = opt_next();\n    if (iVar3 == 0) goto LAB_0004c425;\n  }\n  engine = opt_arg();\n  local_1044 = setup_engine(engine,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar8 = buf;\n      do {\n        iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);\n        if (iVar6 != 2) goto LAB_0004c380;\n        pbVar8 = pbVar8 + 1;\n      } while (buf + iVar4 != pbVar8);\n    }\n    else {\n      iVar6 = BIO_write(append,buf,iVar4);\n      if (iVar6 != iVar4) goto LAB_0004c380;\n    }\n    num = num - iVar4;\n    if (num < 1) break;\nLAB_0004c487:\n    iVar4 = num;\n    if (0x1000 < num) {\n      iVar4 = 0x1000;\n    }\n    iVar6 = RAND_bytes(buf,iVar4);\n    if (iVar6 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar3 = 1;\n    ERR_print_errors((BIO *)bio_err);\n  }\nLAB_0004c392:\n  release_engine(local_1044);\n  BIO_free_all(append);\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char **ppcVar5;" primitive_type (pointer_declarator "**ppcVar5" * (pointer_declarator "*ppcVar5" * identifier)) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *engine;" primitive_type (pointer_declarator "*engine" * identifier) ;) (declaration "BIO_METHOD *type;" type_identifier (pointer_declarator "*type" * identifier) ;) (declaration "BIO *b;" type_identifier (pointer_declarator "*b" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "char *filename;" primitive_type (pointer_declarator "*filename" * identifier) ;) (declaration "BIO *append;" type_identifier (pointer_declarator "*append" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_1048;" primitive_type identifier ;) (declaration "ENGINE *local_1044;" type_identifier (pointer_declarator "*local_1044" * identifier) ;) (declaration "int num;" primitive_type identifier ;) (declaration "uchar buf [4096];" type_identifier (array_declarator "buf [4096]" identifier [ number_literal ]) ;) (expression_statement "filename = (char *)0x0;" (assignment_expression "filename = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "num = -1;" (assignment_expression "num = -1" identifier = number_literal) ;) (expression_statement "pcVar2 = opt_init(argc,argv,(OPTIONS *)rand_options);" (assignment_expression "pcVar2 = opt_init(argc,argv,(OPTIONS *)rand_options)" identifier = (call_expression "opt_init(argc,argv,(OPTIONS *)rand_options)" identifier (argument_list "(argc,argv,(OPTIONS *)rand_options)" ( identifier , identifier , (cast_expression "(OPTIONS *)rand_options" ( (type_descriptor "OPTIONS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_1048 = 2;" (assignment_expression "local_1048 = 2" identifier = number_literal) ;) (expression_statement "local_1044 = (ENGINE *)0x0;" (assignment_expression "local_1044 = (ENGINE *)0x0" identifier = (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004c330:\n  iVar3 = opt_next();" statement_identifier : (expression_statement "iVar3 = opt_next();" (assignment_expression "iVar3 = opt_next()" identifier = (call_expression "opt_next()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_0004c33d;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004c33d;" goto statement_identifier ;)) (labeled_statement "LAB_0004c425:\n  iVar4 = opt_num_rest();" statement_identifier : (expression_statement "iVar4 = opt_num_rest();" (assignment_expression "iVar4 = opt_num_rest()" identifier = (call_expression "opt_num_rest()" identifier (argument_list "()" ( )))) ;)) (expression_statement "ppcVar5 = opt_rest();" (assignment_expression "ppcVar5 = opt_rest()" identifier = (call_expression "opt_rest()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 1) {\n    iVar4 = opt_int(*ppcVar5,&num);\n    if ((iVar4 != 0) && (0 < num)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }" if (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar4 = opt_int(*ppcVar5,&num);\n    if ((iVar4 != 0) && (0 < num)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }" { (expression_statement "iVar4 = opt_int(*ppcVar5,&num);" (assignment_expression "iVar4 = opt_int(*ppcVar5,&num)" identifier = (call_expression "opt_int(*ppcVar5,&num)" identifier (argument_list "(*ppcVar5,&num)" ( (pointer_expression "*ppcVar5" * identifier) , (pointer_expression "&num" & identifier) )))) ;) (if_statement "if ((iVar4 != 0) && (0 < num)) goto LAB_0004c444;" if (parenthesized_expression "((iVar4 != 0) && (0 < num))" ( (binary_expression "(iVar4 != 0) && (0 < num)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "(0 < num)" ( (binary_expression "0 < num" number_literal < identifier) ))) )) (goto_statement "goto LAB_0004c444;" goto statement_identifier ;)) (labeled_statement "LAB_0004c3fe:\n    append = (BIO *)0x0;" statement_identifier : (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;) })) (if_statement "if (0 < iVar4) {\n    BIO_printf((BIO *)bio_err,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf((BIO *)bio_err,"%s: Use -help for summary.\n",pcVar2);\n    goto LAB_0004c380;\n  }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n    BIO_printf((BIO *)bio_err,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf((BIO *)bio_err,"%s: Use -help for summary.\n",pcVar2);\n    goto LAB_0004c380;\n  }" { (expression_statement "BIO_printf((BIO *)bio_err,"Extra arguments given.\n");" (call_expression "BIO_printf((BIO *)bio_err,"Extra arguments given.\n")" identifier (argument_list "((BIO *)bio_err,"Extra arguments given.\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Extra arguments given.\n"" " string_content escape_sequence ") ))) ;) (labeled_statement "LAB_0004c366:\n    append = (BIO *)0x0;" statement_identifier : (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "BIO_printf((BIO *)bio_err,"%s: Use -help for summary.\n",pcVar2);" (call_expression "BIO_printf((BIO *)bio_err,"%s: Use -help for summary.\n",pcVar2)" identifier (argument_list "((BIO *)bio_err,"%s: Use -help for summary.\n",pcVar2)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%s: Use -help for summary.\n"" " string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;) })) (labeled_statement "LAB_0004c444:\n  append = (BIO *)bio_open_default(filename,'w',local_1048);" statement_identifier : (expression_statement "append = (BIO *)bio_open_default(filename,'w',local_1048);" (assignment_expression "append = (BIO *)bio_open_default(filename,'w',local_1048)" identifier = (cast_expression "(BIO *)bio_open_default(filename,'w',local_1048)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bio_open_default(filename,'w',local_1048)" identifier (argument_list "(filename,'w',local_1048)" ( identifier , (char_literal "'w'" ' character ') , identifier ))))) ;)) (if_statement "if (append == (BIO *)0x0) goto LAB_0004c3fe;" if (parenthesized_expression "(append == (BIO *)0x0)" ( (binary_expression "append == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c3fe;" goto statement_identifier ;)) (if_statement "if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (num < 1) goto LAB_0004c594;\n  }\n  else if (num < 1) goto LAB_0004c4e8;" if (parenthesized_expression "(local_1048 == 0x8003)" ( (binary_expression "local_1048 == 0x8003" identifier == number_literal) )) (compound_statement "{\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (num < 1) goto LAB_0004c594;\n  }" { (expression_statement "type = BIO_f_base64();" (assignment_expression "type = BIO_f_base64()" identifier = (call_expression "BIO_f_base64()" identifier (argument_list "()" ( )))) ;) (expression_statement "b = BIO_new(type);" (assignment_expression "b = BIO_new(type)" identifier = (call_expression "BIO_new(type)" identifier (argument_list "(type)" ( identifier )))) ;) (if_statement "if (b == (BIO *)0x0) goto LAB_0004c380;" if (parenthesized_expression "(b == (BIO *)0x0)" ( (binary_expression "b == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) (expression_statement "append = BIO_push(b,append);" (assignment_expression "append = BIO_push(b,append)" identifier = (call_expression "BIO_push(b,append)" identifier (argument_list "(b,append)" ( identifier , identifier )))) ;) (if_statement "if (num < 1) goto LAB_0004c594;" if (parenthesized_expression "(num < 1)" ( (binary_expression "num < 1" identifier < number_literal) )) (goto_statement "goto LAB_0004c594;" goto statement_identifier ;)) }) (else_clause "else if (num < 1) goto LAB_0004c4e8;" else (if_statement "if (num < 1) goto LAB_0004c4e8;" if (parenthesized_expression "(num < 1)" ( (binary_expression "num < 1" identifier < number_literal) )) (goto_statement "goto LAB_0004c4e8;" goto statement_identifier ;)))) (goto_statement "goto LAB_0004c487;" goto statement_identifier ;) (labeled_statement "LAB_0004c33d:\n  while (iVar3 != 3) {\n    if (iVar3 < 4) {\n      if (iVar3 == 1) {\n        iVar3 = 0;\n        append = (BIO *)0x0;\n        opt_help((OPTIONS *)rand_options);\n        goto LAB_0004c392;\n      }\n      if (iVar3 < 2) {\n        if (iVar3 == -1) goto LAB_0004c366;\n      }\n      else {\n        filename = opt_arg();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar3 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar3) {\n      if ((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar3 = opt_next();\n    if (iVar3 == 0) goto LAB_0004c425;\n  }" statement_identifier : (while_statement "while (iVar3 != 3) {\n    if (iVar3 < 4) {\n      if (iVar3 == 1) {\n        iVar3 = 0;\n        append = (BIO *)0x0;\n        opt_help((OPTIONS *)rand_options);\n        goto LAB_0004c392;\n      }\n      if (iVar3 < 2) {\n        if (iVar3 == -1) goto LAB_0004c366;\n      }\n      else {\n        filename = opt_arg();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar3 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar3) {\n      if ((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar3 = opt_next();\n    if (iVar3 == 0) goto LAB_0004c425;\n  }" while (parenthesized_expression "(iVar3 != 3)" ( (binary_expression "iVar3 != 3" identifier != number_literal) )) (compound_statement "{\n    if (iVar3 < 4) {\n      if (iVar3 == 1) {\n        iVar3 = 0;\n        append = (BIO *)0x0;\n        opt_help((OPTIONS *)rand_options);\n        goto LAB_0004c392;\n      }\n      if (iVar3 < 2) {\n        if (iVar3 == -1) goto LAB_0004c366;\n      }\n      else {\n        filename = opt_arg();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar3 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar3) {\n      if ((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar3 = opt_next();\n    if (iVar3 == 0) goto LAB_0004c425;\n  }" { (if_statement "if (iVar3 < 4) {\n      if (iVar3 == 1) {\n        iVar3 = 0;\n        append = (BIO *)0x0;\n        opt_help((OPTIONS *)rand_options);\n        goto LAB_0004c392;\n      }\n      if (iVar3 < 2) {\n        if (iVar3 == -1) goto LAB_0004c366;\n      }\n      else {\n        filename = opt_arg();\n      }\n      goto LAB_0004c330;\n    }" if (parenthesized_expression "(iVar3 < 4)" ( (binary_expression "iVar3 < 4" identifier < number_literal) )) (compound_statement "{\n      if (iVar3 == 1) {\n        iVar3 = 0;\n        append = (BIO *)0x0;\n        opt_help((OPTIONS *)rand_options);\n        goto LAB_0004c392;\n      }\n      if (iVar3 < 2) {\n        if (iVar3 == -1) goto LAB_0004c366;\n      }\n      else {\n        filename = opt_arg();\n      }\n      goto LAB_0004c330;\n    }" { (if_statement "if (iVar3 == 1) {\n        iVar3 = 0;\n        append = (BIO *)0x0;\n        opt_help((OPTIONS *)rand_options);\n        goto LAB_0004c392;\n      }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n        iVar3 = 0;\n        append = (BIO *)0x0;\n        opt_help((OPTIONS *)rand_options);\n        goto LAB_0004c392;\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "opt_help((OPTIONS *)rand_options);" (call_expression "opt_help((OPTIONS *)rand_options)" identifier (argument_list "((OPTIONS *)rand_options)" ( (cast_expression "(OPTIONS *)rand_options" ( (type_descriptor "OPTIONS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (goto_statement "goto LAB_0004c392;" goto statement_identifier ;) })) (if_statement "if (iVar3 < 2) {\n        if (iVar3 == -1) goto LAB_0004c366;\n      }\n      else {\n        filename = opt_arg();\n      }" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (compound_statement "{\n        if (iVar3 == -1) goto LAB_0004c366;\n      }" { (if_statement "if (iVar3 == -1) goto LAB_0004c366;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0004c366;" goto statement_identifier ;)) }) (else_clause "else {\n        filename = opt_arg();\n      }" else (compound_statement "{\n        filename = opt_arg();\n      }" { (expression_statement "filename = opt_arg();" (assignment_expression "filename = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) }))) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;) })) (if_statement "if (iVar3 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }" if (parenthesized_expression "(iVar3 == 5)" ( (binary_expression "iVar3 == 5" identifier == number_literal) )) (compound_statement "{\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }" { (expression_statement "local_1048 = 0x8001;" (assignment_expression "local_1048 = 0x8001" identifier = number_literal) ;) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;) })) (if_statement "if (4 < iVar3) {\n      if ((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }" if (parenthesized_expression "(4 < iVar3)" ( (binary_expression "4 < iVar3" number_literal < identifier) )) (compound_statement "{\n      if ((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }" { (if_statement "if ((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)) goto LAB_0004c330;" if (parenthesized_expression "((1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0))" ( (binary_expression "(1 < iVar3 - 0x5ddU) || (iVar3 = opt_rand(iVar3), iVar3 != 0)" (parenthesized_expression "(1 < iVar3 - 0x5ddU)" ( (binary_expression "1 < iVar3 - 0x5ddU" number_literal < (binary_expression "iVar3 - 0x5ddU" identifier - number_literal)) )) || (parenthesized_expression "(iVar3 = opt_rand(iVar3), iVar3 != 0)" ( (comma_expression "iVar3 = opt_rand(iVar3), iVar3 != 0" (assignment_expression "iVar3 = opt_rand(iVar3)" identifier = (call_expression "opt_rand(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;)) (goto_statement "goto LAB_0004c3fe;" goto statement_identifier ;) })) (expression_statement "local_1048 = 0x8003;" (assignment_expression "local_1048 = 0x8003" identifier = number_literal) ;) (expression_statement "iVar3 = opt_next();" (assignment_expression "iVar3 = opt_next()" identifier = (call_expression "opt_next()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0004c425;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c425;" goto statement_identifier ;)) }))) (expression_statement "engine = opt_arg();" (assignment_expression "engine = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_1044 = setup_engine(engine,0);" (assignment_expression "local_1044 = setup_engine(engine,0)" identifier = (call_expression "setup_engine(engine,0)" identifier (argument_list "(engine,0)" ( identifier , number_literal )))) ;) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;) (while_statement "while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar8 = buf;\n      do {\n        iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);\n        if (iVar6 != 2) goto LAB_0004c380;\n        pbVar8 = pbVar8 + 1;\n      } while (buf + iVar4 != pbVar8);\n    }\n    else {\n      iVar6 = BIO_write(append,buf,iVar4);\n      if (iVar6 != iVar4) goto LAB_0004c380;\n    }\n    num = num - iVar4;\n    if (num < 1) break;\nLAB_0004c487:\n    iVar4 = num;\n    if (0x1000 < num) {\n      iVar4 = 0x1000;\n    }\n    iVar6 = RAND_bytes(buf,iVar4);\n    if (iVar6 < 1) goto LAB_0004c380;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (local_1048 == 0x8001) {\n      pbVar8 = buf;\n      do {\n        iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);\n        if (iVar6 != 2) goto LAB_0004c380;\n        pbVar8 = pbVar8 + 1;\n      } while (buf + iVar4 != pbVar8);\n    }\n    else {\n      iVar6 = BIO_write(append,buf,iVar4);\n      if (iVar6 != iVar4) goto LAB_0004c380;\n    }\n    num = num - iVar4;\n    if (num < 1) break;\nLAB_0004c487:\n    iVar4 = num;\n    if (0x1000 < num) {\n      iVar4 = 0x1000;\n    }\n    iVar6 = RAND_bytes(buf,iVar4);\n    if (iVar6 < 1) goto LAB_0004c380;\n  }" { (if_statement "if (local_1048 == 0x8001) {\n      pbVar8 = buf;\n      do {\n        iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);\n        if (iVar6 != 2) goto LAB_0004c380;\n        pbVar8 = pbVar8 + 1;\n      } while (buf + iVar4 != pbVar8);\n    }\n    else {\n      iVar6 = BIO_write(append,buf,iVar4);\n      if (iVar6 != iVar4) goto LAB_0004c380;\n    }" if (parenthesized_expression "(local_1048 == 0x8001)" ( (binary_expression "local_1048 == 0x8001" identifier == number_literal) )) (compound_statement "{\n      pbVar8 = buf;\n      do {\n        iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);\n        if (iVar6 != 2) goto LAB_0004c380;\n        pbVar8 = pbVar8 + 1;\n      } while (buf + iVar4 != pbVar8);\n    }" { (expression_statement "pbVar8 = buf;" (assignment_expression "pbVar8 = buf" identifier = identifier) ;) (do_statement "do {\n        iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);\n        if (iVar6 != 2) goto LAB_0004c380;\n        pbVar8 = pbVar8 + 1;\n      } while (buf + iVar4 != pbVar8);" do (compound_statement "{\n        iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);\n        if (iVar6 != 2) goto LAB_0004c380;\n        pbVar8 = pbVar8 + 1;\n      }" { (expression_statement "iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8);" (assignment_expression "iVar6 = BIO_printf(append,"%02x",(uint)*pbVar8)" identifier = (call_expression "BIO_printf(append,"%02x",(uint)*pbVar8)" identifier (argument_list "(append,"%02x",(uint)*pbVar8)" ( identifier , (string_literal ""%02x"" " string_content ") , (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;) (if_statement "if (iVar6 != 2) goto LAB_0004c380;" if (parenthesized_expression "(iVar6 != 2)" ( (binary_expression "iVar6 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(buf + iVar4 != pbVar8)" ( (binary_expression "buf + iVar4 != pbVar8" (binary_expression "buf + iVar4" identifier + identifier) != identifier) )) ;) }) (else_clause "else {\n      iVar6 = BIO_write(append,buf,iVar4);\n      if (iVar6 != iVar4) goto LAB_0004c380;\n    }" else (compound_statement "{\n      iVar6 = BIO_write(append,buf,iVar4);\n      if (iVar6 != iVar4) goto LAB_0004c380;\n    }" { (expression_statement "iVar6 = BIO_write(append,buf,iVar4);" (assignment_expression "iVar6 = BIO_write(append,buf,iVar4)" identifier = (call_expression "BIO_write(append,buf,iVar4)" identifier (argument_list "(append,buf,iVar4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 != iVar4) goto LAB_0004c380;" if (parenthesized_expression "(iVar6 != iVar4)" ( (binary_expression "iVar6 != iVar4" identifier != identifier) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) }))) (expression_statement "num = num - iVar4;" (assignment_expression "num = num - iVar4" identifier = (binary_expression "num - iVar4" identifier - identifier)) ;) (if_statement "if (num < 1) break;" if (parenthesized_expression "(num < 1)" ( (binary_expression "num < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0004c487:\n    iVar4 = num;" statement_identifier : (expression_statement "iVar4 = num;" (assignment_expression "iVar4 = num" identifier = identifier) ;)) (if_statement "if (0x1000 < num) {\n      iVar4 = 0x1000;\n    }" if (parenthesized_expression "(0x1000 < num)" ( (binary_expression "0x1000 < num" number_literal < identifier) )) (compound_statement "{\n      iVar4 = 0x1000;\n    }" { (expression_statement "iVar4 = 0x1000;" (assignment_expression "iVar4 = 0x1000" identifier = number_literal) ;) })) (expression_statement "iVar6 = RAND_bytes(buf,iVar4);" (assignment_expression "iVar6 = RAND_bytes(buf,iVar4)" identifier = (call_expression "RAND_bytes(buf,iVar4)" identifier (argument_list "(buf,iVar4)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 < 1) goto LAB_0004c380;" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) })) (labeled_statement "LAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }" statement_identifier : (if_statement "if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }" if (parenthesized_expression "(local_1048 == 0x8001)" ( (binary_expression "local_1048 == 0x8001" identifier == number_literal) )) (compound_statement "{\n    BIO_puts(append,"\n");\n  }" { (expression_statement "BIO_puts(append,"\n");" (call_expression "BIO_puts(append,"\n")" identifier (argument_list "(append,"\n")" ( identifier , (string_literal ""\n"" " escape_sequence ") ))) ;) }))) (labeled_statement "LAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);" statement_identifier : (expression_statement "lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);" (assignment_expression "lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0)" identifier = (call_expression "BIO_ctrl(append,0xb,0,(void *)0x0)" identifier (argument_list "(append,0xb,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (if_statement "if (lVar7 < 1) {\nLAB_0004c380:\n    iVar3 = 1;\n    ERR_print_errors((BIO *)bio_err);\n  }" if (parenthesized_expression "(lVar7 < 1)" ( (binary_expression "lVar7 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_0004c380:\n    iVar3 = 1;\n    ERR_print_errors((BIO *)bio_err);\n  }" { (labeled_statement "LAB_0004c380:\n    iVar3 = 1;" statement_identifier : (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;)) (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (labeled_statement "LAB_0004c392:\n  release_engine(local_1044);" statement_identifier : (expression_statement "release_engine(local_1044);" (call_expression "release_engine(local_1044)" identifier (argument_list "(local_1044)" ( identifier ))) ;)) (expression_statement "BIO_free_all(append);" (call_expression "BIO_free_all(append)" identifier (argument_list "(append)" ( identifier ))) ;) (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "int FUN_0004c2d0(undefined4 param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  undefined4 uVar8;\n  BIO *append;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  int local_1048;\n  undefined4 local_1044;\n  int local_1024;\n  byte local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uVar8 = 0;\n  uStack_14 = 0x4c2db;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_1024 = -1;\n  uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);\n  local_1048 = 2;\n  local_1044 = 0;\nLAB_0004c330:\n  iVar2 = FUN_00078780();\n  if (iVar2 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar3 = FUN_00079110();\n  puVar4 = (undefined4 *)FUN_000790f0();\n  if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }\n  uVar6 = FUN_00078b30();\n  local_1044 = FUN_00074050(uVar6,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }\nLAB_0004c392:\n  FUN_00074230(local_1044);\n  BIO_free_all(append);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return iVar2;\n}\n\n" (function_definition "int FUN_0004c2d0(undefined4 param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  undefined4 uVar8;\n  BIO *append;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  int local_1048;\n  undefined4 local_1044;\n  int local_1024;\n  byte local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uVar8 = 0;\n  uStack_14 = 0x4c2db;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_1024 = -1;\n  uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);\n  local_1048 = 2;\n  local_1044 = 0;\nLAB_0004c330:\n  iVar2 = FUN_00078780();\n  if (iVar2 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar3 = FUN_00079110();\n  puVar4 = (undefined4 *)FUN_000790f0();\n  if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }\n  uVar6 = FUN_00078b30();\n  local_1044 = FUN_00074050(uVar6,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }\nLAB_0004c392:\n  FUN_00074230(local_1044);\n  BIO_free_all(append);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return iVar2;\n}" primitive_type (function_declarator "FUN_0004c2d0(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  undefined4 uVar8;\n  BIO *append;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  int local_1048;\n  undefined4 local_1044;\n  int local_1024;\n  byte local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uVar8 = 0;\n  uStack_14 = 0x4c2db;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_1024 = -1;\n  uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);\n  local_1048 = 2;\n  local_1044 = 0;\nLAB_0004c330:\n  iVar2 = FUN_00078780();\n  if (iVar2 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar3 = FUN_00079110();\n  puVar4 = (undefined4 *)FUN_000790f0();\n  if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }\n  uVar6 = FUN_00078b30();\n  local_1044 = FUN_00074050(uVar6,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }\nLAB_0004c392:\n  FUN_00074230(local_1044);\n  BIO_free_all(append);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return iVar2;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "BIO_METHOD *type;" type_identifier (pointer_declarator "*type" * identifier) ;) (declaration "BIO *b;" type_identifier (pointer_declarator "*b" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "BIO *append;" type_identifier (pointer_declarator "*append" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_1048;" primitive_type identifier ;) (declaration "undefined4 local_1044;" type_identifier identifier ;) (declaration "int local_1024;" primitive_type identifier ;) (declaration "byte local_1020 [4096];" type_identifier (array_declarator "local_1020 [4096]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x4c2db;" (assignment_expression "uStack_14 = 0x4c2db" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_1024 = -1;" (assignment_expression "local_1024 = -1" identifier = number_literal) ;) (expression_statement "uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);" (assignment_expression "uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340)" identifier = (call_expression "FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340)" identifier (argument_list "(param_1,param_2,&PTR_DAT_000bb340)" ( identifier , identifier , (pointer_expression "&PTR_DAT_000bb340" & identifier) )))) ;) (expression_statement "local_1048 = 2;" (assignment_expression "local_1048 = 2" identifier = number_literal) ;) (expression_statement "local_1044 = 0;" (assignment_expression "local_1044 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004c330:\n  iVar2 = FUN_00078780();" statement_identifier : (expression_statement "iVar2 = FUN_00078780();" (assignment_expression "iVar2 = FUN_00078780()" identifier = (call_expression "FUN_00078780()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar2 != 0) goto LAB_0004c33d;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004c33d;" goto statement_identifier ;)) (labeled_statement "LAB_0004c425:\n  iVar3 = FUN_00079110();" statement_identifier : (expression_statement "iVar3 = FUN_00079110();" (assignment_expression "iVar3 = FUN_00079110()" identifier = (call_expression "FUN_00079110()" identifier (argument_list "()" ( )))) ;)) (expression_statement "puVar4 = (undefined4 *)FUN_000790f0();" (assignment_expression "puVar4 = (undefined4 *)FUN_000790f0()" identifier = (cast_expression "(undefined4 *)FUN_000790f0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000790f0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }" { (expression_statement "iVar3 = FUN_000784c0(*puVar4,&local_1024);" (assignment_expression "iVar3 = FUN_000784c0(*puVar4,&local_1024)" identifier = (call_expression "FUN_000784c0(*puVar4,&local_1024)" identifier (argument_list "(*puVar4,&local_1024)" ( (pointer_expression "*puVar4" * identifier) , (pointer_expression "&local_1024" & identifier) )))) ;) (if_statement "if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;" if (parenthesized_expression "((iVar3 != 0) && (0 < local_1024))" ( (binary_expression "(iVar3 != 0) && (0 < local_1024)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(0 < local_1024)" ( (binary_expression "0 < local_1024" number_literal < identifier) ))) )) (goto_statement "goto LAB_0004c444;" goto statement_identifier ;)) (labeled_statement "LAB_0004c3fe:\n    append = (BIO *)0x0;" statement_identifier : (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;) })) (if_statement "if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }" { (expression_statement "BIO_printf(DAT_000c458c,"Extra arguments given.\n");" (call_expression "BIO_printf(DAT_000c458c,"Extra arguments given.\n")" identifier (argument_list "(DAT_000c458c,"Extra arguments given.\n")" ( identifier , (string_literal ""Extra arguments given.\n"" " string_content escape_sequence ") ))) ;) (labeled_statement "LAB_0004c366:\n    append = (BIO *)0x0;" statement_identifier : (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);" (call_expression "BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1)" identifier (argument_list "(DAT_000c458c,"%s: Use -help for summary.\n",uVar1)" ( identifier , (string_literal ""%s: Use -help for summary.\n"" " string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;) })) (labeled_statement "LAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);" statement_identifier : (expression_statement "append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);" (assignment_expression "append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048)" identifier = (cast_expression "(BIO *)FUN_00075fa0(uVar8,0x77,local_1048)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00075fa0(uVar8,0x77,local_1048)" identifier (argument_list "(uVar8,0x77,local_1048)" ( identifier , number_literal , identifier ))))) ;)) (if_statement "if (append == (BIO *)0x0) goto LAB_0004c3fe;" if (parenthesized_expression "(append == (BIO *)0x0)" ( (binary_expression "append == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c3fe;" goto statement_identifier ;)) (if_statement "if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;" if (parenthesized_expression "(local_1048 == 0x8003)" ( (binary_expression "local_1048 == 0x8003" identifier == number_literal) )) (compound_statement "{\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }" { (expression_statement "type = BIO_f_base64();" (assignment_expression "type = BIO_f_base64()" identifier = (call_expression "BIO_f_base64()" identifier (argument_list "()" ( )))) ;) (expression_statement "b = BIO_new(type);" (assignment_expression "b = BIO_new(type)" identifier = (call_expression "BIO_new(type)" identifier (argument_list "(type)" ( identifier )))) ;) (if_statement "if (b == (BIO *)0x0) goto LAB_0004c380;" if (parenthesized_expression "(b == (BIO *)0x0)" ( (binary_expression "b == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) (expression_statement "append = BIO_push(b,append);" (assignment_expression "append = BIO_push(b,append)" identifier = (call_expression "BIO_push(b,append)" identifier (argument_list "(b,append)" ( identifier , identifier )))) ;) (if_statement "if (local_1024 < 1) goto LAB_0004c594;" if (parenthesized_expression "(local_1024 < 1)" ( (binary_expression "local_1024 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0004c594;" goto statement_identifier ;)) }) (else_clause "else if (local_1024 < 1) goto LAB_0004c4e8;" else (if_statement "if (local_1024 < 1) goto LAB_0004c4e8;" if (parenthesized_expression "(local_1024 < 1)" ( (binary_expression "local_1024 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0004c4e8;" goto statement_identifier ;)))) (goto_statement "goto LAB_0004c487;" goto statement_identifier ;) (labeled_statement "LAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }" statement_identifier : (while_statement "while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }" while (parenthesized_expression "(iVar2 != 3)" ( (binary_expression "iVar2 != 3" identifier != number_literal) )) (compound_statement "{\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }" { (if_statement "if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }" if (parenthesized_expression "(iVar2 < 4)" ( (binary_expression "iVar2 < 4" identifier < number_literal) )) (compound_statement "{\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }" { (if_statement "if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00079140(&PTR_DAT_000bb340);" (call_expression "FUN_00079140(&PTR_DAT_000bb340)" identifier (argument_list "(&PTR_DAT_000bb340)" ( (pointer_expression "&PTR_DAT_000bb340" & identifier) ))) ;) (goto_statement "goto LAB_0004c392;" goto statement_identifier ;) })) (if_statement "if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }" if (parenthesized_expression "(iVar2 < 2)" ( (binary_expression "iVar2 < 2" identifier < number_literal) )) (compound_statement "{\n        if (iVar2 == -1) goto LAB_0004c366;\n      }" { (if_statement "if (iVar2 == -1) goto LAB_0004c366;" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0004c366;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar8 = FUN_00078b30();\n      }" else (compound_statement "{\n        uVar8 = FUN_00078b30();\n      }" { (expression_statement "uVar8 = FUN_00078b30();" (assignment_expression "uVar8 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) }))) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;) })) (if_statement "if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }" if (parenthesized_expression "(iVar2 == 5)" ( (binary_expression "iVar2 == 5" identifier == number_literal) )) (compound_statement "{\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }" { (expression_statement "local_1048 = 0x8001;" (assignment_expression "local_1048 = 0x8001" identifier = number_literal) ;) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;) })) (if_statement "if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }" if (parenthesized_expression "(4 < iVar2)" ( (binary_expression "4 < iVar2" number_literal < identifier) )) (compound_statement "{\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }" { (if_statement "if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;" if (parenthesized_expression "((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0))" ( (binary_expression "(1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)" (parenthesized_expression "(1 < iVar2 - 0x5ddU)" ( (binary_expression "1 < iVar2 - 0x5ddU" number_literal < (binary_expression "iVar2 - 0x5ddU" identifier - number_literal)) )) || (parenthesized_expression "(iVar2 = FUN_00072560(iVar2), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_00072560(iVar2), iVar2 != 0" (assignment_expression "iVar2 = FUN_00072560(iVar2)" identifier = (call_expression "FUN_00072560(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;)) (goto_statement "goto LAB_0004c3fe;" goto statement_identifier ;) })) (expression_statement "local_1048 = 0x8003;" (assignment_expression "local_1048 = 0x8003" identifier = number_literal) ;) (expression_statement "iVar2 = FUN_00078780();" (assignment_expression "iVar2 = FUN_00078780()" identifier = (call_expression "FUN_00078780()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0004c425;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c425;" goto statement_identifier ;)) }))) (expression_statement "uVar6 = FUN_00078b30();" (assignment_expression "uVar6 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_1044 = FUN_00074050(uVar6,0);" (assignment_expression "local_1044 = FUN_00074050(uVar6,0)" identifier = (call_expression "FUN_00074050(uVar6,0)" identifier (argument_list "(uVar6,0)" ( identifier , number_literal )))) ;) (goto_statement "goto LAB_0004c330;" goto statement_identifier ;) (while_statement "while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }" { (if_statement "if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }" if (parenthesized_expression "(local_1048 == 0x8001)" ( (binary_expression "local_1048 == 0x8001" identifier == number_literal) )) (compound_statement "{\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }" { (expression_statement "pbVar9 = local_1020;" (assignment_expression "pbVar9 = local_1020" identifier = identifier) ;) (do_statement "do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);" do (compound_statement "{\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      }" { (expression_statement "iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);" (assignment_expression "iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9)" identifier = (call_expression "BIO_printf(append,"%02x",(uint)*pbVar9)" identifier (argument_list "(append,"%02x",(uint)*pbVar9)" ( identifier , (string_literal ""%02x"" " string_content ") , (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;) (if_statement "if (iVar5 != 2) goto LAB_0004c380;" if (parenthesized_expression "(iVar5 != 2)" ( (binary_expression "iVar5 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_1020 + iVar3 != pbVar9)" ( (binary_expression "local_1020 + iVar3 != pbVar9" (binary_expression "local_1020 + iVar3" identifier + identifier) != identifier) )) ;) }) (else_clause "else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }" else (compound_statement "{\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }" { (expression_statement "iVar5 = BIO_write(append,local_1020,iVar3);" (assignment_expression "iVar5 = BIO_write(append,local_1020,iVar3)" identifier = (call_expression "BIO_write(append,local_1020,iVar3)" identifier (argument_list "(append,local_1020,iVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 != iVar3) goto LAB_0004c380;" if (parenthesized_expression "(iVar5 != iVar3)" ( (binary_expression "iVar5 != iVar3" identifier != identifier) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) }))) (expression_statement "local_1024 = local_1024 - iVar3;" (assignment_expression "local_1024 = local_1024 - iVar3" identifier = (binary_expression "local_1024 - iVar3" identifier - identifier)) ;) (if_statement "if (local_1024 < 1) break;" if (parenthesized_expression "(local_1024 < 1)" ( (binary_expression "local_1024 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0004c487:\n    iVar3 = local_1024;" statement_identifier : (expression_statement "iVar3 = local_1024;" (assignment_expression "iVar3 = local_1024" identifier = identifier) ;)) (if_statement "if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }" if (parenthesized_expression "(0x1000 < local_1024)" ( (binary_expression "0x1000 < local_1024" number_literal < identifier) )) (compound_statement "{\n      iVar3 = 0x1000;\n    }" { (expression_statement "iVar3 = 0x1000;" (assignment_expression "iVar3 = 0x1000" identifier = number_literal) ;) })) (expression_statement "iVar5 = RAND_bytes(local_1020,iVar3);" (assignment_expression "iVar5 = RAND_bytes(local_1020,iVar3)" identifier = (call_expression "RAND_bytes(local_1020,iVar3)" identifier (argument_list "(local_1020,iVar3)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 < 1) goto LAB_0004c380;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0004c380;" goto statement_identifier ;)) })) (labeled_statement "LAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }" statement_identifier : (if_statement "if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }" if (parenthesized_expression "(local_1048 == 0x8001)" ( (binary_expression "local_1048 == 0x8001" identifier == number_literal) )) (compound_statement "{\n    BIO_puts(append,"\n");\n  }" { (expression_statement "BIO_puts(append,"\n");" (call_expression "BIO_puts(append,"\n")" identifier (argument_list "(append,"\n")" ( identifier , (string_literal ""\n"" " escape_sequence ") ))) ;) }))) (labeled_statement "LAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);" statement_identifier : (expression_statement "lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);" (assignment_expression "lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0)" identifier = (call_expression "BIO_ctrl(append,0xb,0,(void *)0x0)" identifier (argument_list "(append,0xb,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (if_statement "if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }" if (parenthesized_expression "(lVar7 < 1)" ( (binary_expression "lVar7 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }" { (labeled_statement "LAB_0004c380:\n    iVar2 = 1;" statement_identifier : (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;)) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) })) (labeled_statement "LAB_0004c392:\n  FUN_00074230(local_1044);" statement_identifier : (expression_statement "FUN_00074230(local_1044);" (call_expression "FUN_00074230(local_1044)" identifier (argument_list "(local_1044)" ( identifier ))) ;)) (expression_statement "BIO_free_all(append);" (call_expression "BIO_free_all(append)" identifier (argument_list "(append)" ( identifier ))) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0007d010();\n  }" { (expression_statement "FUN_0007d010();" (call_expression "FUN_0007d010()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (binary_expression (parenthesized_expression ( IDENT )) * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " escape_sequence ") ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_0004c2d0(undefined4 param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  undefined4 uVar8;\n  BIO *append;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  int local_1048;\n  undefined4 local_1044;\n  int local_1024;\n  byte local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uVar8 = 0;\n  uStack_14 = 0x4c2db;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_1024 = -1;\n  uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);\n  local_1048 = 2;\n  local_1044 = 0;\nLAB_0004c330:\n  iVar2 = FUN_00078780();\n  if (iVar2 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar3 = FUN_00079110();\n  puVar4 = (undefined4 *)FUN_000790f0();\n  if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }\n  uVar6 = FUN_00078b30();\n  local_1044 = FUN_00074050(uVar6,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }\nLAB_0004c392:\n  FUN_00074230(local_1044);\n  BIO_free_all(append);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return iVar2;\n}" (primitive_type "int") (function_declarator "FUN_0004c2d0(undefined4 param_1,undefined4 param_2)" (identifier "FUN_0004c2d0") (parameter_list "(undefined4 param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  BIO_METHOD *type;\n  BIO *b;\n  long lVar7;\n  undefined4 uVar8;\n  BIO *append;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  int local_1048;\n  undefined4 local_1044;\n  int local_1024;\n  byte local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uVar8 = 0;\n  uStack_14 = 0x4c2db;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_1024 = -1;\n  uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);\n  local_1048 = 2;\n  local_1044 = 0;\nLAB_0004c330:\n  iVar2 = FUN_00078780();\n  if (iVar2 != 0) goto LAB_0004c33d;\nLAB_0004c425:\n  iVar3 = FUN_00079110();\n  puVar4 = (undefined4 *)FUN_000790f0();\n  if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }\n  if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }\nLAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);\n  if (append == (BIO *)0x0) goto LAB_0004c3fe;\n  if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;\n  goto LAB_0004c487;\nLAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }\n  uVar6 = FUN_00078b30();\n  local_1044 = FUN_00074050(uVar6,0);\n  goto LAB_0004c330;\n  while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }\nLAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }\nLAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);\n  if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }\nLAB_0004c392:\n  FUN_00074230(local_1044);\n  BIO_free_all(append);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return iVar2;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "BIO_METHOD *type;" (type_identifier "BIO_METHOD") (pointer_declarator "*type" (* "*") (identifier "type")) (; ";")) (declaration "BIO *b;" (type_identifier "BIO") (pointer_declarator "*b" (* "*") (identifier "b")) (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "BIO *append;" (type_identifier "BIO") (pointer_declarator "*append" (* "*") (identifier "append")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int local_1048;" (primitive_type "int") (identifier "local_1048") (; ";")) (declaration "undefined4 local_1044;" (type_identifier "undefined4") (identifier "local_1044") (; ";")) (declaration "int local_1024;" (primitive_type "int") (identifier "local_1024") (; ";")) (declaration "byte local_1020 [4096];" (type_identifier "byte") (array_declarator "local_1020 [4096]" (identifier "local_1020") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x4c2db;" (assignment_expression "uStack_14 = 0x4c2db" (identifier "uStack_14") (= "=") (number_literal "0x4c2db")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_1024 = -1;" (assignment_expression "local_1024 = -1" (identifier "local_1024") (= "=") (number_literal "-1")) (; ";")) (expression_statement "uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);" (assignment_expression "uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340)" (identifier "uVar1") (= "=") (call_expression "FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340)" (identifier "FUN_00077e50") (argument_list "(param_1,param_2,&PTR_DAT_000bb340)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&PTR_DAT_000bb340" (& "&") (identifier "PTR_DAT_000bb340")) () ")")))) (; ";")) (expression_statement "local_1048 = 2;" (assignment_expression "local_1048 = 2" (identifier "local_1048") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_1044 = 0;" (assignment_expression "local_1044 = 0" (identifier "local_1044") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0004c330:\n  iVar2 = FUN_00078780();" (statement_identifier "LAB_0004c330") (: ":") (expression_statement "iVar2 = FUN_00078780();" (assignment_expression "iVar2 = FUN_00078780()" (identifier "iVar2") (= "=") (call_expression "FUN_00078780()" (identifier "FUN_00078780") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar2 != 0) goto LAB_0004c33d;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004c33d;" (goto "goto") (statement_identifier "LAB_0004c33d") (; ";"))) (labeled_statement "LAB_0004c425:\n  iVar3 = FUN_00079110();" (statement_identifier "LAB_0004c425") (: ":") (expression_statement "iVar3 = FUN_00079110();" (assignment_expression "iVar3 = FUN_00079110()" (identifier "iVar3") (= "=") (call_expression "FUN_00079110()" (identifier "FUN_00079110") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "puVar4 = (undefined4 *)FUN_000790f0();" (assignment_expression "puVar4 = (undefined4 *)FUN_000790f0()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)FUN_000790f0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000790f0()" (identifier "FUN_000790f0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (iVar3 == 1) {\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    iVar3 = FUN_000784c0(*puVar4,&local_1024);\n    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;\nLAB_0004c3fe:\n    append = (BIO *)0x0;\n    goto LAB_0004c380;\n  }" ({ "{") (expression_statement "iVar3 = FUN_000784c0(*puVar4,&local_1024);" (assignment_expression "iVar3 = FUN_000784c0(*puVar4,&local_1024)" (identifier "iVar3") (= "=") (call_expression "FUN_000784c0(*puVar4,&local_1024)" (identifier "FUN_000784c0") (argument_list "(*puVar4,&local_1024)" (( "(") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (, ",") (pointer_expression "&local_1024" (& "&") (identifier "local_1024")) () ")")))) (; ";")) (if_statement "if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;" (if "if") (parenthesized_expression "((iVar3 != 0) && (0 < local_1024))" (( "(") (binary_expression "(iVar3 != 0) && (0 < local_1024)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(0 < local_1024)" (( "(") (binary_expression "0 < local_1024" (number_literal "0") (< "<") (identifier "local_1024")) () ")"))) () ")")) (goto_statement "goto LAB_0004c444;" (goto "goto") (statement_identifier "LAB_0004c444") (; ";"))) (labeled_statement "LAB_0004c3fe:\n    append = (BIO *)0x0;" (statement_identifier "LAB_0004c3fe") (: ":") (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" (identifier "append") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (goto_statement "goto LAB_0004c380;" (goto "goto") (statement_identifier "LAB_0004c380") (; ";")) (} "}"))) (if_statement "if (0 < iVar3) {\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }" (if "if") (parenthesized_expression "(0 < iVar3)" (( "(") (binary_expression "0 < iVar3" (number_literal "0") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n    BIO_printf(DAT_000c458c,"Extra arguments given.\n");\nLAB_0004c366:\n    append = (BIO *)0x0;\n    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);\n    goto LAB_0004c380;\n  }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,"Extra arguments given.\n");" (call_expression "BIO_printf(DAT_000c458c,"Extra arguments given.\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"Extra arguments given.\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Extra arguments given.\n"" (" """) (string_content "Extra arguments given.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (labeled_statement "LAB_0004c366:\n    append = (BIO *)0x0;" (statement_identifier "LAB_0004c366") (: ":") (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" (identifier "append") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);" (call_expression "BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"%s: Use -help for summary.\n",uVar1)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""%s: Use -help for summary.\n"" (" """) (string_content "%s: Use -help for summary.") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar1") () ")"))) (; ";")) (goto_statement "goto LAB_0004c380;" (goto "goto") (statement_identifier "LAB_0004c380") (; ";")) (} "}"))) (labeled_statement "LAB_0004c444:\n  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);" (statement_identifier "LAB_0004c444") (: ":") (expression_statement "append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);" (assignment_expression "append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048)" (identifier "append") (= "=") (cast_expression "(BIO *)FUN_00075fa0(uVar8,0x77,local_1048)" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00075fa0(uVar8,0x77,local_1048)" (identifier "FUN_00075fa0") (argument_list "(uVar8,0x77,local_1048)" (( "(") (identifier "uVar8") (, ",") (number_literal "0x77") (, ",") (identifier "local_1048") () ")"))))) (; ";"))) (if_statement "if (append == (BIO *)0x0) goto LAB_0004c3fe;" (if "if") (parenthesized_expression "(append == (BIO *)0x0)" (( "(") (binary_expression "append == (BIO *)0x0" (identifier "append") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004c3fe;" (goto "goto") (statement_identifier "LAB_0004c3fe") (; ";"))) (if_statement "if (local_1048 == 0x8003) {\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }\n  else if (local_1024 < 1) goto LAB_0004c4e8;" (if "if") (parenthesized_expression "(local_1048 == 0x8003)" (( "(") (binary_expression "local_1048 == 0x8003" (identifier "local_1048") (== "==") (number_literal "0x8003")) () ")")) (compound_statement "{\n    type = BIO_f_base64();\n    b = BIO_new(type);\n    if (b == (BIO *)0x0) goto LAB_0004c380;\n    append = BIO_push(b,append);\n    if (local_1024 < 1) goto LAB_0004c594;\n  }" ({ "{") (expression_statement "type = BIO_f_base64();" (assignment_expression "type = BIO_f_base64()" (identifier "type") (= "=") (call_expression "BIO_f_base64()" (identifier "BIO_f_base64") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "b = BIO_new(type);" (assignment_expression "b = BIO_new(type)" (identifier "b") (= "=") (call_expression "BIO_new(type)" (identifier "BIO_new") (argument_list "(type)" (( "(") (identifier "type") () ")")))) (; ";")) (if_statement "if (b == (BIO *)0x0) goto LAB_0004c380;" (if "if") (parenthesized_expression "(b == (BIO *)0x0)" (( "(") (binary_expression "b == (BIO *)0x0" (identifier "b") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004c380;" (goto "goto") (statement_identifier "LAB_0004c380") (; ";"))) (expression_statement "append = BIO_push(b,append);" (assignment_expression "append = BIO_push(b,append)" (identifier "append") (= "=") (call_expression "BIO_push(b,append)" (identifier "BIO_push") (argument_list "(b,append)" (( "(") (identifier "b") (, ",") (identifier "append") () ")")))) (; ";")) (if_statement "if (local_1024 < 1) goto LAB_0004c594;" (if "if") (parenthesized_expression "(local_1024 < 1)" (( "(") (binary_expression "local_1024 < 1" (identifier "local_1024") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0004c594;" (goto "goto") (statement_identifier "LAB_0004c594") (; ";"))) (} "}")) (else_clause "else if (local_1024 < 1) goto LAB_0004c4e8;" (else "else") (if_statement "if (local_1024 < 1) goto LAB_0004c4e8;" (if "if") (parenthesized_expression "(local_1024 < 1)" (( "(") (binary_expression "local_1024 < 1" (identifier "local_1024") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0004c4e8;" (goto "goto") (statement_identifier "LAB_0004c4e8") (; ";"))))) (goto_statement "goto LAB_0004c487;" (goto "goto") (statement_identifier "LAB_0004c487") (; ";")) (labeled_statement "LAB_0004c33d:\n  while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }" (statement_identifier "LAB_0004c33d") (: ":") (while_statement "while (iVar2 != 3) {\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }" (while "while") (parenthesized_expression "(iVar2 != 3)" (( "(") (binary_expression "iVar2 != 3" (identifier "iVar2") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n    if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }\n    if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }\n    if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }\n    local_1048 = 0x8003;\n    iVar2 = FUN_00078780();\n    if (iVar2 == 0) goto LAB_0004c425;\n  }" ({ "{") (if_statement "if (iVar2 < 4) {\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }" (if "if") (parenthesized_expression "(iVar2 < 4)" (( "(") (binary_expression "iVar2 < 4" (identifier "iVar2") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n      if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }\n      if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }\n      goto LAB_0004c330;\n    }" ({ "{") (if_statement "if (iVar2 == 1) {\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }" (if "if") (parenthesized_expression "(iVar2 == 1)" (( "(") (binary_expression "iVar2 == 1" (identifier "iVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        iVar2 = 0;\n        append = (BIO *)0x0;\n        FUN_00079140(&PTR_DAT_000bb340);\n        goto LAB_0004c392;\n      }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "append = (BIO *)0x0;" (assignment_expression "append = (BIO *)0x0" (identifier "append") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_00079140(&PTR_DAT_000bb340);" (call_expression "FUN_00079140(&PTR_DAT_000bb340)" (identifier "FUN_00079140") (argument_list "(&PTR_DAT_000bb340)" (( "(") (pointer_expression "&PTR_DAT_000bb340" (& "&") (identifier "PTR_DAT_000bb340")) () ")"))) (; ";")) (goto_statement "goto LAB_0004c392;" (goto "goto") (statement_identifier "LAB_0004c392") (; ";")) (} "}"))) (if_statement "if (iVar2 < 2) {\n        if (iVar2 == -1) goto LAB_0004c366;\n      }\n      else {\n        uVar8 = FUN_00078b30();\n      }" (if "if") (parenthesized_expression "(iVar2 < 2)" (( "(") (binary_expression "iVar2 < 2" (identifier "iVar2") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        if (iVar2 == -1) goto LAB_0004c366;\n      }" ({ "{") (if_statement "if (iVar2 == -1) goto LAB_0004c366;" (if "if") (parenthesized_expression "(iVar2 == -1)" (( "(") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0004c366;" (goto "goto") (statement_identifier "LAB_0004c366") (; ";"))) (} "}")) (else_clause "else {\n        uVar8 = FUN_00078b30();\n      }" (else "else") (compound_statement "{\n        uVar8 = FUN_00078b30();\n      }" ({ "{") (expression_statement "uVar8 = FUN_00078b30();" (assignment_expression "uVar8 = FUN_00078b30()" (identifier "uVar8") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (goto_statement "goto LAB_0004c330;" (goto "goto") (statement_identifier "LAB_0004c330") (; ";")) (} "}"))) (if_statement "if (iVar2 == 5) {\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }" (if "if") (parenthesized_expression "(iVar2 == 5)" (( "(") (binary_expression "iVar2 == 5" (identifier "iVar2") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n      local_1048 = 0x8001;\n      goto LAB_0004c330;\n    }" ({ "{") (expression_statement "local_1048 = 0x8001;" (assignment_expression "local_1048 = 0x8001" (identifier "local_1048") (= "=") (number_literal "0x8001")) (; ";")) (goto_statement "goto LAB_0004c330;" (goto "goto") (statement_identifier "LAB_0004c330") (; ";")) (} "}"))) (if_statement "if (4 < iVar2) {\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }" (if "if") (parenthesized_expression "(4 < iVar2)" (( "(") (binary_expression "4 < iVar2" (number_literal "4") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;\n      goto LAB_0004c3fe;\n    }" ({ "{") (if_statement "if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;" (if "if") (parenthesized_expression "((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0))" (( "(") (binary_expression "(1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)" (parenthesized_expression "(1 < iVar2 - 0x5ddU)" (( "(") (binary_expression "1 < iVar2 - 0x5ddU" (number_literal "1") (< "<") (binary_expression "iVar2 - 0x5ddU" (identifier "iVar2") (- "-") (number_literal "0x5ddU"))) () ")")) (|| "||") (parenthesized_expression "(iVar2 = FUN_00072560(iVar2), iVar2 != 0)" (( "(") (comma_expression "iVar2 = FUN_00072560(iVar2), iVar2 != 0" (assignment_expression "iVar2 = FUN_00072560(iVar2)" (identifier "iVar2") (= "=") (call_expression "FUN_00072560(iVar2)" (identifier "FUN_00072560") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0004c330;" (goto "goto") (statement_identifier "LAB_0004c330") (; ";"))) (goto_statement "goto LAB_0004c3fe;" (goto "goto") (statement_identifier "LAB_0004c3fe") (; ";")) (} "}"))) (expression_statement "local_1048 = 0x8003;" (assignment_expression "local_1048 = 0x8003" (identifier "local_1048") (= "=") (number_literal "0x8003")) (; ";")) (expression_statement "iVar2 = FUN_00078780();" (assignment_expression "iVar2 = FUN_00078780()" (identifier "iVar2") (= "=") (call_expression "FUN_00078780()" (identifier "FUN_00078780") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0004c425;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004c425;" (goto "goto") (statement_identifier "LAB_0004c425") (; ";"))) (} "}")))) (expression_statement "uVar6 = FUN_00078b30();" (assignment_expression "uVar6 = FUN_00078b30()" (identifier "uVar6") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_1044 = FUN_00074050(uVar6,0);" (assignment_expression "local_1044 = FUN_00074050(uVar6,0)" (identifier "local_1044") (= "=") (call_expression "FUN_00074050(uVar6,0)" (identifier "FUN_00074050") (argument_list "(uVar6,0)" (( "(") (identifier "uVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (goto_statement "goto LAB_0004c330;" (goto "goto") (statement_identifier "LAB_0004c330") (; ";")) (while_statement "while( true ) {\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }\n    local_1024 = local_1024 - iVar3;\n    if (local_1024 < 1) break;\nLAB_0004c487:\n    iVar3 = local_1024;\n    if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }\n    iVar5 = RAND_bytes(local_1020,iVar3);\n    if (iVar5 < 1) goto LAB_0004c380;\n  }" ({ "{") (if_statement "if (local_1048 == 0x8001) {\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }\n    else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }" (if "if") (parenthesized_expression "(local_1048 == 0x8001)" (( "(") (binary_expression "local_1048 == 0x8001" (identifier "local_1048") (== "==") (number_literal "0x8001")) () ")")) (compound_statement "{\n      pbVar9 = local_1020;\n      do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);\n    }" ({ "{") (expression_statement "pbVar9 = local_1020;" (assignment_expression "pbVar9 = local_1020" (identifier "pbVar9") (= "=") (identifier "local_1020")) (; ";")) (do_statement "do {\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      } while (local_1020 + iVar3 != pbVar9);" (do "do") (compound_statement "{\n        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);\n        if (iVar5 != 2) goto LAB_0004c380;\n        pbVar9 = pbVar9 + 1;\n      }" ({ "{") (expression_statement "iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);" (assignment_expression "iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9)" (identifier "iVar5") (= "=") (call_expression "BIO_printf(append,"%02x",(uint)*pbVar9)" (identifier "BIO_printf") (argument_list "(append,"%02x",(uint)*pbVar9)" (( "(") (identifier "append") (, ",") (string_literal ""%02x"" (" """) (string_content "%02x") (" """)) (, ",") (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar9")) () ")")))) (; ";")) (if_statement "if (iVar5 != 2) goto LAB_0004c380;" (if "if") (parenthesized_expression "(iVar5 != 2)" (( "(") (binary_expression "iVar5 != 2" (identifier "iVar5") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_0004c380;" (goto "goto") (statement_identifier "LAB_0004c380") (; ";"))) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_1020 + iVar3 != pbVar9)" (( "(") (binary_expression "local_1020 + iVar3 != pbVar9" (binary_expression "local_1020 + iVar3" (identifier "local_1020") (+ "+") (identifier "iVar3")) (!= "!=") (identifier "pbVar9")) () ")")) (; ";")) (} "}")) (else_clause "else {\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }" (else "else") (compound_statement "{\n      iVar5 = BIO_write(append,local_1020,iVar3);\n      if (iVar5 != iVar3) goto LAB_0004c380;\n    }" ({ "{") (expression_statement "iVar5 = BIO_write(append,local_1020,iVar3);" (assignment_expression "iVar5 = BIO_write(append,local_1020,iVar3)" (identifier "iVar5") (= "=") (call_expression "BIO_write(append,local_1020,iVar3)" (identifier "BIO_write") (argument_list "(append,local_1020,iVar3)" (( "(") (identifier "append") (, ",") (identifier "local_1020") (, ",") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar5 != iVar3) goto LAB_0004c380;" (if "if") (parenthesized_expression "(iVar5 != iVar3)" (( "(") (binary_expression "iVar5 != iVar3" (identifier "iVar5") (!= "!=") (identifier "iVar3")) () ")")) (goto_statement "goto LAB_0004c380;" (goto "goto") (statement_identifier "LAB_0004c380") (; ";"))) (} "}")))) (expression_statement "local_1024 = local_1024 - iVar3;" (assignment_expression "local_1024 = local_1024 - iVar3" (identifier "local_1024") (= "=") (binary_expression "local_1024 - iVar3" (identifier "local_1024") (- "-") (identifier "iVar3"))) (; ";")) (if_statement "if (local_1024 < 1) break;" (if "if") (parenthesized_expression "(local_1024 < 1)" (( "(") (binary_expression "local_1024 < 1" (identifier "local_1024") (< "<") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0004c487:\n    iVar3 = local_1024;" (statement_identifier "LAB_0004c487") (: ":") (expression_statement "iVar3 = local_1024;" (assignment_expression "iVar3 = local_1024" (identifier "iVar3") (= "=") (identifier "local_1024")) (; ";"))) (if_statement "if (0x1000 < local_1024) {\n      iVar3 = 0x1000;\n    }" (if "if") (parenthesized_expression "(0x1000 < local_1024)" (( "(") (binary_expression "0x1000 < local_1024" (number_literal "0x1000") (< "<") (identifier "local_1024")) () ")")) (compound_statement "{\n      iVar3 = 0x1000;\n    }" ({ "{") (expression_statement "iVar3 = 0x1000;" (assignment_expression "iVar3 = 0x1000" (identifier "iVar3") (= "=") (number_literal "0x1000")) (; ";")) (} "}"))) (expression_statement "iVar5 = RAND_bytes(local_1020,iVar3);" (assignment_expression "iVar5 = RAND_bytes(local_1020,iVar3)" (identifier "iVar5") (= "=") (call_expression "RAND_bytes(local_1020,iVar3)" (identifier "RAND_bytes") (argument_list "(local_1020,iVar3)" (( "(") (identifier "local_1020") (, ",") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar5 < 1) goto LAB_0004c380;" (if "if") (parenthesized_expression "(iVar5 < 1)" (( "(") (binary_expression "iVar5 < 1" (identifier "iVar5") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0004c380;" (goto "goto") (statement_identifier "LAB_0004c380") (; ";"))) (} "}"))) (labeled_statement "LAB_0004c4e8:\n  if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }" (statement_identifier "LAB_0004c4e8") (: ":") (if_statement "if (local_1048 == 0x8001) {\n    BIO_puts(append,"\n");\n  }" (if "if") (parenthesized_expression "(local_1048 == 0x8001)" (( "(") (binary_expression "local_1048 == 0x8001" (identifier "local_1048") (== "==") (number_literal "0x8001")) () ")")) (compound_statement "{\n    BIO_puts(append,"\n");\n  }" ({ "{") (expression_statement "BIO_puts(append,"\n");" (call_expression "BIO_puts(append,"\n")" (identifier "BIO_puts") (argument_list "(append,"\n")" (( "(") (identifier "append") (, ",") (string_literal ""\n"" (" """) (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0004c594:\n  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);" (statement_identifier "LAB_0004c594") (: ":") (expression_statement "lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);" (assignment_expression "lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0)" (identifier "lVar7") (= "=") (call_expression "BIO_ctrl(append,0xb,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(append,0xb,0,(void *)0x0)" (( "(") (identifier "append") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) (; ";"))) (if_statement "if (lVar7 < 1) {\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }" (if "if") (parenthesized_expression "(lVar7 < 1)" (( "(") (binary_expression "lVar7 < 1" (identifier "lVar7") (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0004c380:\n    iVar2 = 1;\n    ERR_print_errors(DAT_000c458c);\n  }" ({ "{") (labeled_statement "LAB_0004c380:\n    iVar2 = 1;" (statement_identifier "LAB_0004c380") (: ":") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";"))) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0004c392:\n  FUN_00074230(local_1044);" (statement_identifier "LAB_0004c392") (: ":") (expression_statement "FUN_00074230(local_1044);" (call_expression "FUN_00074230(local_1044)" (identifier "FUN_00074230") (argument_list "(local_1044)" (( "(") (identifier "local_1044") () ")"))) (; ";"))) (expression_statement "BIO_free_all(append);" (call_expression "BIO_free_all(append)" (identifier "BIO_free_all") (argument_list "(append)" (( "(") (identifier "append") () ")"))) (; ";")) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0007d010();\n  }" ({ "{") (expression_statement "FUN_0007d010();" (call_expression "FUN_0007d010()" (identifier "FUN_0007d010") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int function_1(int argc,char **argv)

{
  int var_33;
  char *pcVar2;
  int var_4;
  int var_7;
  char **ppcVar5;
  int var_23;
  char *engine;
  type_1 *type;
  type_2 *var_16;
  long var_29;
  char *filename;
  type_2 *var_12;
  type_3 *var_22;
  int var_1;
  int var_13;
  type_4 *local_1044;
  int var_9;
  type_5 var_24 [4096];
  
  filename = (char *)0x0;
  var_33 = *(int *)(var_1 + 0x14);
  var_9 = -1;
  pcVar2 = var_2(argc,argv,(type_6 *)rand_options);
  var_13 = 2;
  local_1044 = (type_4 *)0x0;
LAB_0004c330:
  var_4 = var_3();
  if (var_4 != 0) goto LAB_0004c33d;
LAB_0004c425:
  var_7 = var_5();
  ppcVar5 = var_6();
  if (var_7 == 1) {
    var_7 = var_8(*ppcVar5,&var_9);
    if ((var_7 != 0) && (0 < var_9)) goto LAB_0004c444;
LAB_0004c3fe:
    var_12 = (type_2 *)0x0;
    goto LAB_0004c380;
  }
  if (0 < var_7) {
    var_10((type_2 *)bio_err,"Extra arguments given.\n");
LAB_0004c366:
    var_12 = (type_2 *)0x0;
    var_10((type_2 *)bio_err,"%s: Use -help for summary.\n",pcVar2);
    goto LAB_0004c380;
  }
LAB_0004c444:
  var_12 = (type_2 *)var_11(filename,'w',var_13);
  if (var_12 == (type_2 *)0x0) goto LAB_0004c3fe;
  if (var_13 == 0x8003) {
    type = var_14();
    var_16 = var_15(type);
    if (var_16 == (type_2 *)0x0) goto LAB_0004c380;
    var_12 = var_17(var_16,var_12);
    if (var_9 < 1) goto LAB_0004c594;
  }
  else if (var_9 < 1) goto LAB_0004c4e8;
  goto LAB_0004c487;
LAB_0004c33d:
  while (var_4 != 3) {
    if (var_4 < 4) {
      if (var_4 == 1) {
        var_4 = 0;
        var_12 = (type_2 *)0x0;
        var_18((type_6 *)rand_options);
        goto LAB_0004c392;
      }
      if (var_4 < 2) {
        if (var_4 == -1) goto LAB_0004c366;
      }
      else {
        filename = var_19();
      }
      goto LAB_0004c330;
    }
    if (var_4 == 5) {
      var_13 = 0x8001;
      goto LAB_0004c330;
    }
    if (4 < var_4) {
      if ((1 < var_4 - 0x5ddU) || (var_4 = var_20(var_4), var_4 != 0)) goto LAB_0004c330;
      goto LAB_0004c3fe;
    }
    var_13 = 0x8003;
    var_4 = var_3();
    if (var_4 == 0) goto LAB_0004c425;
  }
  engine = var_19();
  local_1044 = var_21(engine,0);
  goto LAB_0004c330;
  while( true ) {
    if (var_13 == 0x8001) {
      var_22 = var_24;
      do {
        var_23 = var_10(var_12,"%02x",(uint)*var_22);
        if (var_23 != 2) goto LAB_0004c380;
        var_22 = var_22 + 1;
      } while (var_24 + var_7 != var_22);
    }
    else {
      var_23 = var_25(var_12,var_24,var_7);
      if (var_23 != var_7) goto LAB_0004c380;
    }
    var_9 = var_9 - var_7;
    if (var_9 < 1) break;
LAB_0004c487:
    var_7 = var_9;
    if (0x1000 < var_9) {
      var_7 = 0x1000;
    }
    var_23 = var_26(var_24,var_7);
    if (var_23 < 1) goto LAB_0004c380;
  }
LAB_0004c4e8:
  if (var_13 == 0x8001) {
    var_27(var_12,"\n");
  }
LAB_0004c594:
  var_29 = var_28(var_12,0xb,0,(void *)0x0);
  if (var_29 < 1) {
LAB_0004c380:
    var_4 = 1;
    var_30((type_2 *)bio_err);
  }
LAB_0004c392:
  var_31(local_1044);
  var_32(var_12);
  if (var_33 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_34();
  }
  return var_4;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int MASKED(undefined4 param_1,undefined4 param_2)

{
  undefined4 uVar1;
  int iVar2;
  int iVar3;
  undefined4 *puVar4;
  int iVar5;
  undefined4 uVar6;
  BIO_METHOD *type;
  BIO *b;
  long lVar7;
  undefined4 uVar8;
  BIO *append;
  byte *pbVar9;
  int in_GS_OFFSET;
  int local_1048;
  undefined4 local_1044;
  int local_1024;
  byte local_1020 [4096];
  int local_20;
  undefined4 uStack_14;
  
  uVar8 = 0;
  uStack_14 = 0x4c2db;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_1024 = -1;
  uVar1 = FUN_00077e50(param_1,param_2,&PTR_DAT_000bb340);
  local_1048 = 2;
  local_1044 = 0;
LAB_0004c330:
  iVar2 = FUN_00078780();
  if (iVar2 != 0) goto LAB_0004c33d;
LAB_0004c425:
  iVar3 = FUN_00079110();
  puVar4 = (undefined4 *)FUN_000790f0();
  if (iVar3 == 1) {
    iVar3 = FUN_000784c0(*puVar4,&local_1024);
    if ((iVar3 != 0) && (0 < local_1024)) goto LAB_0004c444;
LAB_0004c3fe:
    append = (BIO *)0x0;
    goto LAB_0004c380;
  }
  if (0 < iVar3) {
    BIO_printf(DAT_000c458c,"Extra arguments given.\n");
LAB_0004c366:
    append = (BIO *)0x0;
    BIO_printf(DAT_000c458c,"%s: Use -help for summary.\n",uVar1);
    goto LAB_0004c380;
  }
LAB_0004c444:
  append = (BIO *)FUN_00075fa0(uVar8,0x77,local_1048);
  if (append == (BIO *)0x0) goto LAB_0004c3fe;
  if (local_1048 == 0x8003) {
    type = BIO_f_base64();
    b = BIO_new(type);
    if (b == (BIO *)0x0) goto LAB_0004c380;
    append = BIO_push(b,append);
    if (local_1024 < 1) goto LAB_0004c594;
  }
  else if (local_1024 < 1) goto LAB_0004c4e8;
  goto LAB_0004c487;
LAB_0004c33d:
  while (iVar2 != 3) {
    if (iVar2 < 4) {
      if (iVar2 == 1) {
        iVar2 = 0;
        append = (BIO *)0x0;
        FUN_00079140(&PTR_DAT_000bb340);
        goto LAB_0004c392;
      }
      if (iVar2 < 2) {
        if (iVar2 == -1) goto LAB_0004c366;
      }
      else {
        uVar8 = FUN_00078b30();
      }
      goto LAB_0004c330;
    }
    if (iVar2 == 5) {
      local_1048 = 0x8001;
      goto LAB_0004c330;
    }
    if (4 < iVar2) {
      if ((1 < iVar2 - 0x5ddU) || (iVar2 = FUN_00072560(iVar2), iVar2 != 0)) goto LAB_0004c330;
      goto LAB_0004c3fe;
    }
    local_1048 = 0x8003;
    iVar2 = FUN_00078780();
    if (iVar2 == 0) goto LAB_0004c425;
  }
  uVar6 = FUN_00078b30();
  local_1044 = FUN_00074050(uVar6,0);
  goto LAB_0004c330;
  while( true ) {
    if (local_1048 == 0x8001) {
      pbVar9 = local_1020;
      do {
        iVar5 = BIO_printf(append,"%02x",(uint)*pbVar9);
        if (iVar5 != 2) goto LAB_0004c380;
        pbVar9 = pbVar9 + 1;
      } while (local_1020 + iVar3 != pbVar9);
    }
    else {
      iVar5 = BIO_write(append,local_1020,iVar3);
      if (iVar5 != iVar3) goto LAB_0004c380;
    }
    local_1024 = local_1024 - iVar3;
    if (local_1024 < 1) break;
LAB_0004c487:
    iVar3 = local_1024;
    if (0x1000 < local_1024) {
      iVar3 = 0x1000;
    }
    iVar5 = RAND_bytes(local_1020,iVar3);
    if (iVar5 < 1) goto LAB_0004c380;
  }
LAB_0004c4e8:
  if (local_1048 == 0x8001) {
    BIO_puts(append,"\n");
  }
LAB_0004c594:
  lVar7 = BIO_ctrl(append,0xb,0,(void *)0x0);
  if (lVar7 < 1) {
LAB_0004c380:
    iVar2 = 1;
    ERR_print_errors(DAT_000c458c);
  }
LAB_0004c392:
  FUN_00074230(local_1044);
  BIO_free_all(append);
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0007d010();
  }
  return iVar2;
}

