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

int ssl_load_stores(SSL_CTX *ctx,char *vfyCApath,char *vfyCAfile,char *chCApath,char *chCAfile,
                   stack_st_X509_CRL *crls,int crl_download)

{
  X509_STORE *ctx_00;
  int iVar1;
  X509_STORE *ctx_01;
  
  ctx_00 = (X509_STORE *)((uint)vfyCApath | (uint)vfyCAfile);
  if (ctx_00 != (X509_STORE *)0x0) {
    ctx_00 = X509_STORE_new();
    if (ctx_00 == (X509_STORE *)0x0) {
      ctx_01 = (X509_STORE *)0x0;
      iVar1 = 0;
      goto LAB_0007c0b3;
    }
    ctx_01 = (X509_STORE *)0x0;
    iVar1 = X509_STORE_load_locations(ctx_00,vfyCAfile,vfyCApath);
    if (iVar1 == 0) goto LAB_0007c0b3;
    add_crls_store((X509_STORE *)ctx_00,crls);
    SSL_CTX_ctrl((SSL_CTX *)ctx,0x6a,1,ctx_00);
    if (crl_download != 0) {
      store_setup_crl_download((X509_STORE *)ctx_00);
    }
  }
  iVar1 = 1;
  ctx_01 = (X509_STORE *)((uint)chCApath | (uint)chCAfile);
  if (ctx_01 != (X509_STORE *)0x0) {
    ctx_01 = X509_STORE_new();
    iVar1 = 0;
    if (ctx_01 != (X509_STORE *)0x0) {
      iVar1 = X509_STORE_load_locations(ctx_01,chCAfile,chCApath);
      if (iVar1 != 0) {
        iVar1 = 1;
        SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);
      }
    }
  }
LAB_0007c0b3:
  X509_STORE_free(ctx_00);
  X509_STORE_free(ctx_01);
  return iVar1;
}



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

int FUN_0007c080(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,
                undefined4 param_6,int param_7)

{
  X509_STORE *ctx;
  int iVar1;
  X509_STORE *ctx_00;
  
  ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);
  if (ctx != (X509_STORE *)0x0) {
    ctx = X509_STORE_new();
    if (ctx == (X509_STORE *)0x0) {
      ctx_00 = (X509_STORE *)0x0;
      iVar1 = 0;
      goto LAB_0007c0b3;
    }
    ctx_00 = (X509_STORE *)0x0;
    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);
    if (iVar1 == 0) goto LAB_0007c0b3;
    FUN_000797e0();
    SSL_CTX_ctrl(param_1,0x6a,1,ctx);
    if (param_7 != 0) {
      FUN_000755d0(ctx);
    }
  }
  iVar1 = 1;
  ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);
  if (ctx_00 != (X509_STORE *)0x0) {
    ctx_00 = X509_STORE_new();
    iVar1 = 0;
    if (ctx_00 != (X509_STORE *)0x0) {
      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);
      if (iVar1 != 0) {
        iVar1 = 1;
        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);
      }
    }
  }
LAB_0007c0b3:
  X509_STORE_free(ctx);
  X509_STORE_free(ctx_00);
  return iVar1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0002c7d0
ADD EBX,0x409ef
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x24]
MOV ESI,dword ptr [ESP + 0x28]
MOV EBP,EDI
OR EBP,ESI
JNZ 0x0007c0d0
MOV ESI,0x1
MOV EDI,dword ptr [ESP + 0x2c]
OR EDI,dword ptr [ESP + 0x30]
JNZ 0x0007c130
SUB ESP,0xc
PUSH EBP
CALL 0x0002b550
MOV dword ptr [ESP],EDI
CALL 0x0002b550
ADD ESP,0x1c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x00028830
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0007c180
SUB ESP,0x4
PUSH EDI
XOR EDI,EDI
PUSH ESI
PUSH EAX
CALL 0x0002ad20
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0007c0b3
MOV EDX,dword ptr [ESP + 0x34]
MOV EAX,EBP
CALL 0x000797e0
PUSH EBP
PUSH 0x1
PUSH 0x6a
PUSH dword ptr [ESP + 0x2c]
CALL 0x000287f0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x0007c0a0
SUB ESP,0xc
PUSH EBP
CALL 0x000755d0
ADD ESP,0x10
JMP 0x0007c0a0
CALL 0x00028830
XOR ESI,ESI
MOV EDI,EAX
TEST EAX,EAX
JZ 0x0007c0b3
SUB ESP,0x4
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL 0x0002ad20
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0007c0b3
PUSH EDI
MOV ESI,0x1
PUSH 0x1
PUSH 0x6b
PUSH dword ptr [ESP + 0x2c]
CALL 0x000287f0
ADD ESP,0x10
JMP 0x0007c0b3
XOR EDI,EDI
XOR ESI,ESI
JMP 0x0007c0b3
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_0007c080(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)\n\n{\n  X509_STORE *ctx;\n  int iVar1;\n  X509_STORE *ctx_00;\n  \n  ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);\n  if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }\n  iVar1 = 1;\n  ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx);\n  X509_STORE_free(ctx_00);\n  return iVar1;\n}\n\n" comment (function_definition "int FUN_0007c080(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)\n\n{\n  X509_STORE *ctx;\n  int iVar1;\n  X509_STORE *ctx_00;\n  \n  ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);\n  if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }\n  iVar1 = 1;\n  ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx);\n  X509_STORE_free(ctx_00);\n  return iVar1;\n}" primitive_type (function_declarator "FUN_0007c080(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)" identifier (parameter_list "(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)" ( (parameter_declaration "SSL_CTX *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "char *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "int param_7" primitive_type identifier) ))) (compound_statement "{\n  X509_STORE *ctx;\n  int iVar1;\n  X509_STORE *ctx_00;\n  \n  ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);\n  if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }\n  iVar1 = 1;\n  ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx);\n  X509_STORE_free(ctx_00);\n  return iVar1;\n}" { (declaration "X509_STORE *ctx;" type_identifier (pointer_declarator "*ctx" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "X509_STORE *ctx_00;" type_identifier (pointer_declarator "*ctx_00" * identifier) ;) (expression_statement "ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);" (assignment_expression "ctx = (X509_STORE *)((uint)param_2 | (uint)param_3)" identifier = (cast_expression "(X509_STORE *)((uint)param_2 | (uint)param_3)" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_2 | (uint)param_3)" ( (binary_expression "(uint)param_2 | (uint)param_3" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }" if (parenthesized_expression "(ctx != (X509_STORE *)0x0)" ( (binary_expression "ctx != (X509_STORE *)0x0" identifier != (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }" { (expression_statement "ctx = X509_STORE_new();" (assignment_expression "ctx = X509_STORE_new()" identifier = (call_expression "X509_STORE_new()" identifier (argument_list "()" ( )))) ;) (if_statement "if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }" if (parenthesized_expression "(ctx == (X509_STORE *)0x0)" ( (binary_expression "ctx == (X509_STORE *)0x0" identifier == (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }" { (expression_statement "ctx_00 = (X509_STORE *)0x0;" (assignment_expression "ctx_00 = (X509_STORE *)0x0" identifier = (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007c0b3;" goto statement_identifier ;) })) (expression_statement "ctx_00 = (X509_STORE *)0x0;" (assignment_expression "ctx_00 = (X509_STORE *)0x0" identifier = (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);" (assignment_expression "iVar1 = X509_STORE_load_locations(ctx,param_3,param_2)" identifier = (call_expression "X509_STORE_load_locations(ctx,param_3,param_2)" identifier (argument_list "(ctx,param_3,param_2)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) goto LAB_0007c0b3;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007c0b3;" goto statement_identifier ;)) (expression_statement "FUN_000797e0();" (call_expression "FUN_000797e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "SSL_CTX_ctrl(param_1,0x6a,1,ctx);" (call_expression "SSL_CTX_ctrl(param_1,0x6a,1,ctx)" identifier (argument_list "(param_1,0x6a,1,ctx)" ( identifier , number_literal , number_literal , identifier ))) ;) (if_statement "if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_000755d0(ctx);\n    }" { (expression_statement "FUN_000755d0(ctx);" (call_expression "FUN_000755d0(ctx)" identifier (argument_list "(ctx)" ( identifier ))) ;) })) })) (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) (expression_statement "ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);" (assignment_expression "ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5)" identifier = (cast_expression "(X509_STORE *)((uint)param_4 | (uint)param_5)" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_4 | (uint)param_5)" ( (binary_expression "(uint)param_4 | (uint)param_5" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)param_5" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }" if (parenthesized_expression "(ctx_00 != (X509_STORE *)0x0)" ( (binary_expression "ctx_00 != (X509_STORE *)0x0" identifier != (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }" { (expression_statement "ctx_00 = X509_STORE_new();" (assignment_expression "ctx_00 = X509_STORE_new()" identifier = (call_expression "X509_STORE_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (if_statement "if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }" if (parenthesized_expression "(ctx_00 != (X509_STORE *)0x0)" ( (binary_expression "ctx_00 != (X509_STORE *)0x0" identifier != (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }" { (expression_statement "iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);" (assignment_expression "iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4)" identifier = (call_expression "X509_STORE_load_locations(ctx_00,param_5,param_4)" identifier (argument_list "(ctx_00,param_5,param_4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }" { (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) (expression_statement "SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);" (call_expression "SSL_CTX_ctrl(param_1,0x6b,1,ctx_00)" identifier (argument_list "(param_1,0x6b,1,ctx_00)" ( identifier , number_literal , number_literal , identifier ))) ;) })) })) })) (labeled_statement "LAB_0007c0b3:\n  X509_STORE_free(ctx);" statement_identifier : (expression_statement "X509_STORE_free(ctx);" (call_expression "X509_STORE_free(ctx)" identifier (argument_list "(ctx)" ( identifier ))) ;)) (expression_statement "X509_STORE_free(ctx_00);" (call_expression "X509_STORE_free(ctx_00)" identifier (argument_list "(ctx_00)" ( identifier ))) ;) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint ssl_load_stores(SSL_CTX *ctx,char *vfyCApath,char *vfyCAfile,char *chCApath,char *chCAfile,\n                   stack_st_X509_CRL *crls,int crl_download)\n\n{\n  X509_STORE *ctx_00;\n  int iVar1;\n  X509_STORE *ctx_01;\n  \n  ctx_00 = (X509_STORE *)((uint)vfyCApath | (uint)vfyCAfile);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    if (ctx_00 == (X509_STORE *)0x0) {\n      ctx_01 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_01 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx_00,vfyCAfile,vfyCApath);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    add_crls_store((X509_STORE *)ctx_00,crls);\n    SSL_CTX_ctrl((SSL_CTX *)ctx,0x6a,1,ctx_00);\n    if (crl_download != 0) {\n      store_setup_crl_download((X509_STORE *)ctx_00);\n    }\n  }\n  iVar1 = 1;\n  ctx_01 = (X509_STORE *)((uint)chCApath | (uint)chCAfile);\n  if (ctx_01 != (X509_STORE *)0x0) {\n    ctx_01 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_01 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_01,chCAfile,chCApath);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx_00);\n  X509_STORE_free(ctx_01);\n  return iVar1;\n}\n\n" comment comment (function_definition "int ssl_load_stores(SSL_CTX *ctx,char *vfyCApath,char *vfyCAfile,char *chCApath,char *chCAfile,\n                   stack_st_X509_CRL *crls,int crl_download)\n\n{\n  X509_STORE *ctx_00;\n  int iVar1;\n  X509_STORE *ctx_01;\n  \n  ctx_00 = (X509_STORE *)((uint)vfyCApath | (uint)vfyCAfile);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    if (ctx_00 == (X509_STORE *)0x0) {\n      ctx_01 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_01 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx_00,vfyCAfile,vfyCApath);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    add_crls_store((X509_STORE *)ctx_00,crls);\n    SSL_CTX_ctrl((SSL_CTX *)ctx,0x6a,1,ctx_00);\n    if (crl_download != 0) {\n      store_setup_crl_download((X509_STORE *)ctx_00);\n    }\n  }\n  iVar1 = 1;\n  ctx_01 = (X509_STORE *)((uint)chCApath | (uint)chCAfile);\n  if (ctx_01 != (X509_STORE *)0x0) {\n    ctx_01 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_01 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_01,chCAfile,chCApath);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx_00);\n  X509_STORE_free(ctx_01);\n  return iVar1;\n}" primitive_type (function_declarator "ssl_load_stores(SSL_CTX *ctx,char *vfyCApath,char *vfyCAfile,char *chCApath,char *chCAfile,\n                   stack_st_X509_CRL *crls,int crl_download)" identifier (parameter_list "(SSL_CTX *ctx,char *vfyCApath,char *vfyCAfile,char *chCApath,char *chCAfile,\n                   stack_st_X509_CRL *crls,int crl_download)" ( (parameter_declaration "SSL_CTX *ctx" type_identifier (pointer_declarator "*ctx" * identifier)) , (parameter_declaration "char *vfyCApath" primitive_type (pointer_declarator "*vfyCApath" * identifier)) , (parameter_declaration "char *vfyCAfile" primitive_type (pointer_declarator "*vfyCAfile" * identifier)) , (parameter_declaration "char *chCApath" primitive_type (pointer_declarator "*chCApath" * identifier)) , (parameter_declaration "char *chCAfile" primitive_type (pointer_declarator "*chCAfile" * identifier)) , (parameter_declaration "stack_st_X509_CRL *crls" type_identifier (pointer_declarator "*crls" * identifier)) , (parameter_declaration "int crl_download" primitive_type identifier) ))) (compound_statement "{\n  X509_STORE *ctx_00;\n  int iVar1;\n  X509_STORE *ctx_01;\n  \n  ctx_00 = (X509_STORE *)((uint)vfyCApath | (uint)vfyCAfile);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    if (ctx_00 == (X509_STORE *)0x0) {\n      ctx_01 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_01 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx_00,vfyCAfile,vfyCApath);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    add_crls_store((X509_STORE *)ctx_00,crls);\n    SSL_CTX_ctrl((SSL_CTX *)ctx,0x6a,1,ctx_00);\n    if (crl_download != 0) {\n      store_setup_crl_download((X509_STORE *)ctx_00);\n    }\n  }\n  iVar1 = 1;\n  ctx_01 = (X509_STORE *)((uint)chCApath | (uint)chCAfile);\n  if (ctx_01 != (X509_STORE *)0x0) {\n    ctx_01 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_01 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_01,chCAfile,chCApath);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx_00);\n  X509_STORE_free(ctx_01);\n  return iVar1;\n}" { (declaration "X509_STORE *ctx_00;" type_identifier (pointer_declarator "*ctx_00" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "X509_STORE *ctx_01;" type_identifier (pointer_declarator "*ctx_01" * identifier) ;) (expression_statement "ctx_00 = (X509_STORE *)((uint)vfyCApath | (uint)vfyCAfile);" (assignment_expression "ctx_00 = (X509_STORE *)((uint)vfyCApath | (uint)vfyCAfile)" identifier = (cast_expression "(X509_STORE *)((uint)vfyCApath | (uint)vfyCAfile)" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)vfyCApath | (uint)vfyCAfile)" ( (binary_expression "(uint)vfyCApath | (uint)vfyCAfile" (cast_expression "(uint)vfyCApath" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)vfyCAfile" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    if (ctx_00 == (X509_STORE *)0x0) {\n      ctx_01 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_01 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx_00,vfyCAfile,vfyCApath);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    add_crls_store((X509_STORE *)ctx_00,crls);\n    SSL_CTX_ctrl((SSL_CTX *)ctx,0x6a,1,ctx_00);\n    if (crl_download != 0) {\n      store_setup_crl_download((X509_STORE *)ctx_00);\n    }\n  }" if (parenthesized_expression "(ctx_00 != (X509_STORE *)0x0)" ( (binary_expression "ctx_00 != (X509_STORE *)0x0" identifier != (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ctx_00 = X509_STORE_new();\n    if (ctx_00 == (X509_STORE *)0x0) {\n      ctx_01 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_01 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx_00,vfyCAfile,vfyCApath);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    add_crls_store((X509_STORE *)ctx_00,crls);\n    SSL_CTX_ctrl((SSL_CTX *)ctx,0x6a,1,ctx_00);\n    if (crl_download != 0) {\n      store_setup_crl_download((X509_STORE *)ctx_00);\n    }\n  }" { (expression_statement "ctx_00 = X509_STORE_new();" (assignment_expression "ctx_00 = X509_STORE_new()" identifier = (call_expression "X509_STORE_new()" identifier (argument_list "()" ( )))) ;) (if_statement "if (ctx_00 == (X509_STORE *)0x0) {\n      ctx_01 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }" if (parenthesized_expression "(ctx_00 == (X509_STORE *)0x0)" ( (binary_expression "ctx_00 == (X509_STORE *)0x0" identifier == (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ctx_01 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }" { (expression_statement "ctx_01 = (X509_STORE *)0x0;" (assignment_expression "ctx_01 = (X509_STORE *)0x0" identifier = (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007c0b3;" goto statement_identifier ;) })) (expression_statement "ctx_01 = (X509_STORE *)0x0;" (assignment_expression "ctx_01 = (X509_STORE *)0x0" identifier = (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = X509_STORE_load_locations(ctx_00,vfyCAfile,vfyCApath);" (assignment_expression "iVar1 = X509_STORE_load_locations(ctx_00,vfyCAfile,vfyCApath)" identifier = (call_expression "X509_STORE_load_locations(ctx_00,vfyCAfile,vfyCApath)" identifier (argument_list "(ctx_00,vfyCAfile,vfyCApath)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) goto LAB_0007c0b3;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007c0b3;" goto statement_identifier ;)) (expression_statement "add_crls_store((X509_STORE *)ctx_00,crls);" (call_expression "add_crls_store((X509_STORE *)ctx_00,crls)" identifier (argument_list "((X509_STORE *)ctx_00,crls)" ( (cast_expression "(X509_STORE *)ctx_00" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "SSL_CTX_ctrl((SSL_CTX *)ctx,0x6a,1,ctx_00);" (call_expression "SSL_CTX_ctrl((SSL_CTX *)ctx,0x6a,1,ctx_00)" identifier (argument_list "((SSL_CTX *)ctx,0x6a,1,ctx_00)" ( (cast_expression "(SSL_CTX *)ctx" ( (type_descriptor "SSL_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal , identifier ))) ;) (if_statement "if (crl_download != 0) {\n      store_setup_crl_download((X509_STORE *)ctx_00);\n    }" if (parenthesized_expression "(crl_download != 0)" ( (binary_expression "crl_download != 0" identifier != number_literal) )) (compound_statement "{\n      store_setup_crl_download((X509_STORE *)ctx_00);\n    }" { (expression_statement "store_setup_crl_download((X509_STORE *)ctx_00);" (call_expression "store_setup_crl_download((X509_STORE *)ctx_00)" identifier (argument_list "((X509_STORE *)ctx_00)" ( (cast_expression "(X509_STORE *)ctx_00" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) })) (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) (expression_statement "ctx_01 = (X509_STORE *)((uint)chCApath | (uint)chCAfile);" (assignment_expression "ctx_01 = (X509_STORE *)((uint)chCApath | (uint)chCAfile)" identifier = (cast_expression "(X509_STORE *)((uint)chCApath | (uint)chCAfile)" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)chCApath | (uint)chCAfile)" ( (binary_expression "(uint)chCApath | (uint)chCAfile" (cast_expression "(uint)chCApath" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)chCAfile" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (ctx_01 != (X509_STORE *)0x0) {\n    ctx_01 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_01 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_01,chCAfile,chCApath);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);\n      }\n    }\n  }" if (parenthesized_expression "(ctx_01 != (X509_STORE *)0x0)" ( (binary_expression "ctx_01 != (X509_STORE *)0x0" identifier != (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ctx_01 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_01 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_01,chCAfile,chCApath);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);\n      }\n    }\n  }" { (expression_statement "ctx_01 = X509_STORE_new();" (assignment_expression "ctx_01 = X509_STORE_new()" identifier = (call_expression "X509_STORE_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (if_statement "if (ctx_01 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_01,chCAfile,chCApath);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);\n      }\n    }" if (parenthesized_expression "(ctx_01 != (X509_STORE *)0x0)" ( (binary_expression "ctx_01 != (X509_STORE *)0x0" identifier != (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar1 = X509_STORE_load_locations(ctx_01,chCAfile,chCApath);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);\n      }\n    }" { (expression_statement "iVar1 = X509_STORE_load_locations(ctx_01,chCAfile,chCApath);" (assignment_expression "iVar1 = X509_STORE_load_locations(ctx_01,chCAfile,chCApath)" identifier = (call_expression "X509_STORE_load_locations(ctx_01,chCAfile,chCApath)" identifier (argument_list "(ctx_01,chCAfile,chCApath)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar1 = 1;\n        SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);\n      }" { (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) (expression_statement "SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01);" (call_expression "SSL_CTX_ctrl((SSL_CTX *)ctx,0x6b,1,ctx_01)" identifier (argument_list "((SSL_CTX *)ctx,0x6b,1,ctx_01)" ( (cast_expression "(SSL_CTX *)ctx" ( (type_descriptor "SSL_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal , identifier ))) ;) })) })) })) (labeled_statement "LAB_0007c0b3:\n  X509_STORE_free(ctx_00);" statement_identifier : (expression_statement "X509_STORE_free(ctx_00);" (call_expression "X509_STORE_free(ctx_00)" identifier (argument_list "(ctx_00)" ( identifier ))) ;)) (expression_statement "X509_STORE_free(ctx_01);" (call_expression "X509_STORE_free(ctx_01)" identifier (argument_list "(ctx_01)" ( identifier ))) ;) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "int FUN_0007c080(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)\n\n{\n  X509_STORE *ctx;\n  int iVar1;\n  X509_STORE *ctx_00;\n  \n  ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);\n  if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }\n  iVar1 = 1;\n  ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx);\n  X509_STORE_free(ctx_00);\n  return iVar1;\n}\n\n" (function_definition "int FUN_0007c080(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)\n\n{\n  X509_STORE *ctx;\n  int iVar1;\n  X509_STORE *ctx_00;\n  \n  ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);\n  if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }\n  iVar1 = 1;\n  ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx);\n  X509_STORE_free(ctx_00);\n  return iVar1;\n}" primitive_type (function_declarator "FUN_0007c080(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)" identifier (parameter_list "(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)" ( (parameter_declaration "SSL_CTX *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "char *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "int param_7" primitive_type identifier) ))) (compound_statement "{\n  X509_STORE *ctx;\n  int iVar1;\n  X509_STORE *ctx_00;\n  \n  ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);\n  if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }\n  iVar1 = 1;\n  ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx);\n  X509_STORE_free(ctx_00);\n  return iVar1;\n}" { (declaration "X509_STORE *ctx;" type_identifier (pointer_declarator "*ctx" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "X509_STORE *ctx_00;" type_identifier (pointer_declarator "*ctx_00" * identifier) ;) (expression_statement "ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);" (assignment_expression "ctx = (X509_STORE *)((uint)param_2 | (uint)param_3)" identifier = (cast_expression "(X509_STORE *)((uint)param_2 | (uint)param_3)" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_2 | (uint)param_3)" ( (binary_expression "(uint)param_2 | (uint)param_3" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }" if (parenthesized_expression "(ctx != (X509_STORE *)0x0)" ( (binary_expression "ctx != (X509_STORE *)0x0" identifier != (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }" { (expression_statement "ctx = X509_STORE_new();" (assignment_expression "ctx = X509_STORE_new()" identifier = (call_expression "X509_STORE_new()" identifier (argument_list "()" ( )))) ;) (if_statement "if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }" if (parenthesized_expression "(ctx == (X509_STORE *)0x0)" ( (binary_expression "ctx == (X509_STORE *)0x0" identifier == (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }" { (expression_statement "ctx_00 = (X509_STORE *)0x0;" (assignment_expression "ctx_00 = (X509_STORE *)0x0" identifier = (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007c0b3;" goto statement_identifier ;) })) (expression_statement "ctx_00 = (X509_STORE *)0x0;" (assignment_expression "ctx_00 = (X509_STORE *)0x0" identifier = (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);" (assignment_expression "iVar1 = X509_STORE_load_locations(ctx,param_3,param_2)" identifier = (call_expression "X509_STORE_load_locations(ctx,param_3,param_2)" identifier (argument_list "(ctx,param_3,param_2)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) goto LAB_0007c0b3;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007c0b3;" goto statement_identifier ;)) (expression_statement "FUN_000797e0();" (call_expression "FUN_000797e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "SSL_CTX_ctrl(param_1,0x6a,1,ctx);" (call_expression "SSL_CTX_ctrl(param_1,0x6a,1,ctx)" identifier (argument_list "(param_1,0x6a,1,ctx)" ( identifier , number_literal , number_literal , identifier ))) ;) (if_statement "if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_000755d0(ctx);\n    }" { (expression_statement "FUN_000755d0(ctx);" (call_expression "FUN_000755d0(ctx)" identifier (argument_list "(ctx)" ( identifier ))) ;) })) })) (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) (expression_statement "ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);" (assignment_expression "ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5)" identifier = (cast_expression "(X509_STORE *)((uint)param_4 | (uint)param_5)" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_4 | (uint)param_5)" ( (binary_expression "(uint)param_4 | (uint)param_5" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)param_5" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }" if (parenthesized_expression "(ctx_00 != (X509_STORE *)0x0)" ( (binary_expression "ctx_00 != (X509_STORE *)0x0" identifier != (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }" { (expression_statement "ctx_00 = X509_STORE_new();" (assignment_expression "ctx_00 = X509_STORE_new()" identifier = (call_expression "X509_STORE_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (if_statement "if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }" if (parenthesized_expression "(ctx_00 != (X509_STORE *)0x0)" ( (binary_expression "ctx_00 != (X509_STORE *)0x0" identifier != (cast_expression "(X509_STORE *)0x0" ( (type_descriptor "X509_STORE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }" { (expression_statement "iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);" (assignment_expression "iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4)" identifier = (call_expression "X509_STORE_load_locations(ctx_00,param_5,param_4)" identifier (argument_list "(ctx_00,param_5,param_4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }" { (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) (expression_statement "SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);" (call_expression "SSL_CTX_ctrl(param_1,0x6b,1,ctx_00)" identifier (argument_list "(param_1,0x6b,1,ctx_00)" ( identifier , number_literal , number_literal , identifier ))) ;) })) })) })) (labeled_statement "LAB_0007c0b3:\n  X509_STORE_free(ctx);" statement_identifier : (expression_statement "X509_STORE_free(ctx);" (call_expression "X509_STORE_free(ctx)" identifier (argument_list "(ctx)" ( identifier ))) ;)) (expression_statement "X509_STORE_free(ctx_00);" (call_expression "X509_STORE_free(ctx_00)" identifier (argument_list "(ctx_00)" ( identifier ))) ;) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT ))) ;) })) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })))
(function_definition "int FUN_0007c080(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)\n\n{\n  X509_STORE *ctx;\n  int iVar1;\n  X509_STORE *ctx_00;\n  \n  ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);\n  if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }\n  iVar1 = 1;\n  ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx);\n  X509_STORE_free(ctx_00);\n  return iVar1;\n}" (primitive_type "int") (function_declarator "FUN_0007c080(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)" (identifier "FUN_0007c080") (parameter_list "(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,\n                undefined4 param_6,int param_7)" (( "(") (parameter_declaration "SSL_CTX *param_1" (type_identifier "SSL_CTX") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "char *param_4" (primitive_type "char") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "char *param_5" (primitive_type "char") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) () ")"))) (compound_statement "{\n  X509_STORE *ctx;\n  int iVar1;\n  X509_STORE *ctx_00;\n  \n  ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);\n  if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }\n  iVar1 = 1;\n  ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);\n  if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }\nLAB_0007c0b3:\n  X509_STORE_free(ctx);\n  X509_STORE_free(ctx_00);\n  return iVar1;\n}" ({ "{") (declaration "X509_STORE *ctx;" (type_identifier "X509_STORE") (pointer_declarator "*ctx" (* "*") (identifier "ctx")) (; ";")) (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "X509_STORE *ctx_00;" (type_identifier "X509_STORE") (pointer_declarator "*ctx_00" (* "*") (identifier "ctx_00")) (; ";")) (expression_statement "ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);" (assignment_expression "ctx = (X509_STORE *)((uint)param_2 | (uint)param_3)" (identifier "ctx") (= "=") (cast_expression "(X509_STORE *)((uint)param_2 | (uint)param_3)" (( "(") (type_descriptor "X509_STORE *" (type_identifier "X509_STORE") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)param_2 | (uint)param_3)" (( "(") (binary_expression "(uint)param_2 | (uint)param_3" (cast_expression "(uint)param_2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_2")) (| "|") (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3"))) () ")")))) (; ";")) (if_statement "if (ctx != (X509_STORE *)0x0) {\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }" (if "if") (parenthesized_expression "(ctx != (X509_STORE *)0x0)" (( "(") (binary_expression "ctx != (X509_STORE *)0x0" (identifier "ctx") (!= "!=") (cast_expression "(X509_STORE *)0x0" (( "(") (type_descriptor "X509_STORE *" (type_identifier "X509_STORE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    ctx = X509_STORE_new();\n    if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }\n    ctx_00 = (X509_STORE *)0x0;\n    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);\n    if (iVar1 == 0) goto LAB_0007c0b3;\n    FUN_000797e0();\n    SSL_CTX_ctrl(param_1,0x6a,1,ctx);\n    if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }\n  }" ({ "{") (expression_statement "ctx = X509_STORE_new();" (assignment_expression "ctx = X509_STORE_new()" (identifier "ctx") (= "=") (call_expression "X509_STORE_new()" (identifier "X509_STORE_new") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (ctx == (X509_STORE *)0x0) {\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }" (if "if") (parenthesized_expression "(ctx == (X509_STORE *)0x0)" (( "(") (binary_expression "ctx == (X509_STORE *)0x0" (identifier "ctx") (== "==") (cast_expression "(X509_STORE *)0x0" (( "(") (type_descriptor "X509_STORE *" (type_identifier "X509_STORE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      ctx_00 = (X509_STORE *)0x0;\n      iVar1 = 0;\n      goto LAB_0007c0b3;\n    }" ({ "{") (expression_statement "ctx_00 = (X509_STORE *)0x0;" (assignment_expression "ctx_00 = (X509_STORE *)0x0" (identifier "ctx_00") (= "=") (cast_expression "(X509_STORE *)0x0" (( "(") (type_descriptor "X509_STORE *" (type_identifier "X509_STORE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0007c0b3;" (goto "goto") (statement_identifier "LAB_0007c0b3") (; ";")) (} "}"))) (expression_statement "ctx_00 = (X509_STORE *)0x0;" (assignment_expression "ctx_00 = (X509_STORE *)0x0" (identifier "ctx_00") (= "=") (cast_expression "(X509_STORE *)0x0" (( "(") (type_descriptor "X509_STORE *" (type_identifier "X509_STORE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);" (assignment_expression "iVar1 = X509_STORE_load_locations(ctx,param_3,param_2)" (identifier "iVar1") (= "=") (call_expression "X509_STORE_load_locations(ctx,param_3,param_2)" (identifier "X509_STORE_load_locations") (argument_list "(ctx,param_3,param_2)" (( "(") (identifier "ctx") (, ",") (identifier "param_3") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) goto LAB_0007c0b3;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007c0b3;" (goto "goto") (statement_identifier "LAB_0007c0b3") (; ";"))) (expression_statement "FUN_000797e0();" (call_expression "FUN_000797e0()" (identifier "FUN_000797e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "SSL_CTX_ctrl(param_1,0x6a,1,ctx);" (call_expression "SSL_CTX_ctrl(param_1,0x6a,1,ctx)" (identifier "SSL_CTX_ctrl") (argument_list "(param_1,0x6a,1,ctx)" (( "(") (identifier "param_1") (, ",") (number_literal "0x6a") (, ",") (number_literal "1") (, ",") (identifier "ctx") () ")"))) (; ";")) (if_statement "if (param_7 != 0) {\n      FUN_000755d0(ctx);\n    }" (if "if") (parenthesized_expression "(param_7 != 0)" (( "(") (binary_expression "param_7 != 0" (identifier "param_7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000755d0(ctx);\n    }" ({ "{") (expression_statement "FUN_000755d0(ctx);" (call_expression "FUN_000755d0(ctx)" (identifier "FUN_000755d0") (argument_list "(ctx)" (( "(") (identifier "ctx") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" (identifier "iVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);" (assignment_expression "ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5)" (identifier "ctx_00") (= "=") (cast_expression "(X509_STORE *)((uint)param_4 | (uint)param_5)" (( "(") (type_descriptor "X509_STORE *" (type_identifier "X509_STORE") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)param_4 | (uint)param_5)" (( "(") (binary_expression "(uint)param_4 | (uint)param_5" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (| "|") (cast_expression "(uint)param_5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_5"))) () ")")))) (; ";")) (if_statement "if (ctx_00 != (X509_STORE *)0x0) {\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(ctx_00 != (X509_STORE *)0x0)" (( "(") (binary_expression "ctx_00 != (X509_STORE *)0x0" (identifier "ctx_00") (!= "!=") (cast_expression "(X509_STORE *)0x0" (( "(") (type_descriptor "X509_STORE *" (type_identifier "X509_STORE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    ctx_00 = X509_STORE_new();\n    iVar1 = 0;\n    if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }\n  }" ({ "{") (expression_statement "ctx_00 = X509_STORE_new();" (assignment_expression "ctx_00 = X509_STORE_new()" (identifier "ctx_00") (= "=") (call_expression "X509_STORE_new()" (identifier "X509_STORE_new") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (if_statement "if (ctx_00 != (X509_STORE *)0x0) {\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }" (if "if") (parenthesized_expression "(ctx_00 != (X509_STORE *)0x0)" (( "(") (binary_expression "ctx_00 != (X509_STORE *)0x0" (identifier "ctx_00") (!= "!=") (cast_expression "(X509_STORE *)0x0" (( "(") (type_descriptor "X509_STORE *" (type_identifier "X509_STORE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);\n      if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }\n    }" ({ "{") (expression_statement "iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);" (assignment_expression "iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4)" (identifier "iVar1") (= "=") (call_expression "X509_STORE_load_locations(ctx_00,param_5,param_4)" (identifier "X509_STORE_load_locations") (argument_list "(ctx_00,param_5,param_4)" (( "(") (identifier "ctx_00") (, ",") (identifier "param_5") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar1 = 1;\n        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);\n      }" ({ "{") (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" (identifier "iVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);" (call_expression "SSL_CTX_ctrl(param_1,0x6b,1,ctx_00)" (identifier "SSL_CTX_ctrl") (argument_list "(param_1,0x6b,1,ctx_00)" (( "(") (identifier "param_1") (, ",") (number_literal "0x6b") (, ",") (number_literal "1") (, ",") (identifier "ctx_00") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0007c0b3:\n  X509_STORE_free(ctx);" (statement_identifier "LAB_0007c0b3") (: ":") (expression_statement "X509_STORE_free(ctx);" (call_expression "X509_STORE_free(ctx)" (identifier "X509_STORE_free") (argument_list "(ctx)" (( "(") (identifier "ctx") () ")"))) (; ";"))) (expression_statement "X509_STORE_free(ctx_00);" (call_expression "X509_STORE_free(ctx_00)" (identifier "X509_STORE_free") (argument_list "(ctx_00)" (( "(") (identifier "ctx_00") () ")"))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}")))

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

int function_1(type_1 *ctx,char *vfyCApath,char *vfyCAfile,char *chCApath,char *chCAfile,
                   type_2 *crls,int var_7)

{
  type_3 *var_1;
  int var_4;
  type_3 *var_9;
  
  var_1 = (type_3 *)((type_4)vfyCApath | (type_4)vfyCAfile);
  if (var_1 != (type_3 *)0x0) {
    var_1 = var_2();
    if (var_1 == (type_3 *)0x0) {
      var_9 = (type_3 *)0x0;
      var_4 = 0;
      goto LAB_0007c0b3;
    }
    var_9 = (type_3 *)0x0;
    var_4 = var_3(var_1,vfyCAfile,vfyCApath);
    if (var_4 == 0) goto LAB_0007c0b3;
    var_5((type_3 *)var_1,crls);
    var_6((type_1 *)ctx,0x6a,1,var_1);
    if (var_7 != 0) {
      var_8((type_3 *)var_1);
    }
  }
  var_4 = 1;
  var_9 = (type_3 *)((type_4)chCApath | (type_4)chCAfile);
  if (var_9 != (type_3 *)0x0) {
    var_9 = var_2();
    var_4 = 0;
    if (var_9 != (type_3 *)0x0) {
      var_4 = var_3(var_9,chCAfile,chCApath);
      if (var_4 != 0) {
        var_4 = 1;
        var_6((type_1 *)ctx,0x6b,1,var_9);
      }
    }
  }
LAB_0007c0b3:
  var_10(var_1);
  var_10(var_9);
  return var_4;
}


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

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

int MASKED(SSL_CTX *param_1,char *param_2,char *param_3,char *param_4,char *param_5,
                undefined4 param_6,int param_7)

{
  X509_STORE *ctx;
  int iVar1;
  X509_STORE *ctx_00;
  
  ctx = (X509_STORE *)((uint)param_2 | (uint)param_3);
  if (ctx != (X509_STORE *)0x0) {
    ctx = X509_STORE_new();
    if (ctx == (X509_STORE *)0x0) {
      ctx_00 = (X509_STORE *)0x0;
      iVar1 = 0;
      goto LAB_0007c0b3;
    }
    ctx_00 = (X509_STORE *)0x0;
    iVar1 = X509_STORE_load_locations(ctx,param_3,param_2);
    if (iVar1 == 0) goto LAB_0007c0b3;
    FUN_000797e0();
    SSL_CTX_ctrl(param_1,0x6a,1,ctx);
    if (param_7 != 0) {
      FUN_000755d0(ctx);
    }
  }
  iVar1 = 1;
  ctx_00 = (X509_STORE *)((uint)param_4 | (uint)param_5);
  if (ctx_00 != (X509_STORE *)0x0) {
    ctx_00 = X509_STORE_new();
    iVar1 = 0;
    if (ctx_00 != (X509_STORE *)0x0) {
      iVar1 = X509_STORE_load_locations(ctx_00,param_5,param_4);
      if (iVar1 != 0) {
        iVar1 = 1;
        SSL_CTX_ctrl(param_1,0x6b,1,ctx_00);
      }
    }
  }
LAB_0007c0b3:
  X509_STORE_free(ctx);
  X509_STORE_free(ctx_00);
  return iVar1;
}

