
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void do_write(Reloc_stub<64,_true> * this, uchar * view,
   section_size_type param_2) */

void __thiscall
anon_unknown.dwarf_109b185::Reloc_stub<64,_true>::do_write
          (Reloc_stub<64,_true> *this,uchar *view,section_size_type param_3)

{
}



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

void FUN_001ded40(int param_1,uint *param_2)

{
  uint *puVar1;
  uint uVar2;
  uint *puVar3;
  int iVar4;
  int iVar5;
  
  iVar5 = *(int *)(param_1 + 0x10);
  if (DAT_005eb520 == '\0') {
    iVar4 = FUN_003ac660(&DAT_005eb520);
    if (iVar4 != 0) {
      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;
      DAT_005eb52c = &PTR_DAT_005d5c50;
      DAT_005eb530 = &PTR_DAT_005d5c48;
      DAT_005eb534 = &PTR_DAT_005d5c40;
      DAT_005eb538 = &PTR_DAT_005d5c38;
      DAT_005eb53c = &PTR_DAT_005d5c30;
      FUN_003ac7d0(&DAT_005eb520);
      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);
    }
  }
  iVar4 = *(int *)(param_1 + 0x10);
  puVar3 = (uint *)*(&DAT_005eb528)[iVar5];
  if (DAT_005eb520 == '\0') {
    iVar5 = FUN_003ac660(&DAT_005eb520);
    if (iVar5 != 0) {
      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;
      DAT_005eb52c = &PTR_DAT_005d5c50;
      DAT_005eb530 = &PTR_DAT_005d5c48;
      DAT_005eb534 = &PTR_DAT_005d5c40;
      DAT_005eb538 = &PTR_DAT_005d5c38;
      DAT_005eb53c = &PTR_DAT_005d5c30;
      FUN_003ac7d0(&DAT_005eb520);
      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);
    }
  }
  if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {
    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);
    do {
      uVar2 = *puVar3;
      puVar3 = puVar3 + 1;
      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
      param_2 = param_2 + 1;
    } while (puVar1 != puVar3);
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00050b50
ADD EBX,0x40b2b7
SUB ESP,0x1c
MOV EBP,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [EBP + 0x10]
MOVZX EAX,byte ptr [EBX + 0x1520]
LEA EDI,[EBX + 0x1528]
TEST AL,AL
JZ 0x001dedb8
MOV EAX,dword ptr [EDI + ESI*0x4]
MOV EBP,dword ptr [EBP + 0x10]
MOV ESI,dword ptr [EAX]
MOVZX EAX,byte ptr [EBX + 0x1520]
TEST AL,AL
JZ 0x001dee50
MOV EAX,dword ptr [EDI + EBP*0x4]
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JZ 0x001deda9
MOV ECX,dword ptr [ESP + 0x34]
MOV EAX,ESI
LEA ESI,[ESI + EDX*0x4]
LEA ESI,[ESI]
MOV EDX,dword ptr [EAX]
ADD EAX,0x4
ADD ECX,0x4
BSWAP EDX
MOV dword ptr [ECX + -0x4],EDX
CMP ESI,EAX
JNZ 0x001ded98
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
LEA EDX,[EBX + 0x1520]
LEA EDI,[EBX + 0x1528]
PUSH EDX
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x003ac660
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x001ded6a
LEA EAX,[EBX + 0xfffebc58]
SUB ESP,0xc
MOV dword ptr [EBX + 0x1528],EAX
LEA EAX,[EBX + 0xfffebc50]
MOV dword ptr [EBX + 0x152c],EAX
LEA EAX,[EBX + 0xfffebc48]
PUSH EDX
MOV dword ptr [EBX + 0x1530],EAX
LEA EAX,[EBX + 0xfffebc40]
MOV dword ptr [EBX + 0x1534],EAX
LEA EAX,[EBX + 0xfffebc38]
MOV dword ptr [EBX + 0x1538],EAX
LEA EAX,[EBX + 0xfffebc30]
MOV dword ptr [EBX + 0x153c],EAX
CALL 0x003ac7d0
ADD ESP,0xc
LEA EAX,[EBX + 0x2e4]
PUSH EAX
LEA EAX,[EBX + 0xffbe7230]
PUSH EDI
PUSH EAX
CALL 0x000393c0
ADD ESP,0x10
JMP 0x001ded6a
SUB ESP,0xc
LEA EDX,[EBX + 0x1520]
PUSH EDX
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x003ac660
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x001ded81
LEA EAX,[EBX + 0xfffebc58]
SUB ESP,0xc
MOV dword ptr [EBX + 0x1528],EAX
LEA EAX,[EBX + 0xfffebc50]
MOV dword ptr [EBX + 0x152c],EAX
LEA EAX,[EBX + 0xfffebc48]
PUSH EDX
MOV dword ptr [EBX + 0x1530],EAX
LEA EAX,[EBX + 0xfffebc40]
MOV dword ptr [EBX + 0x1534],EAX
LEA EAX,[EBX + 0xfffebc38]
MOV dword ptr [EBX + 0x1538],EAX
LEA EAX,[EBX + 0xfffebc30]
MOV dword ptr [EBX + 0x153c],EAX
CALL 0x003ac7d0
ADD ESP,0xc
LEA EAX,[EBX + 0x2e4]
PUSH EAX
LEA EAX,[EBX + 0xffbe7230]
PUSH EDI
PUSH EAX
CALL 0x000393c0
ADD ESP,0x10
JMP 0x001ded81
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_001ded40(int param_1,uint *param_2)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  \n  iVar5 = *(int *)(param_1 + 0x10);\n  if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  iVar4 = *(int *)(param_1 + 0x10);\n  puVar3 = (uint *)*(&DAT_005eb528)[iVar5];\n  if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_001ded40(int param_1,uint *param_2)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  \n  iVar5 = *(int *)(param_1 + 0x10);\n  if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  iVar4 = *(int *)(param_1 + 0x10);\n  puVar3 = (uint *)*(&DAT_005eb528)[iVar5];\n  if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001ded40(int param_1,uint *param_2)" identifier (parameter_list "(int param_1,uint *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  \n  iVar5 = *(int *)(param_1 + 0x10);\n  if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  iVar4 = *(int *)(param_1 + 0x10);\n  puVar3 = (uint *)*(&DAT_005eb528)[iVar5];\n  if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" if (parenthesized_expression "(DAT_005eb520 == '\0')" ( (binary_expression "DAT_005eb520 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" { (expression_statement "iVar4 = FUN_003ac660(&DAT_005eb520);" (assignment_expression "iVar4 = FUN_003ac660(&DAT_005eb520)" identifier = (call_expression "FUN_003ac660(&DAT_005eb520)" identifier (argument_list "(&DAT_005eb520)" ( (pointer_expression "&DAT_005eb520" & identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" { (expression_statement "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;" (assignment_expression "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" identifier = (pointer_expression "&PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" & identifier)) ;) (expression_statement "DAT_005eb52c = &PTR_DAT_005d5c50;" (assignment_expression "DAT_005eb52c = &PTR_DAT_005d5c50" identifier = (pointer_expression "&PTR_DAT_005d5c50" & identifier)) ;) (expression_statement "DAT_005eb530 = &PTR_DAT_005d5c48;" (assignment_expression "DAT_005eb530 = &PTR_DAT_005d5c48" identifier = (pointer_expression "&PTR_DAT_005d5c48" & identifier)) ;) (expression_statement "DAT_005eb534 = &PTR_DAT_005d5c40;" (assignment_expression "DAT_005eb534 = &PTR_DAT_005d5c40" identifier = (pointer_expression "&PTR_DAT_005d5c40" & identifier)) ;) (expression_statement "DAT_005eb538 = &PTR_DAT_005d5c38;" (assignment_expression "DAT_005eb538 = &PTR_DAT_005d5c38" identifier = (pointer_expression "&PTR_DAT_005d5c38" & identifier)) ;) (expression_statement "DAT_005eb53c = &PTR_DAT_005d5c30;" (assignment_expression "DAT_005eb53c = &PTR_DAT_005d5c30" identifier = (pointer_expression "&PTR_DAT_005d5c30" & identifier)) ;) (expression_statement "FUN_003ac7d0(&DAT_005eb520);" (call_expression "FUN_003ac7d0(&DAT_005eb520)" identifier (argument_list "(&DAT_005eb520)" ( (pointer_expression "&DAT_005eb520" & identifier) ))) ;) (expression_statement "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);" (call_expression "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" identifier (argument_list "(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" ( identifier , (pointer_expression "&DAT_005eb528" & identifier) , (pointer_expression "&PTR_LOOP_005ea2e4" & identifier) ))) ;) })) })) (expression_statement "iVar4 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar3 = (uint *)*(&DAT_005eb528)[iVar5];" (assignment_expression "puVar3 = (uint *)*(&DAT_005eb528)[iVar5]" identifier = (cast_expression "(uint *)*(&DAT_005eb528)[iVar5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(&DAT_005eb528)[iVar5]" * (subscript_expression "(&DAT_005eb528)[iVar5]" (parenthesized_expression "(&DAT_005eb528)" ( (pointer_expression "&DAT_005eb528" & identifier) )) [ identifier ])))) ;) (if_statement "if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" if (parenthesized_expression "(DAT_005eb520 == '\0')" ( (binary_expression "DAT_005eb520 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" { (expression_statement "iVar5 = FUN_003ac660(&DAT_005eb520);" (assignment_expression "iVar5 = FUN_003ac660(&DAT_005eb520)" identifier = (call_expression "FUN_003ac660(&DAT_005eb520)" identifier (argument_list "(&DAT_005eb520)" ( (pointer_expression "&DAT_005eb520" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" { (expression_statement "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;" (assignment_expression "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" identifier = (pointer_expression "&PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" & identifier)) ;) (expression_statement "DAT_005eb52c = &PTR_DAT_005d5c50;" (assignment_expression "DAT_005eb52c = &PTR_DAT_005d5c50" identifier = (pointer_expression "&PTR_DAT_005d5c50" & identifier)) ;) (expression_statement "DAT_005eb530 = &PTR_DAT_005d5c48;" (assignment_expression "DAT_005eb530 = &PTR_DAT_005d5c48" identifier = (pointer_expression "&PTR_DAT_005d5c48" & identifier)) ;) (expression_statement "DAT_005eb534 = &PTR_DAT_005d5c40;" (assignment_expression "DAT_005eb534 = &PTR_DAT_005d5c40" identifier = (pointer_expression "&PTR_DAT_005d5c40" & identifier)) ;) (expression_statement "DAT_005eb538 = &PTR_DAT_005d5c38;" (assignment_expression "DAT_005eb538 = &PTR_DAT_005d5c38" identifier = (pointer_expression "&PTR_DAT_005d5c38" & identifier)) ;) (expression_statement "DAT_005eb53c = &PTR_DAT_005d5c30;" (assignment_expression "DAT_005eb53c = &PTR_DAT_005d5c30" identifier = (pointer_expression "&PTR_DAT_005d5c30" & identifier)) ;) (expression_statement "FUN_003ac7d0(&DAT_005eb520);" (call_expression "FUN_003ac7d0(&DAT_005eb520)" identifier (argument_list "(&DAT_005eb520)" ( (pointer_expression "&DAT_005eb520" & identifier) ))) ;) (expression_statement "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);" (call_expression "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" identifier (argument_list "(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" ( identifier , (pointer_expression "&DAT_005eb528" & identifier) , (pointer_expression "&PTR_LOOP_005ea2e4" & identifier) ))) ;) })) })) (if_statement "if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }" if (parenthesized_expression "(*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0)" ( (binary_expression "*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0" (pointer_expression "*(int *)((int)(&DAT_005eb528)[iVar4] + 4)" * (cast_expression "(int *)((int)(&DAT_005eb528)[iVar4] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(&DAT_005eb528)[iVar4] + 4)" ( (binary_expression "(int)(&DAT_005eb528)[iVar4] + 4" (cast_expression "(int)(&DAT_005eb528)[iVar4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&DAT_005eb528)[iVar4]" (parenthesized_expression "(&DAT_005eb528)" ( (pointer_expression "&DAT_005eb528" & identifier) )) [ identifier ])) + number_literal) )))) != number_literal) )) (compound_statement "{\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }" { (expression_statement "puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);" (assignment_expression "puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4)" identifier = (binary_expression "puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4)" identifier + (pointer_expression "*(int *)((int)(&DAT_005eb528)[iVar4] + 4)" * (cast_expression "(int *)((int)(&DAT_005eb528)[iVar4] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(&DAT_005eb528)[iVar4] + 4)" ( (binary_expression "(int)(&DAT_005eb528)[iVar4] + 4" (cast_expression "(int)(&DAT_005eb528)[iVar4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&DAT_005eb528)[iVar4]" (parenthesized_expression "(&DAT_005eb528)" ( (pointer_expression "&DAT_005eb528" & identifier) )) [ identifier ])) + number_literal) )))))) ;) (do_statement "do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);" do (compound_statement "{\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    }" { (expression_statement "uVar2 = *puVar3;" (assignment_expression "uVar2 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "puVar3 = puVar3 + 1;" (assignment_expression "puVar3 = puVar3 + 1" identifier = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "*param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar1 != puVar3)" ( (binary_expression "puVar1 != puVar3" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void do_write(Reloc_stub<64,_true> * this, uchar * view,\n   section_size_type param_2) */\n\nvoid __thiscall\nanon_unknown.dwarf_109b185::Reloc_stub<64,_true>::do_write\n          (Reloc_stub<64,_true> *this,uchar *view,section_size_type param_3)\n\n{\n}\n\n" comment comment (ERROR "void __thiscall\nanon_unknown.dwarf_109b185::Reloc_stub<64,_true>::do_write\n          (Reloc_stub<64,_true> *this,uchar *view,section_size_type param_3)" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_109b185::" identifier . identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::" identifier > : :) (function_declarator "do_write\n          (Reloc_stub<64,_true> *this,uchar *view,section_size_type param_3)" identifier (parameter_list "(Reloc_stub<64,_true> *this,uchar *view,section_size_type param_3)" ( (parameter_declaration "Reloc_stub" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uchar *view" type_identifier (pointer_declarator "*view" * identifier)) , (parameter_declaration "section_size_type param_3" type_identifier identifier) )))) (compound_statement "{\n}" { }))
(translation_unit "void FUN_001ded40(int param_1,uint *param_2)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  \n  iVar5 = *(int *)(param_1 + 0x10);\n  if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  iVar4 = *(int *)(param_1 + 0x10);\n  puVar3 = (uint *)*(&DAT_005eb528)[iVar5];\n  if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }\n  return;\n}\n\n" (function_definition "void FUN_001ded40(int param_1,uint *param_2)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  \n  iVar5 = *(int *)(param_1 + 0x10);\n  if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  iVar4 = *(int *)(param_1 + 0x10);\n  puVar3 = (uint *)*(&DAT_005eb528)[iVar5];\n  if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001ded40(int param_1,uint *param_2)" identifier (parameter_list "(int param_1,uint *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  \n  iVar5 = *(int *)(param_1 + 0x10);\n  if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  iVar4 = *(int *)(param_1 + 0x10);\n  puVar3 = (uint *)*(&DAT_005eb528)[iVar5];\n  if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" if (parenthesized_expression "(DAT_005eb520 == '\0')" ( (binary_expression "DAT_005eb520 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" { (expression_statement "iVar4 = FUN_003ac660(&DAT_005eb520);" (assignment_expression "iVar4 = FUN_003ac660(&DAT_005eb520)" identifier = (call_expression "FUN_003ac660(&DAT_005eb520)" identifier (argument_list "(&DAT_005eb520)" ( (pointer_expression "&DAT_005eb520" & identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" { (expression_statement "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;" (assignment_expression "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" identifier = (pointer_expression "&PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" & identifier)) ;) (expression_statement "DAT_005eb52c = &PTR_DAT_005d5c50;" (assignment_expression "DAT_005eb52c = &PTR_DAT_005d5c50" identifier = (pointer_expression "&PTR_DAT_005d5c50" & identifier)) ;) (expression_statement "DAT_005eb530 = &PTR_DAT_005d5c48;" (assignment_expression "DAT_005eb530 = &PTR_DAT_005d5c48" identifier = (pointer_expression "&PTR_DAT_005d5c48" & identifier)) ;) (expression_statement "DAT_005eb534 = &PTR_DAT_005d5c40;" (assignment_expression "DAT_005eb534 = &PTR_DAT_005d5c40" identifier = (pointer_expression "&PTR_DAT_005d5c40" & identifier)) ;) (expression_statement "DAT_005eb538 = &PTR_DAT_005d5c38;" (assignment_expression "DAT_005eb538 = &PTR_DAT_005d5c38" identifier = (pointer_expression "&PTR_DAT_005d5c38" & identifier)) ;) (expression_statement "DAT_005eb53c = &PTR_DAT_005d5c30;" (assignment_expression "DAT_005eb53c = &PTR_DAT_005d5c30" identifier = (pointer_expression "&PTR_DAT_005d5c30" & identifier)) ;) (expression_statement "FUN_003ac7d0(&DAT_005eb520);" (call_expression "FUN_003ac7d0(&DAT_005eb520)" identifier (argument_list "(&DAT_005eb520)" ( (pointer_expression "&DAT_005eb520" & identifier) ))) ;) (expression_statement "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);" (call_expression "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" identifier (argument_list "(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" ( identifier , (pointer_expression "&DAT_005eb528" & identifier) , (pointer_expression "&PTR_LOOP_005ea2e4" & identifier) ))) ;) })) })) (expression_statement "iVar4 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar3 = (uint *)*(&DAT_005eb528)[iVar5];" (assignment_expression "puVar3 = (uint *)*(&DAT_005eb528)[iVar5]" identifier = (cast_expression "(uint *)*(&DAT_005eb528)[iVar5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(&DAT_005eb528)[iVar5]" * (subscript_expression "(&DAT_005eb528)[iVar5]" (parenthesized_expression "(&DAT_005eb528)" ( (pointer_expression "&DAT_005eb528" & identifier) )) [ identifier ])))) ;) (if_statement "if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" if (parenthesized_expression "(DAT_005eb520 == '\0')" ( (binary_expression "DAT_005eb520 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" { (expression_statement "iVar5 = FUN_003ac660(&DAT_005eb520);" (assignment_expression "iVar5 = FUN_003ac660(&DAT_005eb520)" identifier = (call_expression "FUN_003ac660(&DAT_005eb520)" identifier (argument_list "(&DAT_005eb520)" ( (pointer_expression "&DAT_005eb520" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" { (expression_statement "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;" (assignment_expression "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" identifier = (pointer_expression "&PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" & identifier)) ;) (expression_statement "DAT_005eb52c = &PTR_DAT_005d5c50;" (assignment_expression "DAT_005eb52c = &PTR_DAT_005d5c50" identifier = (pointer_expression "&PTR_DAT_005d5c50" & identifier)) ;) (expression_statement "DAT_005eb530 = &PTR_DAT_005d5c48;" (assignment_expression "DAT_005eb530 = &PTR_DAT_005d5c48" identifier = (pointer_expression "&PTR_DAT_005d5c48" & identifier)) ;) (expression_statement "DAT_005eb534 = &PTR_DAT_005d5c40;" (assignment_expression "DAT_005eb534 = &PTR_DAT_005d5c40" identifier = (pointer_expression "&PTR_DAT_005d5c40" & identifier)) ;) (expression_statement "DAT_005eb538 = &PTR_DAT_005d5c38;" (assignment_expression "DAT_005eb538 = &PTR_DAT_005d5c38" identifier = (pointer_expression "&PTR_DAT_005d5c38" & identifier)) ;) (expression_statement "DAT_005eb53c = &PTR_DAT_005d5c30;" (assignment_expression "DAT_005eb53c = &PTR_DAT_005d5c30" identifier = (pointer_expression "&PTR_DAT_005d5c30" & identifier)) ;) (expression_statement "FUN_003ac7d0(&DAT_005eb520);" (call_expression "FUN_003ac7d0(&DAT_005eb520)" identifier (argument_list "(&DAT_005eb520)" ( (pointer_expression "&DAT_005eb520" & identifier) ))) ;) (expression_statement "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);" (call_expression "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" identifier (argument_list "(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" ( identifier , (pointer_expression "&DAT_005eb528" & identifier) , (pointer_expression "&PTR_LOOP_005ea2e4" & identifier) ))) ;) })) })) (if_statement "if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }" if (parenthesized_expression "(*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0)" ( (binary_expression "*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0" (pointer_expression "*(int *)((int)(&DAT_005eb528)[iVar4] + 4)" * (cast_expression "(int *)((int)(&DAT_005eb528)[iVar4] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(&DAT_005eb528)[iVar4] + 4)" ( (binary_expression "(int)(&DAT_005eb528)[iVar4] + 4" (cast_expression "(int)(&DAT_005eb528)[iVar4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&DAT_005eb528)[iVar4]" (parenthesized_expression "(&DAT_005eb528)" ( (pointer_expression "&DAT_005eb528" & identifier) )) [ identifier ])) + number_literal) )))) != number_literal) )) (compound_statement "{\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }" { (expression_statement "puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);" (assignment_expression "puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4)" identifier = (binary_expression "puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4)" identifier + (pointer_expression "*(int *)((int)(&DAT_005eb528)[iVar4] + 4)" * (cast_expression "(int *)((int)(&DAT_005eb528)[iVar4] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(&DAT_005eb528)[iVar4] + 4)" ( (binary_expression "(int)(&DAT_005eb528)[iVar4] + 4" (cast_expression "(int)(&DAT_005eb528)[iVar4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&DAT_005eb528)[iVar4]" (parenthesized_expression "(&DAT_005eb528)" ( (pointer_expression "&DAT_005eb528" & identifier) )) [ identifier ])) + number_literal) )))))) ;) (do_statement "do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);" do (compound_statement "{\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    }" { (expression_statement "uVar2 = *puVar3;" (assignment_expression "uVar2 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "puVar3 = puVar3 + 1;" (assignment_expression "puVar3 = puVar3 + 1" identifier = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "*param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar1 != puVar3)" ( (binary_expression "puVar1 != puVar3" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) + LIT) )))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_001ded40(int param_1,uint *param_2)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  \n  iVar5 = *(int *)(param_1 + 0x10);\n  if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  iVar4 = *(int *)(param_1 + 0x10);\n  puVar3 = (uint *)*(&DAT_005eb528)[iVar5];\n  if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001ded40(int param_1,uint *param_2)" (identifier "FUN_001ded40") (parameter_list "(int param_1,uint *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  \n  iVar5 = *(int *)(param_1 + 0x10);\n  if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  iVar4 = *(int *)(param_1 + 0x10);\n  puVar3 = (uint *)*(&DAT_005eb528)[iVar5];\n  if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }\n  if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }\n  return;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (expression_statement "iVar5 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x10)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (DAT_005eb520 == '\0') {\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" (if "if") (parenthesized_expression "(DAT_005eb520 == '\0')" (( "(") (binary_expression "DAT_005eb520 == '\0'" (identifier "DAT_005eb520") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar4 = FUN_003ac660(&DAT_005eb520);\n    if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" ({ "{") (expression_statement "iVar4 = FUN_003ac660(&DAT_005eb520);" (assignment_expression "iVar4 = FUN_003ac660(&DAT_005eb520)" (identifier "iVar4") (= "=") (call_expression "FUN_003ac660(&DAT_005eb520)" (identifier "FUN_003ac660") (argument_list "(&DAT_005eb520)" (( "(") (pointer_expression "&DAT_005eb520" (& "&") (identifier "DAT_005eb520")) () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" ({ "{") (expression_statement "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;" (assignment_expression "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" (identifier "DAT_005eb528") (= "=") (pointer_expression "&PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" (& "&") (identifier "PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58"))) (; ";")) (expression_statement "DAT_005eb52c = &PTR_DAT_005d5c50;" (assignment_expression "DAT_005eb52c = &PTR_DAT_005d5c50" (identifier "DAT_005eb52c") (= "=") (pointer_expression "&PTR_DAT_005d5c50" (& "&") (identifier "PTR_DAT_005d5c50"))) (; ";")) (expression_statement "DAT_005eb530 = &PTR_DAT_005d5c48;" (assignment_expression "DAT_005eb530 = &PTR_DAT_005d5c48" (identifier "DAT_005eb530") (= "=") (pointer_expression "&PTR_DAT_005d5c48" (& "&") (identifier "PTR_DAT_005d5c48"))) (; ";")) (expression_statement "DAT_005eb534 = &PTR_DAT_005d5c40;" (assignment_expression "DAT_005eb534 = &PTR_DAT_005d5c40" (identifier "DAT_005eb534") (= "=") (pointer_expression "&PTR_DAT_005d5c40" (& "&") (identifier "PTR_DAT_005d5c40"))) (; ";")) (expression_statement "DAT_005eb538 = &PTR_DAT_005d5c38;" (assignment_expression "DAT_005eb538 = &PTR_DAT_005d5c38" (identifier "DAT_005eb538") (= "=") (pointer_expression "&PTR_DAT_005d5c38" (& "&") (identifier "PTR_DAT_005d5c38"))) (; ";")) (expression_statement "DAT_005eb53c = &PTR_DAT_005d5c30;" (assignment_expression "DAT_005eb53c = &PTR_DAT_005d5c30" (identifier "DAT_005eb53c") (= "=") (pointer_expression "&PTR_DAT_005d5c30" (& "&") (identifier "PTR_DAT_005d5c30"))) (; ";")) (expression_statement "FUN_003ac7d0(&DAT_005eb520);" (call_expression "FUN_003ac7d0(&DAT_005eb520)" (identifier "FUN_003ac7d0") (argument_list "(&DAT_005eb520)" (( "(") (pointer_expression "&DAT_005eb520" (& "&") (identifier "DAT_005eb520")) () ")"))) (; ";")) (expression_statement "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);" (call_expression "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" (identifier "__cxa_atexit") (argument_list "(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" (( "(") (identifier "FUN_001d1230") (, ",") (pointer_expression "&DAT_005eb528" (& "&") (identifier "DAT_005eb528")) (, ",") (pointer_expression "&PTR_LOOP_005ea2e4" (& "&") (identifier "PTR_LOOP_005ea2e4")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar4 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x10)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar3 = (uint *)*(&DAT_005eb528)[iVar5];" (assignment_expression "puVar3 = (uint *)*(&DAT_005eb528)[iVar5]" (identifier "puVar3") (= "=") (cast_expression "(uint *)*(&DAT_005eb528)[iVar5]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*(&DAT_005eb528)[iVar5]" (* "*") (subscript_expression "(&DAT_005eb528)[iVar5]" (parenthesized_expression "(&DAT_005eb528)" (( "(") (pointer_expression "&DAT_005eb528" (& "&") (identifier "DAT_005eb528")) () ")")) ([ "[") (identifier "iVar5") (] "]"))))) (; ";")) (if_statement "if (DAT_005eb520 == '\0') {\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" (if "if") (parenthesized_expression "(DAT_005eb520 == '\0')" (( "(") (binary_expression "DAT_005eb520 == '\0'" (identifier "DAT_005eb520") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar5 = FUN_003ac660(&DAT_005eb520);\n    if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }\n  }" ({ "{") (expression_statement "iVar5 = FUN_003ac660(&DAT_005eb520);" (assignment_expression "iVar5 = FUN_003ac660(&DAT_005eb520)" (identifier "iVar5") (= "=") (call_expression "FUN_003ac660(&DAT_005eb520)" (identifier "FUN_003ac660") (argument_list "(&DAT_005eb520)" (( "(") (pointer_expression "&DAT_005eb520" (& "&") (identifier "DAT_005eb520")) () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;\n      DAT_005eb52c = &PTR_DAT_005d5c50;\n      DAT_005eb530 = &PTR_DAT_005d5c48;\n      DAT_005eb534 = &PTR_DAT_005d5c40;\n      DAT_005eb538 = &PTR_DAT_005d5c38;\n      DAT_005eb53c = &PTR_DAT_005d5c30;\n      FUN_003ac7d0(&DAT_005eb520);\n      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);\n    }" ({ "{") (expression_statement "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;" (assignment_expression "DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" (identifier "DAT_005eb528") (= "=") (pointer_expression "&PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58" (& "&") (identifier "PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58"))) (; ";")) (expression_statement "DAT_005eb52c = &PTR_DAT_005d5c50;" (assignment_expression "DAT_005eb52c = &PTR_DAT_005d5c50" (identifier "DAT_005eb52c") (= "=") (pointer_expression "&PTR_DAT_005d5c50" (& "&") (identifier "PTR_DAT_005d5c50"))) (; ";")) (expression_statement "DAT_005eb530 = &PTR_DAT_005d5c48;" (assignment_expression "DAT_005eb530 = &PTR_DAT_005d5c48" (identifier "DAT_005eb530") (= "=") (pointer_expression "&PTR_DAT_005d5c48" (& "&") (identifier "PTR_DAT_005d5c48"))) (; ";")) (expression_statement "DAT_005eb534 = &PTR_DAT_005d5c40;" (assignment_expression "DAT_005eb534 = &PTR_DAT_005d5c40" (identifier "DAT_005eb534") (= "=") (pointer_expression "&PTR_DAT_005d5c40" (& "&") (identifier "PTR_DAT_005d5c40"))) (; ";")) (expression_statement "DAT_005eb538 = &PTR_DAT_005d5c38;" (assignment_expression "DAT_005eb538 = &PTR_DAT_005d5c38" (identifier "DAT_005eb538") (= "=") (pointer_expression "&PTR_DAT_005d5c38" (& "&") (identifier "PTR_DAT_005d5c38"))) (; ";")) (expression_statement "DAT_005eb53c = &PTR_DAT_005d5c30;" (assignment_expression "DAT_005eb53c = &PTR_DAT_005d5c30" (identifier "DAT_005eb53c") (= "=") (pointer_expression "&PTR_DAT_005d5c30" (& "&") (identifier "PTR_DAT_005d5c30"))) (; ";")) (expression_statement "FUN_003ac7d0(&DAT_005eb520);" (call_expression "FUN_003ac7d0(&DAT_005eb520)" (identifier "FUN_003ac7d0") (argument_list "(&DAT_005eb520)" (( "(") (pointer_expression "&DAT_005eb520" (& "&") (identifier "DAT_005eb520")) () ")"))) (; ";")) (expression_statement "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);" (call_expression "__cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" (identifier "__cxa_atexit") (argument_list "(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4)" (( "(") (identifier "FUN_001d1230") (, ",") (pointer_expression "&DAT_005eb528" (& "&") (identifier "DAT_005eb528")) (, ",") (pointer_expression "&PTR_LOOP_005ea2e4" (& "&") (identifier "PTR_LOOP_005ea2e4")) () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }" (if "if") (parenthesized_expression "(*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0)" (( "(") (binary_expression "*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0" (pointer_expression "*(int *)((int)(&DAT_005eb528)[iVar4] + 4)" (* "*") (cast_expression "(int *)((int)(&DAT_005eb528)[iVar4] + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(&DAT_005eb528)[iVar4] + 4)" (( "(") (binary_expression "(int)(&DAT_005eb528)[iVar4] + 4" (cast_expression "(int)(&DAT_005eb528)[iVar4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "(&DAT_005eb528)[iVar4]" (parenthesized_expression "(&DAT_005eb528)" (( "(") (pointer_expression "&DAT_005eb528" (& "&") (identifier "DAT_005eb528")) () ")")) ([ "[") (identifier "iVar4") (] "]"))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);\n    do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);\n  }" ({ "{") (expression_statement "puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);" (assignment_expression "puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4)" (identifier "puVar1") (= "=") (binary_expression "puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4)" (identifier "puVar3") (+ "+") (pointer_expression "*(int *)((int)(&DAT_005eb528)[iVar4] + 4)" (* "*") (cast_expression "(int *)((int)(&DAT_005eb528)[iVar4] + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(&DAT_005eb528)[iVar4] + 4)" (( "(") (binary_expression "(int)(&DAT_005eb528)[iVar4] + 4" (cast_expression "(int)(&DAT_005eb528)[iVar4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "(&DAT_005eb528)[iVar4]" (parenthesized_expression "(&DAT_005eb528)" (( "(") (pointer_expression "&DAT_005eb528" (& "&") (identifier "DAT_005eb528")) () ")")) ([ "[") (identifier "iVar4") (] "]"))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (do_statement "do {\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    } while (puVar1 != puVar3);" (do "do") (compound_statement "{\n      uVar2 = *puVar3;\n      puVar3 = puVar3 + 1;\n      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n      param_2 = param_2 + 1;\n    }" ({ "{") (expression_statement "uVar2 = *puVar3;" (assignment_expression "uVar2 = *puVar3" (identifier "uVar2") (= "=") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (; ";")) (expression_statement "puVar3 = puVar3 + 1;" (assignment_expression "puVar3 = puVar3 + 1" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 1" (identifier "puVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "*param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" (( "(") (binary_expression "uVar2 & 0xff0000" (identifier "uVar2") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" (( "(") (binary_expression "uVar2 & 0xff00" (identifier "uVar2") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar2 << 0x18" (identifier "uVar2") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar1 != puVar3)" (( "(") (binary_expression "puVar1 != puVar3" (identifier "puVar1") (!= "!=") (identifier "puVar3")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void do_write(Reloc_stub<64,_true> * this, uchar * view,
   section_size_type param_2) */

void __thiscall
anon_unknown.dwarf_109b185::Reloc_stub<64,_true>::do_write
          (Reloc_stub<64,_true> *this,uchar *view,section_size_type param_3)

{
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (identifier))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (identifier))) right: (number_literal)))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (return_statement))))

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

void MASKED(int param_1,uint *param_2)

{
  uint *puVar1;
  uint uVar2;
  uint *puVar3;
  int iVar4;
  int iVar5;
  
  iVar5 = *(int *)(param_1 + 0x10);
  if (DAT_005eb520 == '\0') {
    iVar4 = FUN_003ac660(&DAT_005eb520);
    if (iVar4 != 0) {
      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;
      DAT_005eb52c = &PTR_DAT_005d5c50;
      DAT_005eb530 = &PTR_DAT_005d5c48;
      DAT_005eb534 = &PTR_DAT_005d5c40;
      DAT_005eb538 = &PTR_DAT_005d5c38;
      DAT_005eb53c = &PTR_DAT_005d5c30;
      FUN_003ac7d0(&DAT_005eb520);
      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);
    }
  }
  iVar4 = *(int *)(param_1 + 0x10);
  puVar3 = (uint *)*(&DAT_005eb528)[iVar5];
  if (DAT_005eb520 == '\0') {
    iVar5 = FUN_003ac660(&DAT_005eb520);
    if (iVar5 != 0) {
      DAT_005eb528 = &PTR_s__N12_GLOBAL__N_114Target_aarch64_005d5c58;
      DAT_005eb52c = &PTR_DAT_005d5c50;
      DAT_005eb530 = &PTR_DAT_005d5c48;
      DAT_005eb534 = &PTR_DAT_005d5c40;
      DAT_005eb538 = &PTR_DAT_005d5c38;
      DAT_005eb53c = &PTR_DAT_005d5c30;
      FUN_003ac7d0(&DAT_005eb520);
      __cxa_atexit(FUN_001d1230,&DAT_005eb528,&PTR_LOOP_005ea2e4);
    }
  }
  if (*(int *)((int)(&DAT_005eb528)[iVar4] + 4) != 0) {
    puVar1 = puVar3 + *(int *)((int)(&DAT_005eb528)[iVar4] + 4);
    do {
      uVar2 = *puVar3;
      puVar3 = puVar3 + 1;
      *param_2 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
      param_2 = param_2 + 1;
    } while (puVar1 != puVar3);
  }
  return;
}

