
void bad_record_die(tls_state_t *tls,char *expected,int len)

{
  uint8_t *puVar1;
  char *pcVar2;
  uint8_t *puVar3;
  uint8_t *puVar4;
  
  bb_error_msg("got bad TLS record (len:%d) while expecting %s",(ulong)(uint)len,expected);
  if (0 < len) {
    puVar1 = tls->inbuf;
    if (99 < len) {
      len = 99;
    }
    puVar4 = puVar1;
    do {
      puVar3 = puVar4 + 1;
      __fprintf_chk(stderr,1,&DAT_001b9d7a,*puVar4);
      puVar4 = puVar3;
    } while (puVar3 != puVar1 + (ulong)(len - 1) + 1);
    pcVar2 = stderr->_IO_write_ptr;
    if (pcVar2 < stderr->_IO_write_end) {
      stderr->_IO_write_ptr = pcVar2 + 1;
      *pcVar2 = '\n';
    }
    else {
      __overflow(stderr,10);
    }
  }
                    /* WARNING: Subroutine does not return */
  xfunc_die();
}



void FUN_0012ef05(long param_1,undefined8 param_2,int param_3)

{
  undefined1 *puVar1;
  char *pcVar2;
  undefined1 *puVar3;
  undefined1 *puVar4;
  
  FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);
  if (0 < param_3) {
    puVar1 = *(undefined1 **)(param_1 + 0x38);
    if (99 < param_3) {
      param_3 = 99;
    }
    puVar4 = puVar1;
    do {
      puVar3 = puVar4 + 1;
      __fprintf_chk(stderr,1," %02x",*puVar4);
      puVar4 = puVar3;
    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);
    pcVar2 = stderr->_IO_write_ptr;
    if (pcVar2 < stderr->_IO_write_end) {
      stderr->_IO_write_ptr = pcVar2 + 1;
      *pcVar2 = '\n';
    }
    else {
      __overflow(stderr,10);
    }
  }
                    /* WARNING: Subroutine does not return */
  FUN_0010de6a();
}


PUSH R12
PUSH RBP
PUSH RBX
MOV RBP,RDI
MOV EBX,EDX
MOV RDX,RSI
MOV ESI,EBX
LEA RDI,[0x1aaf98]
MOV EAX,0x0
CALL 0x0010dcf3
TEST EBX,EBX
JLE 0x0012ef87
MOV RBP,qword ptr [RBP + 0x38]
CMP EBX,0x63
MOV EAX,0x63
CMOVG EBX,EAX
LEA EAX,[RBX + -0x1]
LEA R12,[RBP + RAX*0x1 + 0x1]
LEA RBX,[0x1b9d7a]
ADD RBP,0x1
MOVZX ECX,byte ptr [RBP + -0x1]
MOV RDX,RBX
MOV ESI,0x1
MOV RDI,qword ptr [0x001c6320]
MOV EAX,0x0
CALL 0x0010c3a0
CMP RBP,R12
JNZ 0x0012ef46
MOV RDI,qword ptr [0x001c6320]
MOV RAX,qword ptr [RDI + 0x28]
CMP RAX,qword ptr [RDI + 0x30]
JC 0x0012ef8c
MOV ESI,0xa
CALL 0x0010b5f0
CALL 0x0010de6a
LEA RDX,[RAX + 0x1]
MOV qword ptr [RDI + 0x28],RDX
MOV byte ptr [RAX],0xa
JMP 0x0012ef87
(translation_unit "void FUN_0012ef05(long param_1,undefined8 param_2,int param_3)\n\n{\n  undefined1 *puVar1;\n  char *pcVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  \n  FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);\n  if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0010de6a();\n}\n\n" (function_definition "void FUN_0012ef05(long param_1,undefined8 param_2,int param_3)\n\n{\n  undefined1 *puVar1;\n  char *pcVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  \n  FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);\n  if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0010de6a();\n}" primitive_type (function_declarator "FUN_0012ef05(long param_1,undefined8 param_2,int param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,int param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined1 *puVar1;\n  char *pcVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  \n  FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);\n  if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0010de6a();\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);" (call_expression "FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2)" identifier (argument_list "("got bad TLS record (len:%d) while expecting %s",param_3,param_2)" ( (string_literal ""got bad TLS record (len:%d) while expecting %s"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }" if (parenthesized_expression "(0 < param_3)" ( (binary_expression "0 < param_3" number_literal < identifier) )) (compound_statement "{\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }" { (expression_statement "puVar1 = *(undefined1 **)(param_1 + 0x38);" (assignment_expression "puVar1 = *(undefined1 **)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 0x38)" * (cast_expression "(undefined1 **)(param_1 + 0x38)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (99 < param_3) {\n      param_3 = 99;\n    }" if (parenthesized_expression "(99 < param_3)" ( (binary_expression "99 < param_3" number_literal < identifier) )) (compound_statement "{\n      param_3 = 99;\n    }" { (expression_statement "param_3 = 99;" (assignment_expression "param_3 = 99" identifier = number_literal) ;) })) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (do_statement "do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);" do (compound_statement "{\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    }" { (expression_statement "puVar3 = puVar4 + 1;" (assignment_expression "puVar3 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "__fprintf_chk(stderr,1," %02x",*puVar4);" (call_expression "__fprintf_chk(stderr,1," %02x",*puVar4)" identifier (argument_list "(stderr,1," %02x",*puVar4)" ( identifier , number_literal , (string_literal "" %02x"" " string_content ") , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) }) while (parenthesized_expression "(puVar3 != puVar1 + (ulong)(param_3 - 1) + 1)" ( (binary_expression "puVar3 != puVar1 + (ulong)(param_3 - 1) + 1" identifier != (binary_expression "puVar1 + (ulong)(param_3 - 1) + 1" (binary_expression "puVar1 + (ulong)(param_3 - 1)" identifier + (call_expression "(ulong)(param_3 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_3 - 1)" ( (binary_expression "param_3 - 1" identifier - number_literal) )))) + number_literal)) )) ;) (expression_statement "pcVar2 = stderr->_IO_write_ptr;" (assignment_expression "pcVar2 = stderr->_IO_write_ptr" identifier = (field_expression "stderr->_IO_write_ptr" identifier -> field_identifier)) ;) (if_statement "if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }" if (parenthesized_expression "(pcVar2 < stderr->_IO_write_end)" ( (binary_expression "pcVar2 < stderr->_IO_write_end" identifier < (field_expression "stderr->_IO_write_end" identifier -> field_identifier)) )) (compound_statement "{\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }" { (expression_statement "stderr->_IO_write_ptr = pcVar2 + 1;" (assignment_expression "stderr->_IO_write_ptr = pcVar2 + 1" (field_expression "stderr->_IO_write_ptr" identifier -> field_identifier) = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar2 = '\n';" (assignment_expression "*pcVar2 = '\n'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\n'" ' escape_sequence ')) ;) }) (else_clause "else {\n      __overflow(stderr,10);\n    }" else (compound_statement "{\n      __overflow(stderr,10);\n    }" { (expression_statement "__overflow(stderr,10);" (call_expression "__overflow(stderr,10)" identifier (argument_list "(stderr,10)" ( identifier , number_literal ))) ;) }))) })) comment (expression_statement "FUN_0010de6a();" (call_expression "FUN_0010de6a()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void bad_record_die(tls_state_t *tls,char *expected,int len)\n\n{\n  uint8_t *puVar1;\n  char *pcVar2;\n  uint8_t *puVar3;\n  uint8_t *puVar4;\n  \n  bb_error_msg("got bad TLS record (len:%d) while expecting %s",(ulong)(uint)len,expected);\n  if (0 < len) {\n    puVar1 = tls->inbuf;\n    if (99 < len) {\n      len = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1,&DAT_001b9d7a,*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(len - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  xfunc_die();\n}\n\n" (function_definition "void bad_record_die(tls_state_t *tls,char *expected,int len)\n\n{\n  uint8_t *puVar1;\n  char *pcVar2;\n  uint8_t *puVar3;\n  uint8_t *puVar4;\n  \n  bb_error_msg("got bad TLS record (len:%d) while expecting %s",(ulong)(uint)len,expected);\n  if (0 < len) {\n    puVar1 = tls->inbuf;\n    if (99 < len) {\n      len = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1,&DAT_001b9d7a,*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(len - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  xfunc_die();\n}" primitive_type (function_declarator "bad_record_die(tls_state_t *tls,char *expected,int len)" identifier (parameter_list "(tls_state_t *tls,char *expected,int len)" ( (parameter_declaration "tls_state_t *tls" type_identifier (pointer_declarator "*tls" * identifier)) , (parameter_declaration "char *expected" primitive_type (pointer_declarator "*expected" * identifier)) , (parameter_declaration "int len" primitive_type identifier) ))) (compound_statement "{\n  uint8_t *puVar1;\n  char *pcVar2;\n  uint8_t *puVar3;\n  uint8_t *puVar4;\n  \n  bb_error_msg("got bad TLS record (len:%d) while expecting %s",(ulong)(uint)len,expected);\n  if (0 < len) {\n    puVar1 = tls->inbuf;\n    if (99 < len) {\n      len = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1,&DAT_001b9d7a,*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(len - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  xfunc_die();\n}" { (declaration "uint8_t *puVar1;" primitive_type (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint8_t *puVar3;" primitive_type (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint8_t *puVar4;" primitive_type (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "bb_error_msg("got bad TLS record (len:%d) while expecting %s",(ulong)(uint)len,expected);" (call_expression "bb_error_msg("got bad TLS record (len:%d) while expecting %s",(ulong)(uint)len,expected)" identifier (argument_list "("got bad TLS record (len:%d) while expecting %s",(ulong)(uint)len,expected)" ( (string_literal ""got bad TLS record (len:%d) while expecting %s"" " string_content ") , (cast_expression "(ulong)(uint)len" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)len" ( (type_descriptor "uint" type_identifier) ) identifier)) , identifier ))) ;) (if_statement "if (0 < len) {\n    puVar1 = tls->inbuf;\n    if (99 < len) {\n      len = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1,&DAT_001b9d7a,*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(len - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }" if (parenthesized_expression "(0 < len)" ( (binary_expression "0 < len" number_literal < identifier) )) (compound_statement "{\n    puVar1 = tls->inbuf;\n    if (99 < len) {\n      len = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1,&DAT_001b9d7a,*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(len - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }" { (expression_statement "puVar1 = tls->inbuf;" (assignment_expression "puVar1 = tls->inbuf" identifier = (field_expression "tls->inbuf" identifier -> field_identifier)) ;) (if_statement "if (99 < len) {\n      len = 99;\n    }" if (parenthesized_expression "(99 < len)" ( (binary_expression "99 < len" number_literal < identifier) )) (compound_statement "{\n      len = 99;\n    }" { (expression_statement "len = 99;" (assignment_expression "len = 99" identifier = number_literal) ;) })) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (do_statement "do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1,&DAT_001b9d7a,*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(len - 1) + 1);" do (compound_statement "{\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1,&DAT_001b9d7a,*puVar4);\n      puVar4 = puVar3;\n    }" { (expression_statement "puVar3 = puVar4 + 1;" (assignment_expression "puVar3 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "__fprintf_chk(stderr,1,&DAT_001b9d7a,*puVar4);" (call_expression "__fprintf_chk(stderr,1,&DAT_001b9d7a,*puVar4)" identifier (argument_list "(stderr,1,&DAT_001b9d7a,*puVar4)" ( identifier , number_literal , (pointer_expression "&DAT_001b9d7a" & identifier) , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) }) while (parenthesized_expression "(puVar3 != puVar1 + (ulong)(len - 1) + 1)" ( (binary_expression "puVar3 != puVar1 + (ulong)(len - 1) + 1" identifier != (binary_expression "puVar1 + (ulong)(len - 1) + 1" (binary_expression "puVar1 + (ulong)(len - 1)" identifier + (call_expression "(ulong)(len - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(len - 1)" ( (binary_expression "len - 1" identifier - number_literal) )))) + number_literal)) )) ;) (expression_statement "pcVar2 = stderr->_IO_write_ptr;" (assignment_expression "pcVar2 = stderr->_IO_write_ptr" identifier = (field_expression "stderr->_IO_write_ptr" identifier -> field_identifier)) ;) (if_statement "if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }" if (parenthesized_expression "(pcVar2 < stderr->_IO_write_end)" ( (binary_expression "pcVar2 < stderr->_IO_write_end" identifier < (field_expression "stderr->_IO_write_end" identifier -> field_identifier)) )) (compound_statement "{\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }" { (expression_statement "stderr->_IO_write_ptr = pcVar2 + 1;" (assignment_expression "stderr->_IO_write_ptr = pcVar2 + 1" (field_expression "stderr->_IO_write_ptr" identifier -> field_identifier) = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar2 = '\n';" (assignment_expression "*pcVar2 = '\n'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\n'" ' escape_sequence ')) ;) }) (else_clause "else {\n      __overflow(stderr,10);\n    }" else (compound_statement "{\n      __overflow(stderr,10);\n    }" { (expression_statement "__overflow(stderr,10);" (call_expression "__overflow(stderr,10)" identifier (argument_list "(stderr,10)" ( identifier , number_literal ))) ;) }))) })) comment (expression_statement "xfunc_die();" (call_expression "xfunc_die()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_0012ef05(long param_1,undefined8 param_2,int param_3)\n\n{\n  undefined1 *puVar1;\n  char *pcVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  \n  FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);\n  if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    \n  FUN_0010de6a();\n}\n\n" (function_definition "void FUN_0012ef05(long param_1,undefined8 param_2,int param_3)\n\n{\n  undefined1 *puVar1;\n  char *pcVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  \n  FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);\n  if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    \n  FUN_0010de6a();\n}" primitive_type (function_declarator "FUN_0012ef05(long param_1,undefined8 param_2,int param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,int param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined1 *puVar1;\n  char *pcVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  \n  FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);\n  if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    \n  FUN_0010de6a();\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);" (call_expression "FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2)" identifier (argument_list "("got bad TLS record (len:%d) while expecting %s",param_3,param_2)" ( (string_literal ""got bad TLS record (len:%d) while expecting %s"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }" if (parenthesized_expression "(0 < param_3)" ( (binary_expression "0 < param_3" number_literal < identifier) )) (compound_statement "{\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }" { (expression_statement "puVar1 = *(undefined1 **)(param_1 + 0x38);" (assignment_expression "puVar1 = *(undefined1 **)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 0x38)" * (cast_expression "(undefined1 **)(param_1 + 0x38)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (99 < param_3) {\n      param_3 = 99;\n    }" if (parenthesized_expression "(99 < param_3)" ( (binary_expression "99 < param_3" number_literal < identifier) )) (compound_statement "{\n      param_3 = 99;\n    }" { (expression_statement "param_3 = 99;" (assignment_expression "param_3 = 99" identifier = number_literal) ;) })) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (do_statement "do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);" do (compound_statement "{\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    }" { (expression_statement "puVar3 = puVar4 + 1;" (assignment_expression "puVar3 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "__fprintf_chk(stderr,1," %02x",*puVar4);" (call_expression "__fprintf_chk(stderr,1," %02x",*puVar4)" identifier (argument_list "(stderr,1," %02x",*puVar4)" ( identifier , number_literal , (string_literal "" %02x"" " string_content ") , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) }) while (parenthesized_expression "(puVar3 != puVar1 + (ulong)(param_3 - 1) + 1)" ( (binary_expression "puVar3 != puVar1 + (ulong)(param_3 - 1) + 1" identifier != (binary_expression "puVar1 + (ulong)(param_3 - 1) + 1" (binary_expression "puVar1 + (ulong)(param_3 - 1)" identifier + (call_expression "(ulong)(param_3 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_3 - 1)" ( (binary_expression "param_3 - 1" identifier - number_literal) )))) + number_literal)) )) ;) (expression_statement "pcVar2 = stderr->_IO_write_ptr;" (assignment_expression "pcVar2 = stderr->_IO_write_ptr" identifier = (field_expression "stderr->_IO_write_ptr" identifier -> field_identifier)) ;) (if_statement "if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }" if (parenthesized_expression "(pcVar2 < stderr->_IO_write_end)" ( (binary_expression "pcVar2 < stderr->_IO_write_end" identifier < (field_expression "stderr->_IO_write_end" identifier -> field_identifier)) )) (compound_statement "{\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }" { (expression_statement "stderr->_IO_write_ptr = pcVar2 + 1;" (assignment_expression "stderr->_IO_write_ptr = pcVar2 + 1" (field_expression "stderr->_IO_write_ptr" identifier -> field_identifier) = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar2 = '\n';" (assignment_expression "*pcVar2 = '\n'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\n'" ' escape_sequence ')) ;) }) (else_clause "else {\n      __overflow(stderr,10);\n    }" else (compound_statement "{\n      __overflow(stderr,10);\n    }" { (expression_statement "__overflow(stderr,10);" (call_expression "__overflow(stderr,10)" identifier (argument_list "(stderr,10)" ( identifier , number_literal ))) ;) }))) })) (expression_statement "FUN_0010de6a();" (call_expression "FUN_0010de6a()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT -> field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (field_expression IDENT -> field_identifier)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }))) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_0012ef05(long param_1,undefined8 param_2,int param_3)\n\n{\n  undefined1 *puVar1;\n  char *pcVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  \n  FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);\n  if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    \n  FUN_0010de6a();\n}" (primitive_type "void") (function_declarator "FUN_0012ef05(long param_1,undefined8 param_2,int param_3)" (identifier "FUN_0012ef05") (parameter_list "(long param_1,undefined8 param_2,int param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined1 *puVar1;\n  char *pcVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  \n  FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);\n  if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }\n                    \n  FUN_0010de6a();\n}" ({ "{") (declaration "undefined1 *puVar1;" (type_identifier "undefined1") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined1 *puVar4;" (type_identifier "undefined1") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (expression_statement "FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);" (call_expression "FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2)" (identifier "FUN_0010dcf3") (argument_list "("got bad TLS record (len:%d) while expecting %s",param_3,param_2)" (( "(") (string_literal ""got bad TLS record (len:%d) while expecting %s"" (" """) (string_content "got bad TLS record (len:%d) while expecting %s") (" """)) (, ",") (identifier "param_3") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (0 < param_3) {\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }" (if "if") (parenthesized_expression "(0 < param_3)" (( "(") (binary_expression "0 < param_3" (number_literal "0") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n    puVar1 = *(undefined1 **)(param_1 + 0x38);\n    if (99 < param_3) {\n      param_3 = 99;\n    }\n    puVar4 = puVar1;\n    do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);\n    pcVar2 = stderr->_IO_write_ptr;\n    if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }\n  }" ({ "{") (expression_statement "puVar1 = *(undefined1 **)(param_1 + 0x38);" (assignment_expression "puVar1 = *(undefined1 **)(param_1 + 0x38)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined1 **)(param_1 + 0x38)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x38)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (99 < param_3) {\n      param_3 = 99;\n    }" (if "if") (parenthesized_expression "(99 < param_3)" (( "(") (binary_expression "99 < param_3" (number_literal "99") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n      param_3 = 99;\n    }" ({ "{") (expression_statement "param_3 = 99;" (assignment_expression "param_3 = 99" (identifier "param_3") (= "=") (number_literal "99")) (; ";")) (} "}"))) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" (identifier "puVar4") (= "=") (identifier "puVar1")) (; ";")) (do_statement "do {\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);" (do "do") (compound_statement "{\n      puVar3 = puVar4 + 1;\n      __fprintf_chk(stderr,1," %02x",*puVar4);\n      puVar4 = puVar3;\n    }" ({ "{") (expression_statement "puVar3 = puVar4 + 1;" (assignment_expression "puVar3 = puVar4 + 1" (identifier "puVar3") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__fprintf_chk(stderr,1," %02x",*puVar4);" (call_expression "__fprintf_chk(stderr,1," %02x",*puVar4)" (identifier "__fprintf_chk") (argument_list "(stderr,1," %02x",*puVar4)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal "" %02x"" (" """) (string_content " %02x") (" """)) (, ",") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")"))) (; ";")) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" (identifier "puVar4") (= "=") (identifier "puVar3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar3 != puVar1 + (ulong)(param_3 - 1) + 1)" (( "(") (binary_expression "puVar3 != puVar1 + (ulong)(param_3 - 1) + 1" (identifier "puVar3") (!= "!=") (binary_expression "puVar1 + (ulong)(param_3 - 1) + 1" (binary_expression "puVar1 + (ulong)(param_3 - 1)" (identifier "puVar1") (+ "+") (call_expression "(ulong)(param_3 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_3 - 1)" (( "(") (binary_expression "param_3 - 1" (identifier "param_3") (- "-") (number_literal "1")) () ")")))) (+ "+") (number_literal "1"))) () ")")) (; ";")) (expression_statement "pcVar2 = stderr->_IO_write_ptr;" (assignment_expression "pcVar2 = stderr->_IO_write_ptr" (identifier "pcVar2") (= "=") (field_expression "stderr->_IO_write_ptr" (identifier "stderr") (-> "->") (field_identifier "_IO_write_ptr"))) (; ";")) (if_statement "if (pcVar2 < stderr->_IO_write_end) {\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }\n    else {\n      __overflow(stderr,10);\n    }" (if "if") (parenthesized_expression "(pcVar2 < stderr->_IO_write_end)" (( "(") (binary_expression "pcVar2 < stderr->_IO_write_end" (identifier "pcVar2") (< "<") (field_expression "stderr->_IO_write_end" (identifier "stderr") (-> "->") (field_identifier "_IO_write_end"))) () ")")) (compound_statement "{\n      stderr->_IO_write_ptr = pcVar2 + 1;\n      *pcVar2 = '\n';\n    }" ({ "{") (expression_statement "stderr->_IO_write_ptr = pcVar2 + 1;" (assignment_expression "stderr->_IO_write_ptr = pcVar2 + 1" (field_expression "stderr->_IO_write_ptr" (identifier "stderr") (-> "->") (field_identifier "_IO_write_ptr")) (= "=") (binary_expression "pcVar2 + 1" (identifier "pcVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar2 = '\n';" (assignment_expression "*pcVar2 = '\n'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n      __overflow(stderr,10);\n    }" (else "else") (compound_statement "{\n      __overflow(stderr,10);\n    }" ({ "{") (expression_statement "__overflow(stderr,10);" (call_expression "__overflow(stderr,10)" (identifier "__overflow") (argument_list "(stderr,10)" (( "(") (identifier "stderr") (, ",") (number_literal "10") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "FUN_0010de6a();" (call_expression "FUN_0010de6a()" (identifier "FUN_0010de6a") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

void function_1(type_1 *tls,char *expected,int var_2)

{
  uint8_t *var_6;
  char *var_7;
  uint8_t *var_5;
  uint8_t *var_3;
  
  var_1("got bad TLS record (len:%d) while expecting %s",(type_2)(type_3)var_2,expected);
  if (0 < var_2) {
    var_6 = tls->inbuf;
    if (99 < var_2) {
      var_2 = 99;
    }
    var_3 = var_6;
    do {
      var_5 = var_3 + 1;
      var_4(stderr,1,&DAT_001b9d7a,*var_3);
      var_3 = var_5;
    } while (var_5 != var_6 + (type_2)(var_2 - 1) + 1);
    var_7 = stderr->_IO_write_ptr;
    if (var_7 < stderr->_IO_write_end) {
      stderr->_IO_write_ptr = var_7 + 1;
      *var_7 = '\n';
    }
    else {
      var_8(stderr,10);
    }
  }
                    /* WARNING: Subroutine does not return */
  var_9();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content)) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(long param_1,undefined8 param_2,int param_3)

{
  undefined1 *puVar1;
  char *pcVar2;
  undefined1 *puVar3;
  undefined1 *puVar4;
  
  FUN_0010dcf3("got bad TLS record (len:%d) while expecting %s",param_3,param_2);
  if (0 < param_3) {
    puVar1 = *(undefined1 **)(param_1 + 0x38);
    if (99 < param_3) {
      param_3 = 99;
    }
    puVar4 = puVar1;
    do {
      puVar3 = puVar4 + 1;
      __fprintf_chk(stderr,1," %02x",*puVar4);
      puVar4 = puVar3;
    } while (puVar3 != puVar1 + (ulong)(param_3 - 1) + 1);
    pcVar2 = stderr->_IO_write_ptr;
    if (pcVar2 < stderr->_IO_write_end) {
      stderr->_IO_write_ptr = pcVar2 + 1;
      *pcVar2 = '\n';
    }
    else {
      __overflow(stderr,10);
    }
  }
                    /* WARNING: Subroutine does not return */
  FUN_0010de6a();
}

