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

char * __regparm3 time_zone_str(int time_zone,char *time_zone_buf)

{
  char *pcVar1;
  char cVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  
  uVar5 = time_zone / 0xe10 >> 0x1f;
  iVar3 = __sprintf_chk(time_zone_buf,1,0xffffffff,"%c%02d",(time_zone >> 0x1f & 2U) + 0x2b,
                        (uVar5 ^ time_zone / 0xe10) - uVar5);
  uVar5 = time_zone % 0xe10;
  if (uVar5 != 0) {
    pcVar1 = time_zone_buf + iVar3;
    *pcVar1 = ':';
    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);
    pcVar1[1] = (char)(uVar5 / 600) + '0';
    uVar4 = uVar5 % 0x3c;
    pcVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';
    if (uVar4 == 0) {
      pcVar1[3] = '\0';
    }
    else {
      pcVar1[3] = ':';
      cVar2 = (char)(uVar4 / 10);
      pcVar1[4] = cVar2 + '0';
      pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0';
      pcVar1[6] = '\0';
    }
  }
  return time_zone_buf;
}



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

int __regparm3 FUN_00029d30(int param_1,int param_2)

{
  undefined1 *puVar1;
  char cVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  
  uVar5 = param_1 / 0xe10 >> 0x1f;
  iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,
                        (uVar5 ^ param_1 / 0xe10) - uVar5);
  uVar5 = param_1 % 0xe10;
  if (uVar5 != 0) {
    puVar1 = (undefined1 *)(param_2 + iVar3);
    *puVar1 = 0x3a;
    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);
    puVar1[1] = (char)(uVar5 / 600) + '0';
    uVar4 = uVar5 % 0x3c;
    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';
    if (uVar4 == 0) {
      puVar1[3] = 0;
    }
    else {
      puVar1[3] = 0x3a;
      cVar2 = (char)(uVar4 / 10);
      puVar1[4] = cVar2 + '0';
      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';
      puVar1[6] = 0;
    }
  }
  return param_2;
}


PUSH EBP
MOV ECX,EAX
PUSH EDI
MOV EDI,EDX
MOV EDX,0x91a2b3c5
SAR ECX,0x1f
PUSH ESI
MOV ESI,EAX
IMUL EDX
AND ECX,0x2
MOV EAX,ESI
PUSH EBX
ADD ECX,0x2b
CALL 0x00014d70
ADD EBX,0x40f97
SAR EAX,0x1f
LEA EBP,[EDX + ESI*0x1]
SAR EBP,0xb
SUB ESP,0x24
SUB EBP,EAX
MOV EDX,EBP
SAR EDX,0x1f
MOV EAX,EDX
XOR EAX,EBP
IMUL EBP,EBP,0xe10
SUB EAX,EDX
PUSH EAX
LEA EAX,[EBX + 0xfffe86b6]
PUSH ECX
PUSH EAX
PUSH -0x1
PUSH 0x1
PUSH EDI
CALL 0x000149c0
ADD ESP,0x20
SUB ESI,EBP
JZ 0x00029df6
MOV ECX,ESI
LEA ESI,[EDI + EAX*0x1]
MOV EBX,0x88888889
MOV EAX,ECX
MOV byte ptr [ESI],0x3a
SAR EAX,0x1f
XOR ECX,EAX
SUB ECX,EAX
MOV EAX,ECX
MUL EBX
MOV EBX,EDX
MOV EBP,EDX
MOV EDX,0x1b4e81b5
SHR EBX,0x5
IMUL EAX,EBX,0x3c
MOV EBX,EBP
MOV EBP,0xcccccccd
SHR EBX,0x5
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,ECX
MUL EDX
MOV EAX,EBX
SHR EDX,0x6
ADD EDX,0x30
MOV byte ptr [ESI + 0x1],DL
MUL EBP
SHR EDX,0x3
LEA EAX,[EDX + EDX*0x4]
ADD EAX,EAX
SUB EBX,EAX
LEA EAX,[ESI + 0x3]
ADD EBX,0x30
SUB ECX,dword ptr [ESP + 0xc]
MOV byte ptr [ESI + 0x2],BL
MOV EBX,ECX
JNZ 0x00029e00
MOV byte ptr [EAX],0x0
ADD ESP,0x1c
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,ECX
MOV byte ptr [ESI + 0x3],0x3a
MUL EBP
SHR EDX,0x3
LEA EAX,[EDX + 0x30]
LEA EDX,[EDX + EDX*0x4]
ADD EDX,EDX
MOV byte ptr [ESI + 0x4],AL
LEA EAX,[ESI + 0x6]
SUB EBX,EDX
ADD EBX,0x30
MOV byte ptr [ESI + 0x5],BL
MOV byte ptr [EAX],0x0
JMP 0x00029df6
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_00029d30(int param_1,int param_2)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = param_1 / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);\n  uVar5 = param_1 % 0xe10;\n  if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }\n  return param_2;\n}\n\n" comment (function_definition "int __regparm3 FUN_00029d30(int param_1,int param_2)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = param_1 / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);\n  uVar5 = param_1 % 0xe10;\n  if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }\n  return param_2;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00029d30(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = param_1 / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);\n  uVar5 = param_1 % 0xe10;\n  if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }\n  return param_2;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "uVar5 = param_1 / 0xe10 >> 0x1f;" (assignment_expression "uVar5 = param_1 / 0xe10 >> 0x1f" identifier = (binary_expression "param_1 / 0xe10 >> 0x1f" (binary_expression "param_1 / 0xe10" identifier / number_literal) >> number_literal)) ;) (expression_statement "iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);" (assignment_expression "iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5)" identifier = (call_expression "__sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5)" identifier (argument_list "(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5)" ( identifier , number_literal , number_literal , (string_literal ""%c%02d"" " string_content ") , (binary_expression "(param_1 >> 0x1f & 2U) + 0x2b" (parenthesized_expression "(param_1 >> 0x1f & 2U)" ( (binary_expression "param_1 >> 0x1f & 2U" (binary_expression "param_1 >> 0x1f" identifier >> number_literal) & number_literal) )) + number_literal) , (binary_expression "(uVar5 ^ param_1 / 0xe10) - uVar5" (parenthesized_expression "(uVar5 ^ param_1 / 0xe10)" ( (binary_expression "uVar5 ^ param_1 / 0xe10" identifier ^ (binary_expression "param_1 / 0xe10" identifier / number_literal)) )) - identifier) )))) ;) (expression_statement "uVar5 = param_1 % 0xe10;" (assignment_expression "uVar5 = param_1 % 0xe10" identifier = (binary_expression "param_1 % 0xe10" identifier % number_literal)) ;) (if_statement "if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }" { (expression_statement "puVar1 = (undefined1 *)(param_2 + iVar3);" (assignment_expression "puVar1 = (undefined1 *)(param_2 + iVar3)" identifier = (cast_expression "(undefined1 *)(param_2 + iVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar3)" ( (binary_expression "param_2 + iVar3" identifier + identifier) )))) ;) (expression_statement "*puVar1 = 0x3a;" (assignment_expression "*puVar1 = 0x3a" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);" (assignment_expression "uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f)" identifier = (binary_expression "(uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f)" (parenthesized_expression "(uVar5 ^ (int)uVar5 >> 0x1f)" ( (binary_expression "uVar5 ^ (int)uVar5 >> 0x1f" identifier ^ (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)uVar5 >> 0x1f)" ( (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar1[1] = (char)(uVar5 / 600) + '0';" (assignment_expression "puVar1[1] = (char)(uVar5 / 600) + '0'" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (binary_expression "(char)(uVar5 / 600) + '0'" (cast_expression "(char)(uVar5 / 600)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar5 / 600)" ( (binary_expression "uVar5 / 600" identifier / number_literal) ))) + (char_literal "'0'" ' character '))) ;) (expression_statement "uVar4 = uVar5 % 0x3c;" (assignment_expression "uVar4 = uVar5 % 0x3c" identifier = (binary_expression "uVar5 % 0x3c" identifier % number_literal)) ;) (expression_statement "puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';" (assignment_expression "puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0'" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (binary_expression "(char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0'" (binary_expression "(char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10" (cast_expression "(char)(uVar5 / 0x3c)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar5 / 0x3c)" ( (binary_expression "uVar5 / 0x3c" identifier / number_literal) ))) + (binary_expression "(char)((uVar5 / 0x3c) / 10) * -10" (cast_expression "(char)((uVar5 / 0x3c) / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uVar5 / 0x3c) / 10)" ( (binary_expression "(uVar5 / 0x3c) / 10" (parenthesized_expression "(uVar5 / 0x3c)" ( (binary_expression "uVar5 / 0x3c" identifier / number_literal) )) / number_literal) ))) * number_literal)) + (char_literal "'0'" ' character '))) ;) (if_statement "if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar1[3] = 0;\n    }" { (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }" else (compound_statement "{\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }" { (expression_statement "puVar1[3] = 0x3a;" (assignment_expression "puVar1[3] = 0x3a" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar2 = (char)(uVar4 / 10);" (assignment_expression "cVar2 = (char)(uVar4 / 10)" identifier = (cast_expression "(char)(uVar4 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar4 / 10)" ( (binary_expression "uVar4 / 10" identifier / number_literal) )))) ;) (expression_statement "puVar1[4] = cVar2 + '0';" (assignment_expression "puVar1[4] = cVar2 + '0'" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = (binary_expression "cVar2 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';" (assignment_expression "puVar1[5] = (char)uVar4 + cVar2 * -10 + '0'" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = (binary_expression "(char)uVar4 + cVar2 * -10 + '0'" (binary_expression "(char)uVar4 + cVar2 * -10" (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "cVar2 * -10" identifier * number_literal)) + (char_literal "'0'" ' character '))) ;) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = number_literal) ;) }))) })) (return_statement "return param_2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nchar * __regparm3 time_zone_str(int time_zone,char *time_zone_buf)\n\n{\n  char *pcVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = time_zone / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(time_zone_buf,1,0xffffffff,"%c%02d",(time_zone >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ time_zone / 0xe10) - uVar5);\n  uVar5 = time_zone % 0xe10;\n  if (uVar5 != 0) {\n    pcVar1 = time_zone_buf + iVar3;\n    *pcVar1 = ':';\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    pcVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    pcVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      pcVar1[3] = '\0';\n    }\n    else {\n      pcVar1[3] = ':';\n      cVar2 = (char)(uVar4 / 10);\n      pcVar1[4] = cVar2 + '0';\n      pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      pcVar1[6] = '\0';\n    }\n  }\n  return time_zone_buf;\n}\n\n" comment (function_definition "char * __regparm3 time_zone_str(int time_zone,char *time_zone_buf)\n\n{\n  char *pcVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = time_zone / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(time_zone_buf,1,0xffffffff,"%c%02d",(time_zone >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ time_zone / 0xe10) - uVar5);\n  uVar5 = time_zone % 0xe10;\n  if (uVar5 != 0) {\n    pcVar1 = time_zone_buf + iVar3;\n    *pcVar1 = ':';\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    pcVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    pcVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      pcVar1[3] = '\0';\n    }\n    else {\n      pcVar1[3] = ':';\n      cVar2 = (char)(uVar4 / 10);\n      pcVar1[4] = cVar2 + '0';\n      pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      pcVar1[6] = '\0';\n    }\n  }\n  return time_zone_buf;\n}" primitive_type (pointer_declarator "* __regparm3 time_zone_str(int time_zone,char *time_zone_buf)" * (ERROR "__regparm3" identifier) (function_declarator "time_zone_str(int time_zone,char *time_zone_buf)" identifier (parameter_list "(int time_zone,char *time_zone_buf)" ( (parameter_declaration "int time_zone" primitive_type identifier) , (parameter_declaration "char *time_zone_buf" primitive_type (pointer_declarator "*time_zone_buf" * identifier)) )))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = time_zone / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(time_zone_buf,1,0xffffffff,"%c%02d",(time_zone >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ time_zone / 0xe10) - uVar5);\n  uVar5 = time_zone % 0xe10;\n  if (uVar5 != 0) {\n    pcVar1 = time_zone_buf + iVar3;\n    *pcVar1 = ':';\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    pcVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    pcVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      pcVar1[3] = '\0';\n    }\n    else {\n      pcVar1[3] = ':';\n      cVar2 = (char)(uVar4 / 10);\n      pcVar1[4] = cVar2 + '0';\n      pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      pcVar1[6] = '\0';\n    }\n  }\n  return time_zone_buf;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "uVar5 = time_zone / 0xe10 >> 0x1f;" (assignment_expression "uVar5 = time_zone / 0xe10 >> 0x1f" identifier = (binary_expression "time_zone / 0xe10 >> 0x1f" (binary_expression "time_zone / 0xe10" identifier / number_literal) >> number_literal)) ;) (expression_statement "iVar3 = __sprintf_chk(time_zone_buf,1,0xffffffff,"%c%02d",(time_zone >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ time_zone / 0xe10) - uVar5);" (assignment_expression "iVar3 = __sprintf_chk(time_zone_buf,1,0xffffffff,"%c%02d",(time_zone >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ time_zone / 0xe10) - uVar5)" identifier = (call_expression "__sprintf_chk(time_zone_buf,1,0xffffffff,"%c%02d",(time_zone >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ time_zone / 0xe10) - uVar5)" identifier (argument_list "(time_zone_buf,1,0xffffffff,"%c%02d",(time_zone >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ time_zone / 0xe10) - uVar5)" ( identifier , number_literal , number_literal , (string_literal ""%c%02d"" " string_content ") , (binary_expression "(time_zone >> 0x1f & 2U) + 0x2b" (parenthesized_expression "(time_zone >> 0x1f & 2U)" ( (binary_expression "time_zone >> 0x1f & 2U" (binary_expression "time_zone >> 0x1f" identifier >> number_literal) & number_literal) )) + number_literal) , (binary_expression "(uVar5 ^ time_zone / 0xe10) - uVar5" (parenthesized_expression "(uVar5 ^ time_zone / 0xe10)" ( (binary_expression "uVar5 ^ time_zone / 0xe10" identifier ^ (binary_expression "time_zone / 0xe10" identifier / number_literal)) )) - identifier) )))) ;) (expression_statement "uVar5 = time_zone % 0xe10;" (assignment_expression "uVar5 = time_zone % 0xe10" identifier = (binary_expression "time_zone % 0xe10" identifier % number_literal)) ;) (if_statement "if (uVar5 != 0) {\n    pcVar1 = time_zone_buf + iVar3;\n    *pcVar1 = ':';\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    pcVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    pcVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      pcVar1[3] = '\0';\n    }\n    else {\n      pcVar1[3] = ':';\n      cVar2 = (char)(uVar4 / 10);\n      pcVar1[4] = cVar2 + '0';\n      pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      pcVar1[6] = '\0';\n    }\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar1 = time_zone_buf + iVar3;\n    *pcVar1 = ':';\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    pcVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    pcVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      pcVar1[3] = '\0';\n    }\n    else {\n      pcVar1[3] = ':';\n      cVar2 = (char)(uVar4 / 10);\n      pcVar1[4] = cVar2 + '0';\n      pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      pcVar1[6] = '\0';\n    }\n  }" { (expression_statement "pcVar1 = time_zone_buf + iVar3;" (assignment_expression "pcVar1 = time_zone_buf + iVar3" identifier = (binary_expression "time_zone_buf + iVar3" identifier + identifier)) ;) (expression_statement "*pcVar1 = ':';" (assignment_expression "*pcVar1 = ':'" (pointer_expression "*pcVar1" * identifier) = (char_literal "':'" ' character ')) ;) (expression_statement "uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);" (assignment_expression "uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f)" identifier = (binary_expression "(uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f)" (parenthesized_expression "(uVar5 ^ (int)uVar5 >> 0x1f)" ( (binary_expression "uVar5 ^ (int)uVar5 >> 0x1f" identifier ^ (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)uVar5 >> 0x1f)" ( (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "pcVar1[1] = (char)(uVar5 / 600) + '0';" (assignment_expression "pcVar1[1] = (char)(uVar5 / 600) + '0'" (subscript_expression "pcVar1[1]" identifier [ number_literal ]) = (binary_expression "(char)(uVar5 / 600) + '0'" (cast_expression "(char)(uVar5 / 600)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar5 / 600)" ( (binary_expression "uVar5 / 600" identifier / number_literal) ))) + (char_literal "'0'" ' character '))) ;) (expression_statement "uVar4 = uVar5 % 0x3c;" (assignment_expression "uVar4 = uVar5 % 0x3c" identifier = (binary_expression "uVar5 % 0x3c" identifier % number_literal)) ;) (expression_statement "pcVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';" (assignment_expression "pcVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0'" (subscript_expression "pcVar1[2]" identifier [ number_literal ]) = (binary_expression "(char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0'" (binary_expression "(char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10" (cast_expression "(char)(uVar5 / 0x3c)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar5 / 0x3c)" ( (binary_expression "uVar5 / 0x3c" identifier / number_literal) ))) + (binary_expression "(char)((uVar5 / 0x3c) / 10) * -10" (cast_expression "(char)((uVar5 / 0x3c) / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uVar5 / 0x3c) / 10)" ( (binary_expression "(uVar5 / 0x3c) / 10" (parenthesized_expression "(uVar5 / 0x3c)" ( (binary_expression "uVar5 / 0x3c" identifier / number_literal) )) / number_literal) ))) * number_literal)) + (char_literal "'0'" ' character '))) ;) (if_statement "if (uVar4 == 0) {\n      pcVar1[3] = '\0';\n    }\n    else {\n      pcVar1[3] = ':';\n      cVar2 = (char)(uVar4 / 10);\n      pcVar1[4] = cVar2 + '0';\n      pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      pcVar1[6] = '\0';\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1[3] = '\0';\n    }" { (expression_statement "pcVar1[3] = '\0';" (assignment_expression "pcVar1[3] = '\0'" (subscript_expression "pcVar1[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n      pcVar1[3] = ':';\n      cVar2 = (char)(uVar4 / 10);\n      pcVar1[4] = cVar2 + '0';\n      pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      pcVar1[6] = '\0';\n    }" else (compound_statement "{\n      pcVar1[3] = ':';\n      cVar2 = (char)(uVar4 / 10);\n      pcVar1[4] = cVar2 + '0';\n      pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      pcVar1[6] = '\0';\n    }" { (expression_statement "pcVar1[3] = ':';" (assignment_expression "pcVar1[3] = ':'" (subscript_expression "pcVar1[3]" identifier [ number_literal ]) = (char_literal "':'" ' character ')) ;) (expression_statement "cVar2 = (char)(uVar4 / 10);" (assignment_expression "cVar2 = (char)(uVar4 / 10)" identifier = (cast_expression "(char)(uVar4 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar4 / 10)" ( (binary_expression "uVar4 / 10" identifier / number_literal) )))) ;) (expression_statement "pcVar1[4] = cVar2 + '0';" (assignment_expression "pcVar1[4] = cVar2 + '0'" (subscript_expression "pcVar1[4]" identifier [ number_literal ]) = (binary_expression "cVar2 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0';" (assignment_expression "pcVar1[5] = (char)uVar4 + cVar2 * -10 + '0'" (subscript_expression "pcVar1[5]" identifier [ number_literal ]) = (binary_expression "(char)uVar4 + cVar2 * -10 + '0'" (binary_expression "(char)uVar4 + cVar2 * -10" (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "cVar2 * -10" identifier * number_literal)) + (char_literal "'0'" ' character '))) ;) (expression_statement "pcVar1[6] = '\0';" (assignment_expression "pcVar1[6] = '\0'" (subscript_expression "pcVar1[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) })) (return_statement "return time_zone_buf;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_00029d30(int param_1,int param_2)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = param_1 / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);\n  uVar5 = param_1 % 0xe10;\n  if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }\n  return param_2;\n}\n\n" (function_definition "int __regparm3 FUN_00029d30(int param_1,int param_2)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = param_1 / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);\n  uVar5 = param_1 % 0xe10;\n  if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }\n  return param_2;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00029d30(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = param_1 / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);\n  uVar5 = param_1 % 0xe10;\n  if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }\n  return param_2;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "uVar5 = param_1 / 0xe10 >> 0x1f;" (assignment_expression "uVar5 = param_1 / 0xe10 >> 0x1f" identifier = (binary_expression "param_1 / 0xe10 >> 0x1f" (binary_expression "param_1 / 0xe10" identifier / number_literal) >> number_literal)) ;) (expression_statement "iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);" (assignment_expression "iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5)" identifier = (call_expression "__sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5)" identifier (argument_list "(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5)" ( identifier , number_literal , number_literal , (string_literal ""%c%02d"" " string_content ") , (binary_expression "(param_1 >> 0x1f & 2U) + 0x2b" (parenthesized_expression "(param_1 >> 0x1f & 2U)" ( (binary_expression "param_1 >> 0x1f & 2U" (binary_expression "param_1 >> 0x1f" identifier >> number_literal) & number_literal) )) + number_literal) , (binary_expression "(uVar5 ^ param_1 / 0xe10) - uVar5" (parenthesized_expression "(uVar5 ^ param_1 / 0xe10)" ( (binary_expression "uVar5 ^ param_1 / 0xe10" identifier ^ (binary_expression "param_1 / 0xe10" identifier / number_literal)) )) - identifier) )))) ;) (expression_statement "uVar5 = param_1 % 0xe10;" (assignment_expression "uVar5 = param_1 % 0xe10" identifier = (binary_expression "param_1 % 0xe10" identifier % number_literal)) ;) (if_statement "if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }" { (expression_statement "puVar1 = (undefined1 *)(param_2 + iVar3);" (assignment_expression "puVar1 = (undefined1 *)(param_2 + iVar3)" identifier = (cast_expression "(undefined1 *)(param_2 + iVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar3)" ( (binary_expression "param_2 + iVar3" identifier + identifier) )))) ;) (expression_statement "*puVar1 = 0x3a;" (assignment_expression "*puVar1 = 0x3a" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);" (assignment_expression "uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f)" identifier = (binary_expression "(uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f)" (parenthesized_expression "(uVar5 ^ (int)uVar5 >> 0x1f)" ( (binary_expression "uVar5 ^ (int)uVar5 >> 0x1f" identifier ^ (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)uVar5 >> 0x1f)" ( (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar1[1] = (char)(uVar5 / 600) + '0';" (assignment_expression "puVar1[1] = (char)(uVar5 / 600) + '0'" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (binary_expression "(char)(uVar5 / 600) + '0'" (cast_expression "(char)(uVar5 / 600)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar5 / 600)" ( (binary_expression "uVar5 / 600" identifier / number_literal) ))) + (char_literal "'0'" ' character '))) ;) (expression_statement "uVar4 = uVar5 % 0x3c;" (assignment_expression "uVar4 = uVar5 % 0x3c" identifier = (binary_expression "uVar5 % 0x3c" identifier % number_literal)) ;) (expression_statement "puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';" (assignment_expression "puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0'" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (binary_expression "(char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0'" (binary_expression "(char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10" (cast_expression "(char)(uVar5 / 0x3c)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar5 / 0x3c)" ( (binary_expression "uVar5 / 0x3c" identifier / number_literal) ))) + (binary_expression "(char)((uVar5 / 0x3c) / 10) * -10" (cast_expression "(char)((uVar5 / 0x3c) / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uVar5 / 0x3c) / 10)" ( (binary_expression "(uVar5 / 0x3c) / 10" (parenthesized_expression "(uVar5 / 0x3c)" ( (binary_expression "uVar5 / 0x3c" identifier / number_literal) )) / number_literal) ))) * number_literal)) + (char_literal "'0'" ' character '))) ;) (if_statement "if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar1[3] = 0;\n    }" { (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }" else (compound_statement "{\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }" { (expression_statement "puVar1[3] = 0x3a;" (assignment_expression "puVar1[3] = 0x3a" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar2 = (char)(uVar4 / 10);" (assignment_expression "cVar2 = (char)(uVar4 / 10)" identifier = (cast_expression "(char)(uVar4 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar4 / 10)" ( (binary_expression "uVar4 / 10" identifier / number_literal) )))) ;) (expression_statement "puVar1[4] = cVar2 + '0';" (assignment_expression "puVar1[4] = cVar2 + '0'" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = (binary_expression "cVar2 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';" (assignment_expression "puVar1[5] = (char)uVar4 + cVar2 * -10 + '0'" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = (binary_expression "(char)uVar4 + cVar2 * -10 + '0'" (binary_expression "(char)uVar4 + cVar2 * -10" (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "cVar2 * -10" identifier * number_literal)) + (char_literal "'0'" ' character '))) ;) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = number_literal) ;) }))) })) (return_statement "return param_2;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT / LIT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (string_literal " string_content ") , (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) + LIT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ (binary_expression IDENT / LIT)) )) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) )) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / LIT) ))) + (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / LIT) ))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) / LIT) ))) * LIT)) + (char_literal ' character '))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (char_literal ' character '))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) + (char_literal ' character '))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) })) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_00029d30(int param_1,int param_2)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = param_1 / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);\n  uVar5 = param_1 % 0xe10;\n  if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }\n  return param_2;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00029d30(int param_1,int param_2)" (identifier "FUN_00029d30") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  uVar5 = param_1 / 0xe10 >> 0x1f;\n  iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);\n  uVar5 = param_1 % 0xe10;\n  if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }\n  return param_2;\n}" ({ "{") (declaration "undefined1 *puVar1;" (type_identifier "undefined1") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (expression_statement "uVar5 = param_1 / 0xe10 >> 0x1f;" (assignment_expression "uVar5 = param_1 / 0xe10 >> 0x1f" (identifier "uVar5") (= "=") (binary_expression "param_1 / 0xe10 >> 0x1f" (binary_expression "param_1 / 0xe10" (identifier "param_1") (/ "/") (number_literal "0xe10")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5);" (assignment_expression "iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5)" (identifier "iVar3") (= "=") (call_expression "__sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5)" (identifier "__sprintf_chk") (argument_list "(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,\n                        (uVar5 ^ param_1 / 0xe10) - uVar5)" (( "(") (identifier "param_2") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (string_literal ""%c%02d"" (" """) (string_content "%c%02d") (" """)) (, ",") (binary_expression "(param_1 >> 0x1f & 2U) + 0x2b" (parenthesized_expression "(param_1 >> 0x1f & 2U)" (( "(") (binary_expression "param_1 >> 0x1f & 2U" (binary_expression "param_1 >> 0x1f" (identifier "param_1") (>> ">>") (number_literal "0x1f")) (& "&") (number_literal "2U")) () ")")) (+ "+") (number_literal "0x2b")) (, ",") (binary_expression "(uVar5 ^ param_1 / 0xe10) - uVar5" (parenthesized_expression "(uVar5 ^ param_1 / 0xe10)" (( "(") (binary_expression "uVar5 ^ param_1 / 0xe10" (identifier "uVar5") (^ "^") (binary_expression "param_1 / 0xe10" (identifier "param_1") (/ "/") (number_literal "0xe10"))) () ")")) (- "-") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar5 = param_1 % 0xe10;" (assignment_expression "uVar5 = param_1 % 0xe10" (identifier "uVar5") (= "=") (binary_expression "param_1 % 0xe10" (identifier "param_1") (% "%") (number_literal "0xe10"))) (; ";")) (if_statement "if (uVar5 != 0) {\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar1 = (undefined1 *)(param_2 + iVar3);\n    *puVar1 = 0x3a;\n    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);\n    puVar1[1] = (char)(uVar5 / 600) + '0';\n    uVar4 = uVar5 % 0x3c;\n    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';\n    if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }\n  }" ({ "{") (expression_statement "puVar1 = (undefined1 *)(param_2 + iVar3);" (assignment_expression "puVar1 = (undefined1 *)(param_2 + iVar3)" (identifier "puVar1") (= "=") (cast_expression "(undefined1 *)(param_2 + iVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar3)" (( "(") (binary_expression "param_2 + iVar3" (identifier "param_2") (+ "+") (identifier "iVar3")) () ")")))) (; ";")) (expression_statement "*puVar1 = 0x3a;" (assignment_expression "*puVar1 = 0x3a" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (number_literal "0x3a")) (; ";")) (expression_statement "uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);" (assignment_expression "uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f)" (identifier "uVar5") (= "=") (binary_expression "(uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f)" (parenthesized_expression "(uVar5 ^ (int)uVar5 >> 0x1f)" (( "(") (binary_expression "uVar5 ^ (int)uVar5 >> 0x1f" (identifier "uVar5") (^ "^") (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (>> ">>") (number_literal "0x1f"))) () ")")) (- "-") (parenthesized_expression "((int)uVar5 >> 0x1f)" (( "(") (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "puVar1[1] = (char)(uVar5 / 600) + '0';" (assignment_expression "puVar1[1] = (char)(uVar5 / 600) + '0'" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(char)(uVar5 / 600) + '0'" (cast_expression "(char)(uVar5 / 600)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar5 / 600)" (( "(") (binary_expression "uVar5 / 600" (identifier "uVar5") (/ "/") (number_literal "600")) () ")"))) (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";")) (expression_statement "uVar4 = uVar5 % 0x3c;" (assignment_expression "uVar4 = uVar5 % 0x3c" (identifier "uVar4") (= "=") (binary_expression "uVar5 % 0x3c" (identifier "uVar5") (% "%") (number_literal "0x3c"))) (; ";")) (expression_statement "puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';" (assignment_expression "puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0'" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0'" (binary_expression "(char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10" (cast_expression "(char)(uVar5 / 0x3c)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar5 / 0x3c)" (( "(") (binary_expression "uVar5 / 0x3c" (identifier "uVar5") (/ "/") (number_literal "0x3c")) () ")"))) (+ "+") (binary_expression "(char)((uVar5 / 0x3c) / 10) * -10" (cast_expression "(char)((uVar5 / 0x3c) / 10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uVar5 / 0x3c) / 10)" (( "(") (binary_expression "(uVar5 / 0x3c) / 10" (parenthesized_expression "(uVar5 / 0x3c)" (( "(") (binary_expression "uVar5 / 0x3c" (identifier "uVar5") (/ "/") (number_literal "0x3c")) () ")")) (/ "/") (number_literal "10")) () ")"))) (* "*") (number_literal "-10"))) (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";")) (if_statement "if (uVar4 == 0) {\n      puVar1[3] = 0;\n    }\n    else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar1[3] = 0;\n    }" ({ "{") (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }" (else "else") (compound_statement "{\n      puVar1[3] = 0x3a;\n      cVar2 = (char)(uVar4 / 10);\n      puVar1[4] = cVar2 + '0';\n      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';\n      puVar1[6] = 0;\n    }" ({ "{") (expression_statement "puVar1[3] = 0x3a;" (assignment_expression "puVar1[3] = 0x3a" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x3a")) (; ";")) (expression_statement "cVar2 = (char)(uVar4 / 10);" (assignment_expression "cVar2 = (char)(uVar4 / 10)" (identifier "cVar2") (= "=") (cast_expression "(char)(uVar4 / 10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar4 / 10)" (( "(") (binary_expression "uVar4 / 10" (identifier "uVar4") (/ "/") (number_literal "10")) () ")")))) (; ";")) (expression_statement "puVar1[4] = cVar2 + '0';" (assignment_expression "puVar1[4] = cVar2 + '0'" (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "cVar2 + '0'" (identifier "cVar2") (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";")) (expression_statement "puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';" (assignment_expression "puVar1[5] = (char)uVar4 + cVar2 * -10 + '0'" (subscript_expression "puVar1[5]" (identifier "puVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "(char)uVar4 + cVar2 * -10 + '0'" (binary_expression "(char)uVar4 + cVar2 * -10" (cast_expression "(char)uVar4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar4")) (+ "+") (binary_expression "cVar2 * -10" (identifier "cVar2") (* "*") (number_literal "-10"))) (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";")) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" (identifier "puVar1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}")))

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

char * __regparm3 function_1(int var_1,char *var_4)

{
  char *pcVar1;
  char var_7;
  int var_5;
  type_1 var_6;
  type_1 var_3;
  
  var_3 = var_1 / 0xe10 >> 0x1f;
  var_5 = var_2(var_4,1,0xffffffff,"%c%02d",(var_1 >> 0x1f & 2U) + 0x2b,
                        (var_3 ^ var_1 / 0xe10) - var_3);
  var_3 = var_1 % 0xe10;
  if (var_3 != 0) {
    pcVar1 = var_4 + var_5;
    *pcVar1 = ':';
    var_3 = (var_3 ^ (int)var_3 >> 0x1f) - ((int)var_3 >> 0x1f);
    pcVar1[1] = (char)(var_3 / 600) + '0';
    var_6 = var_3 % 0x3c;
    pcVar1[2] = (char)(var_3 / 0x3c) + (char)((var_3 / 0x3c) / 10) * -10 + '0';
    if (var_6 == 0) {
      pcVar1[3] = '\0';
    }
    else {
      pcVar1[3] = ':';
      var_7 = (char)(var_6 / 10);
      pcVar1[4] = var_7 + '0';
      pcVar1[5] = (char)var_6 + var_7 * -10 + '0';
      pcVar1[6] = '\0';
    }
  }
  return var_4;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (string_literal (string_content)) (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal)) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (char_literal (character))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) right: (number_literal))) right: (char_literal (character))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (char_literal (character))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))) right: (char_literal (character))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) (return_statement (identifier)))))

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

int __regparm3 MASKED(int param_1,int param_2)

{
  undefined1 *puVar1;
  char cVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  
  uVar5 = param_1 / 0xe10 >> 0x1f;
  iVar3 = __sprintf_chk(param_2,1,0xffffffff,"%c%02d",(param_1 >> 0x1f & 2U) + 0x2b,
                        (uVar5 ^ param_1 / 0xe10) - uVar5);
  uVar5 = param_1 % 0xe10;
  if (uVar5 != 0) {
    puVar1 = (undefined1 *)(param_2 + iVar3);
    *puVar1 = 0x3a;
    uVar5 = (uVar5 ^ (int)uVar5 >> 0x1f) - ((int)uVar5 >> 0x1f);
    puVar1[1] = (char)(uVar5 / 600) + '0';
    uVar4 = uVar5 % 0x3c;
    puVar1[2] = (char)(uVar5 / 0x3c) + (char)((uVar5 / 0x3c) / 10) * -10 + '0';
    if (uVar4 == 0) {
      puVar1[3] = 0;
    }
    else {
      puVar1[3] = 0x3a;
      cVar2 = (char)(uVar4 / 10);
      puVar1[4] = cVar2 + '0';
      puVar1[5] = (char)uVar4 + cVar2 * -10 + '0';
      puVar1[6] = 0;
    }
  }
  return param_2;
}

