
/* WARNING: Removing unreachable block (ram,0x003346f1) */
/* WARNING: Removing unreachable block (ram,0x00333fe4) */
/* WARNING: Removing unreachable block (ram,0x00333fec) */
/* WARNING: Removing unreachable block (ram,0x00334000) */
/* WARNING: Removing unreachable block (ram,0x00334005) */
/* WARNING: Removing unreachable block (ram,0x00334961) */
/* WARNING: Removing unreachable block (ram,0x00334013) */
/* WARNING: Removing unreachable block (ram,0x00334017) */
/* WARNING: Removing unreachable block (ram,0x00334020) */
/* WARNING: Removing unreachable block (ram,0x00333f98) */
/* WARNING: Removing unreachable block (ram,0x00333fa2) */
/* WARNING: Removing unreachable block (ram,0x00334690) */
/* WARNING: Removing unreachable block (ram,0x00333fb8) */
/* WARNING: Removing unreachable block (ram,0x00333fc0) */
/* WARNING: Removing unreachable block (ram,0x00333f64) */
/* WARNING: Removing unreachable block (ram,0x00333f6f) */
/* WARNING: Removing unreachable block (ram,0x003345a0) */
/* WARNING: Removing unreachable block (ram,0x00333f73) */
/* WARNING: Removing unreachable block (ram,0x00333fcc) */
/* WARNING: Removing unreachable block (ram,0x003346a0) */
/* WARNING: Removing unreachable block (ram,0x003346ab) */
/* WARNING: Removing unreachable block (ram,0x0033490d) */
/* WARNING: Removing unreachable block (ram,0x003349e0) */
/* WARNING: Removing unreachable block (ram,0x00334920) */
/* WARNING: Removing unreachable block (ram,0x00334929) */
/* WARNING: Removing unreachable block (ram,0x003349d1) */
/* WARNING: Removing unreachable block (ram,0x00334934) */
/* WARNING: Removing unreachable block (ram,0x003347b8) */
/* WARNING: Removing unreachable block (ram,0x00334409) */
/* WARNING: Removing unreachable block (ram,0x0033441b) */
/* WARNING: Removing unreachable block (ram,0x003347c2) */
/* WARNING: Restarted to delay deadcode elimination for space: stack */
/* std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::money_get<wchar_t,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::_M_extract<false>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,
   std::_Ios_Iostate&, std::string&) const */

undefined1  [16]
std::money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::
_M_extract<false>(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
                 undefined8 param_5,long param_6,uint *param_7,string *param_8)

{
  byte bVar1;
  long lVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  char cVar5;
  long lVar6;
  ulong uVar7;
  ulong uVar8;
  undefined1 auVar9 [16];
  undefined8 *local_b8;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined8 local_60;
  __use_cache<std::__moneypunct_cache<wchar_t,false>> local_4e [2];
  undefined4 local_4c;
  undefined1 *local_48;
  undefined1 *local_40 [2];
  
  local_78 = param_4;
  local_70 = param_5;
  local_68 = param_2;
  local_60 = param_3;
  use_facet<std::ctype<wchar_t>>((locale *)(param_6 + 0xd0));
  lVar6 = __use_cache<std::__moneypunct_cache<wchar_t,false>>::operator()
                    (local_4e,(locale *)(param_6 + 0xd0));
  local_48 = &DAT_0044a558;
  if (*(char *)(lVar6 + 0x20) != '\0') {
                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */
    std::string::reserve((string *)&local_48,0x20);
  }
  local_40[0] = &DAT_0044a558;
                    /* try { // try from 00333eba to 003349e9 has its CatchHandler @ 00334a01 */
  std::string::reserve((string *)local_40,0x20);
  local_4c = *(undefined4 *)(lVar6 + 0x68);
  lVar2 = 0;
  bVar1 = (byte)local_4c;
  while( true ) {
    if (bVar1 < 5) {
                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      auVar9 = (*(code *)(&DAT_0039430c +
                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()
      ;
      return auVar9;
    }
    if (3 < (int)lVar2 + 1) break;
    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);
    lVar2 = lVar2 + 1;
  }
  if ((1 < *(ulong *)(local_40[0] + -0x18)) &&
     (uVar7 = std::string::find_first_not_of((string *)local_40,'0',0), uVar7 != 0)) {
    uVar8 = *(ulong *)(local_40[0] + -0x18);
    if (uVar7 == 0xffffffffffffffff) {
      uVar7 = uVar8 - 1;
    }
    if (uVar7 <= uVar8) {
      uVar8 = uVar7;
    }
    std::string::_M_mutate((string *)local_40,0,uVar8,0);
  }
  if (*(long *)(local_48 + -0x18) != 0) {
    std::string::push_back((string *)&local_48,'\0');
    cVar5 = __verify_grouping(*(char **)(lVar6 + 0x10),*(ulong *)(lVar6 + 0x18),(string *)&local_48)
    ;
    if (cVar5 == '\0') {
      *param_7 = *param_7 | 4;
    }
  }
  std::string::swap(param_8,(string *)local_40);
  local_b8 = &local_78;
  cVar5 = istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>::equal
                    ((istreambuf_iterator<wchar_t,std::char_traits<wchar_t>> *)&local_68,
                     (istreambuf_iterator *)local_b8);
  uVar4 = local_60;
  uVar3 = local_68;
  if (cVar5 != '\0') {
    *param_7 = *param_7 | 2;
  }
  if ((allocator *)(local_40[0] + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38) {
    std::string::_Rep::_M_dispose((allocator *)(local_40[0] + -0x18));
  }
  if ((allocator *)(local_48 + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38) {
    std::string::_Rep::_M_dispose((allocator *)(local_48 + -0x18));
  }
  auVar9._8_8_ = uVar4;
  auVar9._0_8_ = uVar3;
  return auVar9;
}



/* WARNING: Removing unreachable block (ram,0x003346f1) */
/* WARNING: Removing unreachable block (ram,0x00333fe4) */
/* WARNING: Removing unreachable block (ram,0x00333fec) */
/* WARNING: Removing unreachable block (ram,0x00334000) */
/* WARNING: Removing unreachable block (ram,0x00334005) */
/* WARNING: Removing unreachable block (ram,0x00334961) */
/* WARNING: Removing unreachable block (ram,0x00334013) */
/* WARNING: Removing unreachable block (ram,0x00334017) */
/* WARNING: Removing unreachable block (ram,0x00334020) */
/* WARNING: Removing unreachable block (ram,0x00333f98) */
/* WARNING: Removing unreachable block (ram,0x00333fa2) */
/* WARNING: Removing unreachable block (ram,0x00334690) */
/* WARNING: Removing unreachable block (ram,0x00333fb8) */
/* WARNING: Removing unreachable block (ram,0x00333fc0) */
/* WARNING: Removing unreachable block (ram,0x00333f64) */
/* WARNING: Removing unreachable block (ram,0x00333f6f) */
/* WARNING: Removing unreachable block (ram,0x003345a0) */
/* WARNING: Removing unreachable block (ram,0x00333f73) */
/* WARNING: Removing unreachable block (ram,0x00333fcc) */
/* WARNING: Removing unreachable block (ram,0x003346a0) */
/* WARNING: Removing unreachable block (ram,0x003346ab) */
/* WARNING: Removing unreachable block (ram,0x0033490d) */
/* WARNING: Removing unreachable block (ram,0x003349e0) */
/* WARNING: Removing unreachable block (ram,0x00334920) */
/* WARNING: Removing unreachable block (ram,0x00334929) */
/* WARNING: Removing unreachable block (ram,0x003349d1) */
/* WARNING: Removing unreachable block (ram,0x00334934) */
/* WARNING: Removing unreachable block (ram,0x003347b8) */
/* WARNING: Removing unreachable block (ram,0x00334409) */
/* WARNING: Removing unreachable block (ram,0x0033441b) */
/* WARNING: Removing unreachable block (ram,0x003347c2) */
/* WARNING: Restarted to delay deadcode elimination for space: stack */

undefined1  [16]
FUN_00333df0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
            undefined8 param_5,long param_6,uint *param_7,undefined8 param_8)

{
  byte bVar1;
  long lVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  char cVar5;
  long lVar6;
  ulong uVar7;
  ulong uVar8;
  undefined1 auVar9 [16];
  undefined8 *local_b8;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined8 local_60;
  undefined1 local_4e;
  undefined1 local_4d;
  undefined4 local_4c;
  undefined1 *local_48;
  undefined1 *local_40 [2];
  
  local_78 = param_4;
  local_70 = param_5;
  local_68 = param_2;
  local_60 = param_3;
  FUN_00327630(param_6 + 0xd0);
  lVar6 = FUN_0032aad0(&local_4e,param_6 + 0xd0);
  local_48 = &DAT_0044a558;
  if (*(char *)(lVar6 + 0x20) != '\0') {
                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */
    FUN_0030e7a0(&local_48,0x20);
  }
  local_40[0] = &DAT_0044a558;
                    /* try { // try from 00333eba to 003349e9 has its CatchHandler @ 00334a01 */
  FUN_0030e7a0(local_40,0x20);
  local_4c = *(undefined4 *)(lVar6 + 0x68);
  lVar2 = 0;
  bVar1 = (byte)local_4c;
  while( true ) {
    if (bVar1 < 5) {
                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      auVar9 = (*(code *)(&DAT_0039430c +
                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()
      ;
      return auVar9;
    }
    if (3 < (int)lVar2 + 1) break;
    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);
    lVar2 = lVar2 + 1;
  }
  if ((1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0))
  {
    uVar8 = *(ulong *)(local_40[0] + -0x18);
    if (uVar7 == 0xffffffffffffffff) {
      uVar7 = uVar8 - 1;
    }
    if (uVar7 <= uVar8) {
      uVar8 = uVar7;
    }
    FUN_0030dbd0(local_40,0,uVar8,0);
  }
  if (*(long *)(local_48 + -0x18) != 0) {
    FUN_0030ec80(&local_48,0);
    cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);
    if (cVar5 == '\0') {
      *param_7 = *param_7 | 4;
    }
  }
  FUN_0030ce20(param_8,local_40);
  local_b8 = &local_78;
  cVar5 = FUN_0032c160(&local_68,local_b8);
  uVar4 = local_60;
  uVar3 = local_68;
  if (cVar5 != '\0') {
    *param_7 = *param_7 | 2;
  }
  if (local_40[0] + -0x18 != PTR_DAT_0043dc38) {
    FUN_003253b0(local_40[0] + -0x18,&local_4d);
  }
  if (local_48 + -0x18 != PTR_DAT_0043dc38) {
    FUN_003253b0(local_48 + -0x18,&local_4d);
  }
  auVar9._8_8_ = uVar4;
  auVar9._0_8_ = uVar3;
  return auVar9;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
LEA RBX,[R9 + 0xd0]
MOV RDI,RBX
SUB RSP,0xb8
MOV qword ptr [RSP + 0x80],RSI
MOV qword ptr [RSP + 0x88],RDX
MOV qword ptr [RSP + 0x70],RCX
MOV qword ptr [RSP + 0x78],R8
MOV qword ptr [RSP + 0x68],R9
CALL 0x00327630
LEA RDI,[RSP + 0x9a]
MOV RSI,RBX
MOV qword ptr [RSP + 0x40],RAX
CALL 0x0032aad0
MOV byte ptr [RSP + 0x66],0x0
MOV R13,RAX
ADD RAX,0x6c
CMP qword ptr [R13 + 0x48],0x0
MOV qword ptr [RSP + 0x20],RAX
JZ 0x00333e66
CMP qword ptr [R13 + 0x58],0x0
SETNZ byte ptr [RSP + 0x66]
LEA RAX,[0x44a540]
ADD RAX,0x18
CMP byte ptr [R13 + 0x20],0x0
MOV qword ptr [RSP + 0xa0],RAX
JZ 0x00333e92
LEA RDI,[RSP + 0xa0]
MOV ESI,0x20
CALL 0x0030e7a0
LEA RAX,[0x44a540]
MOV ESI,0x20
ADD RAX,0x18
MOV qword ptr [RSP + 0xa8],RAX
LEA RAX,[RSP + 0xa8]
MOV RDI,RAX
MOV qword ptr [RSP + 0x38],RAX
CALL 0x0030e7a0
LEA RAX,[R13 + 0x70]
XOR R14D,R14D
XOR R15D,R15D
MOV byte ptr [RSP + 0x65],0x0
MOV qword ptr [RSP],RAX
MOV EAX,dword ptr [R13 + 0x68]
MOV dword ptr [RSP + 0x60],0x0
MOV dword ptr [RSP + 0x9c],EAX
LEA RAX,[RSP + 0x9c]
MOV qword ptr [RSP + 0x50],RAX
LEA RAX,[RSP + 0x70]
MOV qword ptr [RSP + 0x18],RAX
LEA RAX,[RSP + 0xa0]
MOV qword ptr [RSP + 0x48],RAX
MOV RAX,qword ptr [RSP + 0x50]
MOV qword ptr [RSP + 0x28],0x0
CMP byte ptr [RAX + R14*0x1],0x4
MOV byte ptr [RSP + 0x67],0x0
JA 0x00334588
MOVZX EAX,byte ptr [RAX + R14*0x1]
LEA RCX,[0x39430c]
MOVSXD RAX,dword ptr [RCX + RAX*0x4]
ADD RAX,RCX
JMP RAX
CMP qword ptr [RSP + 0x28],0x1
SETA AL
AND EAX,R12D
TEST AL,AL
JZ 0x003348b0
CMP byte ptr [RSP + 0x67],0x0
JNZ 0x003345a0
MOV R12,qword ptr [R13 + 0x40]
LEA RAX,[RSP + 0x70]
MOV EBP,0x1
LEA RBX,[RSP + 0x80]
MOV R14D,0xffffffff
MOV qword ptr [RSP + 0x30],RAX
JMP 0x00333fcc
CMP dword ptr [R12 + RBP*0x4],EAX
JNZ 0x0033441b
MOV RDI,qword ptr [RSP + 0x80]
MOV RAX,qword ptr [RDI + 0x10]
CMP RAX,qword ptr [RDI + 0x18]
JNC 0x00334690
ADD RAX,0x4
MOV qword ptr [RDI + 0x10],RAX
MOV dword ptr [RSP + 0x88],R14D
ADD RBP,0x1
MOV RSI,qword ptr [RSP + 0x30]
MOV RDI,RBX
CALL 0x0032c160
CMP qword ptr [RSP + 0x28],RBP
JBE 0x003346a0
CMP AL,0x1
JZ 0x003346a0
MOV RDI,qword ptr [RSP + 0x80]
MOV EAX,dword ptr [RSP + 0x88]
TEST RDI,RDI
JZ 0x00333f98
CMP EAX,-0x1
JNZ 0x00333f98
MOV RAX,qword ptr [RDI + 0x10]
CMP RAX,qword ptr [RDI + 0x18]
JNC 0x00334961
MOV EAX,dword ptr [RAX]
MOV EDX,EAX
CMP EDX,-0x1
JNZ 0x00333f98
MOV qword ptr [RSP + 0x80],0x0
JMP 0x00333f98
LEA RAX,[RSP + 0x70]
LEA RBX,[RSP + 0x80]
MOV qword ptr [RSP + 0x30],RAX
MOV RAX,qword ptr [RSP + 0xf0]
OR dword ptr [RAX],0x4
MOV RSI,qword ptr [RSP + 0x30]
MOV RDI,RBX
CALL 0x0032c160
TEST AL,AL
JZ 0x00334442
MOV RAX,qword ptr [RSP + 0xf0]
OR dword ptr [RAX],0x2
MOV RCX,qword ptr [RSP + 0xa8]
MOV RAX,qword ptr [RSP + 0x80]
MOV RDX,qword ptr [RSP + 0x88]
LEA RDI,[RCX + -0x18]
CMP RDI,qword ptr [0x0043dc38]
JNZ 0x00334992
MOV RCX,qword ptr [RSP + 0xa0]
LEA RDI,[RCX + -0x18]
CMP RDI,qword ptr [0x0043dc38]
JNZ 0x0033496e
ADD RSP,0xb8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA EAX,[R14 + 0x1]
CMP EAX,0x3
JG 0x00333f50
TEST BPL,BPL
JNZ 0x00333f50
MOV RAX,qword ptr [RSP + 0x50]
ADD R14,0x1
CMP byte ptr [RAX + R14*0x1],0x4
JBE 0x00333f27
XOR EBP,EBP
NOP word ptr [RAX + RAX*0x1]
MOV R12D,0x1
JMP 0x0033455e
MOV R12,qword ptr [R13 + 0x50]
JMP 0x00333f73
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x50]
JMP 0x00333fc0
CMP qword ptr [RSP + 0x28],RBP
JNZ 0x0033441b
MOV RAX,qword ptr [RSP + 0xa8]
CMP qword ptr [RAX + -0x18],0x1
JA 0x003347d0
CMP byte ptr [RSP + 0x67],0x0
JNZ 0x0033490d
MOV RAX,qword ptr [RSP + 0xa0]
CMP qword ptr [RAX + -0x18],0x0
JZ 0x00334718
MOVSX EAX,byte ptr [RSP + 0x60]
MOVSX ESI,R15B
CMP byte ptr [RSP + 0x65],0x0
LEA RBX,[RSP + 0xa0]
MOV RDI,RBX
CMOVNZ ESI,EAX
CALL 0x0030ec80
MOV RSI,qword ptr [R13 + 0x18]
MOV RDI,qword ptr [R13 + 0x10]
MOV RDX,RBX
CALL 0x00323270
TEST AL,AL
JNZ 0x00334718
MOV RAX,qword ptr [RSP + 0xf0]
OR dword ptr [RAX],0x4
CMP byte ptr [RSP + 0x65],0x0
JNZ 0x003347b8
MOV RSI,qword ptr [RSP + 0x38]
MOV RDI,qword ptr [RSP + 0xf8]
CALL 0x0030ce20
LEA RAX,[RSP + 0x70]
LEA RBX,[RSP + 0x80]
MOV qword ptr [RSP + 0x30],RAX
JMP 0x00334426
CMP dword ptr [R13 + 0x60],R15D
JNZ 0x00334409
JMP 0x00334723
MOV RBX,qword ptr [RSP + 0x38]
XOR EDX,EDX
MOV ESI,0x30
MOV RDI,RBX
CALL 0x0030d360
TEST RAX,RAX
JZ 0x003346be
MOV RDX,qword ptr [RSP + 0xa8]
CMP RAX,-0x1
MOV RDI,RBX
MOV RDX,qword ptr [RDX + -0x18]
LEA RCX,[RDX + -0x1]
CMOVZ RAX,RCX
CMP RAX,RDX
CMOVBE RDX,RAX
XOR ECX,ECX
XOR ESI,ESI
CALL 0x0030dbd0
JMP 0x003346be
TEST R12B,R12B
JZ 0x00334409
MOV RAX,qword ptr [RSP + 0xa8]
CMP qword ptr [RAX + -0x18],0x1
JBE 0x003346be
JMP 0x003347d0
MOV RAX,qword ptr [RSP + 0xa8]
MOV EDX,dword ptr [RAX + -0x8]
TEST EDX,EDX
JNS 0x003349e0
CMP byte ptr [RAX],0x30
JZ 0x003346c9
MOV EAX,dword ptr [RAX + -0x8]
TEST EAX,EAX
JNS 0x003349d1
MOV RDI,qword ptr [RSP + 0x38]
MOV R8D,0x2d
XOR EDX,EDX
XOR ESI,ESI
MOV ECX,0x1
CALL 0x0030e0b0
MOV RAX,qword ptr [RSP + 0xa8]
MOV dword ptr [RAX + -0x8],0xffffffff
JMP 0x003346c9
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x48]
MOV EDX,EAX
JMP 0x00334017
LEA RSI,[RSP + 0x9b]
MOV qword ptr [RSP],RAX
MOV qword ptr [RSP + 0x8],RDX
CALL 0x003253b0
MOV RAX,qword ptr [RSP]
MOV RDX,qword ptr [RSP + 0x8]
JMP 0x00334484
LEA RSI,[RSP + 0x9b]
MOV qword ptr [RSP],RAX
MOV qword ptr [RSP + 0x8],RDX
CALL 0x003253b0
MOV RAX,qword ptr [RSP]
MOV RDX,qword ptr [RSP + 0x8]
JMP 0x0033446b
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0030dde0
JMP 0x00334934
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0030dde0
MOV RAX,qword ptr [RSP + 0xa8]
JMP 0x00334920
(translation_unit "/* WARNING: Removing unreachable block (ram,0x003346f1) */\n/* WARNING: Removing unreachable block (ram,0x00333fe4) */\n/* WARNING: Removing unreachable block (ram,0x00333fec) */\n/* WARNING: Removing unreachable block (ram,0x00334000) */\n/* WARNING: Removing unreachable block (ram,0x00334005) */\n/* WARNING: Removing unreachable block (ram,0x00334961) */\n/* WARNING: Removing unreachable block (ram,0x00334013) */\n/* WARNING: Removing unreachable block (ram,0x00334017) */\n/* WARNING: Removing unreachable block (ram,0x00334020) */\n/* WARNING: Removing unreachable block (ram,0x00333f98) */\n/* WARNING: Removing unreachable block (ram,0x00333fa2) */\n/* WARNING: Removing unreachable block (ram,0x00334690) */\n/* WARNING: Removing unreachable block (ram,0x00333fb8) */\n/* WARNING: Removing unreachable block (ram,0x00333fc0) */\n/* WARNING: Removing unreachable block (ram,0x00333f64) */\n/* WARNING: Removing unreachable block (ram,0x00333f6f) */\n/* WARNING: Removing unreachable block (ram,0x003345a0) */\n/* WARNING: Removing unreachable block (ram,0x00333f73) */\n/* WARNING: Removing unreachable block (ram,0x00333fcc) */\n/* WARNING: Removing unreachable block (ram,0x003346a0) */\n/* WARNING: Removing unreachable block (ram,0x003346ab) */\n/* WARNING: Removing unreachable block (ram,0x0033490d) */\n/* WARNING: Removing unreachable block (ram,0x003349e0) */\n/* WARNING: Removing unreachable block (ram,0x00334920) */\n/* WARNING: Removing unreachable block (ram,0x00334929) */\n/* WARNING: Removing unreachable block (ram,0x003349d1) */\n/* WARNING: Removing unreachable block (ram,0x00334934) */\n/* WARNING: Removing unreachable block (ram,0x003347b8) */\n/* WARNING: Removing unreachable block (ram,0x00334409) */\n/* WARNING: Removing unreachable block (ram,0x0033441b) */\n/* WARNING: Removing unreachable block (ram,0x003347c2) */\n/* WARNING: Restarted to delay deadcode elimination for space: stack */\n\nundefined1  [16]\nFUN_00333df0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n            undefined8 param_5,long param_6,uint *param_7,undefined8 param_8)\n\n{\n  byte bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  char cVar5;\n  long lVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined1 auVar9 [16];\n  undefined8 *local_b8;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined1 local_4e;\n  undefined1 local_4d;\n  undefined4 local_4c;\n  undefined1 *local_48;\n  undefined1 *local_40 [2];\n  \n  local_78 = param_4;\n  local_70 = param_5;\n  local_68 = param_2;\n  local_60 = param_3;\n  FUN_00327630(param_6 + 0xd0);\n  lVar6 = FUN_0032aad0(&local_4e,param_6 + 0xd0);\n  local_48 = &DAT_0044a558;\n  if (*(char *)(lVar6 + 0x20) != '\0') {\n                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */\n    FUN_0030e7a0(&local_48,0x20);\n  }\n  local_40[0] = &DAT_0044a558;\n                    /* try { // try from 00333eba to 003349e9 has its CatchHandler @ 00334a01 */\n  FUN_0030e7a0(local_40,0x20);\n  local_4c = *(undefined4 *)(lVar6 + 0x68);\n  lVar2 = 0;\n  bVar1 = (byte)local_4c;\n  while( true ) {\n    if (bVar1 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }\n  if ((1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0))\n  {\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    FUN_0030dbd0(local_40,0,uVar8,0);\n  }\n  if (*(long *)(local_48 + -0x18) != 0) {\n    FUN_0030ec80(&local_48,0);\n    cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }\n  FUN_0030ce20(param_8,local_40);\n  local_b8 = &local_78;\n  cVar5 = FUN_0032c160(&local_68,local_b8);\n  uVar4 = local_60;\n  uVar3 = local_68;\n  if (cVar5 != '\0') {\n    *param_7 = *param_7 | 2;\n  }\n  if (local_40[0] + -0x18 != PTR_DAT_0043dc38) {\n    FUN_003253b0(local_40[0] + -0x18,&local_4d);\n  }\n  if (local_48 + -0x18 != PTR_DAT_0043dc38) {\n    FUN_003253b0(local_48 + -0x18,&local_4d);\n  }\n  auVar9._8_8_ = uVar4;\n  auVar9._0_8_ = uVar3;\n  return auVar9;\n}\n\n" comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (declaration "FUN_00333df0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n            undefined8 param_5,long param_6,uint *param_7,undefined8 param_8)\n\n{\n  byte bVar1;" (macro_type_specifier "FUN_00333df0(undefined8" identifier ( (type_descriptor "undefined8" type_identifier) )) identifier , identifier (ERROR "param_2" identifier) , identifier (ERROR "param_3" identifier) , identifier (ERROR "param_4" identifier) , identifier (ERROR "param_5" identifier) , (ERROR "long" identifier) identifier , (ERROR "uint" identifier) (pointer_declarator "*param_7" * identifier) , (ERROR "undefined8 param_8)\n\n{\n  byte" identifier identifier ) { identifier) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "undefined1 auVar9 [16];" type_identifier (array_declarator "auVar9 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined1 local_4e;" type_identifier identifier ;) (declaration "undefined1 local_4d;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined1 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined1 *local_40 [2];" type_identifier (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (expression_statement "local_70 = param_5;" (assignment_expression "local_70 = param_5" identifier = identifier) ;) (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" identifier = identifier) ;) (expression_statement "local_60 = param_3;" (assignment_expression "local_60 = param_3" identifier = identifier) ;) (expression_statement "FUN_00327630(param_6 + 0xd0);" (call_expression "FUN_00327630(param_6 + 0xd0)" identifier (argument_list "(param_6 + 0xd0)" ( (binary_expression "param_6 + 0xd0" identifier + number_literal) ))) ;) (expression_statement "lVar6 = FUN_0032aad0(&local_4e,param_6 + 0xd0);" (assignment_expression "lVar6 = FUN_0032aad0(&local_4e,param_6 + 0xd0)" identifier = (call_expression "FUN_0032aad0(&local_4e,param_6 + 0xd0)" identifier (argument_list "(&local_4e,param_6 + 0xd0)" ( (pointer_expression "&local_4e" & identifier) , (binary_expression "param_6 + 0xd0" identifier + number_literal) )))) ;) (expression_statement "local_48 = &DAT_0044a558;" (assignment_expression "local_48 = &DAT_0044a558" identifier = (pointer_expression "&DAT_0044a558" & identifier)) ;) (if_statement "if (*(char *)(lVar6 + 0x20) != '\0') {\n                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */\n    FUN_0030e7a0(&local_48,0x20);\n  }" if (parenthesized_expression "(*(char *)(lVar6 + 0x20) != '\0')" ( (binary_expression "*(char *)(lVar6 + 0x20) != '\0'" (pointer_expression "*(char *)(lVar6 + 0x20)" * (cast_expression "(char *)(lVar6 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */\n    FUN_0030e7a0(&local_48,0x20);\n  }" { comment (expression_statement "FUN_0030e7a0(&local_48,0x20);" (call_expression "FUN_0030e7a0(&local_48,0x20)" identifier (argument_list "(&local_48,0x20)" ( (pointer_expression "&local_48" & identifier) , number_literal ))) ;) })) (expression_statement "local_40[0] = &DAT_0044a558;" (assignment_expression "local_40[0] = &DAT_0044a558" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (pointer_expression "&DAT_0044a558" & identifier)) ;) comment (expression_statement "FUN_0030e7a0(local_40,0x20);" (call_expression "FUN_0030e7a0(local_40,0x20)" identifier (argument_list "(local_40,0x20)" ( identifier , number_literal ))) ;) (expression_statement "local_4c = *(undefined4 *)(lVar6 + 0x68);" (assignment_expression "local_4c = *(undefined4 *)(lVar6 + 0x68)" identifier = (pointer_expression "*(undefined4 *)(lVar6 + 0x68)" * (cast_expression "(undefined4 *)(lVar6 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x68)" ( (binary_expression "lVar6 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = (byte)local_4c;" (assignment_expression "bVar1 = (byte)local_4c" identifier = (cast_expression "(byte)local_4c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (while_statement "while( true ) {\n    if (bVar1 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (bVar1 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }" { (if_statement "if (bVar1 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }" if (parenthesized_expression "(bVar1 < 5)" ( (binary_expression "bVar1 < 5" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }" { comment comment (expression_statement "auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;" (assignment_expression "auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()" identifier = (call_expression "(*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()" (parenthesized_expression "(*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))" ( (pointer_expression "*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" * (cast_expression "(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" ( (binary_expression "&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" (pointer_expression "&DAT_0039430c" & identifier) + (pointer_expression "*(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" * (cast_expression "(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" ( (binary_expression "&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4" (pointer_expression "&DAT_0039430c" & identifier) + (binary_expression "(ulong)*(byte *)((long)&local_4c + lVar2) * 4" (binary_expression "(ulong)*(byte *)((long)&local_4c + lVar2)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(byte *)((long)&local_4c + lVar2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_4c + lVar2)" ( (binary_expression "(long)&local_4c + lVar2" (cast_expression "(long)&local_4c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_4c" & identifier)) + identifier) )))) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return auVar9;" return identifier ;) })) (if_statement "if (3 < (int)lVar2 + 1) break;" if (parenthesized_expression "(3 < (int)lVar2 + 1)" ( (binary_expression "3 < (int)lVar2 + 1" number_literal < (binary_expression "(int)lVar2 + 1" (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);" (assignment_expression "bVar1 = *(byte *)((long)&local_4c + lVar2 + 1)" identifier = (pointer_expression "*(byte *)((long)&local_4c + lVar2 + 1)" * (cast_expression "(byte *)((long)&local_4c + lVar2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_4c + lVar2 + 1)" ( (binary_expression "(long)&local_4c + lVar2 + 1" (binary_expression "(long)&local_4c + lVar2" (cast_expression "(long)&local_4c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_4c" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" identifier = (binary_expression "lVar2 + 1" identifier + number_literal)) ;) })) (if_statement "if ((1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0))\n  {\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    FUN_0030dbd0(local_40,0,uVar8,0);\n  }" if (parenthesized_expression "((1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0))" ( (binary_expression "(1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0)" (parenthesized_expression "(1 < *(ulong *)(local_40[0] + -0x18))" ( (binary_expression "1 < *(ulong *)(local_40[0] + -0x18)" number_literal < (pointer_expression "*(ulong *)(local_40[0] + -0x18)" * (cast_expression "(ulong *)(local_40[0] + -0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[0] + -0x18)" ( (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) ))))) )) && (parenthesized_expression "(uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0)" ( (comma_expression "uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0" (assignment_expression "uVar7 = FUN_0030d360(local_40,0x30,0)" identifier = (call_expression "FUN_0030d360(local_40,0x30,0)" identifier (argument_list "(local_40,0x30,0)" ( identifier , number_literal , number_literal )))) , (binary_expression "uVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    FUN_0030dbd0(local_40,0,uVar8,0);\n  }" { (expression_statement "uVar8 = *(ulong *)(local_40[0] + -0x18);" (assignment_expression "uVar8 = *(ulong *)(local_40[0] + -0x18)" identifier = (pointer_expression "*(ulong *)(local_40[0] + -0x18)" * (cast_expression "(ulong *)(local_40[0] + -0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[0] + -0x18)" ( (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }" if (parenthesized_expression "(uVar7 == 0xffffffffffffffff)" ( (binary_expression "uVar7 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n      uVar7 = uVar8 - 1;\n    }" { (expression_statement "uVar7 = uVar8 - 1;" (assignment_expression "uVar7 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) })) (if_statement "if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }" if (parenthesized_expression "(uVar7 <= uVar8)" ( (binary_expression "uVar7 <= uVar8" identifier <= identifier) )) (compound_statement "{\n      uVar8 = uVar7;\n    }" { (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) })) (expression_statement "FUN_0030dbd0(local_40,0,uVar8,0);" (call_expression "FUN_0030dbd0(local_40,0,uVar8,0)" identifier (argument_list "(local_40,0,uVar8,0)" ( identifier , number_literal , identifier , number_literal ))) ;) })) (if_statement "if (*(long *)(local_48 + -0x18) != 0) {\n    FUN_0030ec80(&local_48,0);\n    cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }" if (parenthesized_expression "(*(long *)(local_48 + -0x18) != 0)" ( (binary_expression "*(long *)(local_48 + -0x18) != 0" (pointer_expression "*(long *)(local_48 + -0x18)" * (cast_expression "(long *)(local_48 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + -0x18)" ( (binary_expression "local_48 + -0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0030ec80(&local_48,0);\n    cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }" { (expression_statement "FUN_0030ec80(&local_48,0);" (call_expression "FUN_0030ec80(&local_48,0)" identifier (argument_list "(&local_48,0)" ( (pointer_expression "&local_48" & identifier) , number_literal ))) ;) (expression_statement "cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);" (assignment_expression "cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48)" identifier = (call_expression "FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48)" identifier (argument_list "(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48)" ( (pointer_expression "*(undefined8 *)(lVar6 + 0x10)" * (cast_expression "(undefined8 *)(lVar6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar6 + 0x18)" * (cast_expression "(undefined8 *)(lVar6 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) , (pointer_expression "&local_48" & identifier) )))) ;) (if_statement "if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *param_7 = *param_7 | 4;\n    }" { (expression_statement "*param_7 = *param_7 | 4;" (assignment_expression "*param_7 = *param_7 | 4" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 | 4" (pointer_expression "*param_7" * identifier) | number_literal)) ;) })) })) (expression_statement "FUN_0030ce20(param_8,local_40);" (call_expression "FUN_0030ce20(param_8,local_40)" identifier (argument_list "(param_8,local_40)" ( identifier , identifier ))) ;) (expression_statement "local_b8 = &local_78;" (assignment_expression "local_b8 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "cVar5 = FUN_0032c160(&local_68,local_b8);" (assignment_expression "cVar5 = FUN_0032c160(&local_68,local_b8)" identifier = (call_expression "FUN_0032c160(&local_68,local_b8)" identifier (argument_list "(&local_68,local_b8)" ( (pointer_expression "&local_68" & identifier) , identifier )))) ;) (expression_statement "uVar4 = local_60;" (assignment_expression "uVar4 = local_60" identifier = identifier) ;) (expression_statement "uVar3 = local_68;" (assignment_expression "uVar3 = local_68" identifier = identifier) ;) (if_statement "if (cVar5 != '\0') {\n    *param_7 = *param_7 | 2;\n  }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *param_7 = *param_7 | 2;\n  }" { (expression_statement "*param_7 = *param_7 | 2;" (assignment_expression "*param_7 = *param_7 | 2" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 | 2" (pointer_expression "*param_7" * identifier) | number_literal)) ;) })) (if_statement "if (local_40[0] + -0x18 != PTR_DAT_0043dc38) {\n    FUN_003253b0(local_40[0] + -0x18,&local_4d);\n  }" if (parenthesized_expression "(local_40[0] + -0x18 != PTR_DAT_0043dc38)" ( (binary_expression "local_40[0] + -0x18 != PTR_DAT_0043dc38" (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) != identifier) )) (compound_statement "{\n    FUN_003253b0(local_40[0] + -0x18,&local_4d);\n  }" { (expression_statement "FUN_003253b0(local_40[0] + -0x18,&local_4d);" (call_expression "FUN_003253b0(local_40[0] + -0x18,&local_4d)" identifier (argument_list "(local_40[0] + -0x18,&local_4d)" ( (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) , (pointer_expression "&local_4d" & identifier) ))) ;) })) (if_statement "if (local_48 + -0x18 != PTR_DAT_0043dc38) {\n    FUN_003253b0(local_48 + -0x18,&local_4d);\n  }" if (parenthesized_expression "(local_48 + -0x18 != PTR_DAT_0043dc38)" ( (binary_expression "local_48 + -0x18 != PTR_DAT_0043dc38" (binary_expression "local_48 + -0x18" identifier + number_literal) != identifier) )) (compound_statement "{\n    FUN_003253b0(local_48 + -0x18,&local_4d);\n  }" { (expression_statement "FUN_003253b0(local_48 + -0x18,&local_4d);" (call_expression "FUN_003253b0(local_48 + -0x18,&local_4d)" identifier (argument_list "(local_48 + -0x18,&local_4d)" ( (binary_expression "local_48 + -0x18" identifier + number_literal) , (pointer_expression "&local_4d" & identifier) ))) ;) })) (expression_statement "auVar9._8_8_ = uVar4;" (assignment_expression "auVar9._8_8_ = uVar4" (field_expression "auVar9._8_8_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar9._0_8_ = uVar3;" (assignment_expression "auVar9._0_8_ = uVar3" (field_expression "auVar9._0_8_" identifier . field_identifier) = identifier) ;) (return_statement "return auVar9;" return identifier ;) (ERROR "}" }))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x003346f1) */\n/* WARNING: Removing unreachable block (ram,0x00333fe4) */\n/* WARNING: Removing unreachable block (ram,0x00333fec) */\n/* WARNING: Removing unreachable block (ram,0x00334000) */\n/* WARNING: Removing unreachable block (ram,0x00334005) */\n/* WARNING: Removing unreachable block (ram,0x00334961) */\n/* WARNING: Removing unreachable block (ram,0x00334013) */\n/* WARNING: Removing unreachable block (ram,0x00334017) */\n/* WARNING: Removing unreachable block (ram,0x00334020) */\n/* WARNING: Removing unreachable block (ram,0x00333f98) */\n/* WARNING: Removing unreachable block (ram,0x00333fa2) */\n/* WARNING: Removing unreachable block (ram,0x00334690) */\n/* WARNING: Removing unreachable block (ram,0x00333fb8) */\n/* WARNING: Removing unreachable block (ram,0x00333fc0) */\n/* WARNING: Removing unreachable block (ram,0x00333f64) */\n/* WARNING: Removing unreachable block (ram,0x00333f6f) */\n/* WARNING: Removing unreachable block (ram,0x003345a0) */\n/* WARNING: Removing unreachable block (ram,0x00333f73) */\n/* WARNING: Removing unreachable block (ram,0x00333fcc) */\n/* WARNING: Removing unreachable block (ram,0x003346a0) */\n/* WARNING: Removing unreachable block (ram,0x003346ab) */\n/* WARNING: Removing unreachable block (ram,0x0033490d) */\n/* WARNING: Removing unreachable block (ram,0x003349e0) */\n/* WARNING: Removing unreachable block (ram,0x00334920) */\n/* WARNING: Removing unreachable block (ram,0x00334929) */\n/* WARNING: Removing unreachable block (ram,0x003349d1) */\n/* WARNING: Removing unreachable block (ram,0x00334934) */\n/* WARNING: Removing unreachable block (ram,0x003347b8) */\n/* WARNING: Removing unreachable block (ram,0x00334409) */\n/* WARNING: Removing unreachable block (ram,0x0033441b) */\n/* WARNING: Removing unreachable block (ram,0x003347c2) */\n/* WARNING: Restarted to delay deadcode elimination for space: stack */\n/* std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::money_get<wchar_t,\n   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::_M_extract<false>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,\n   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,\n   std::_Ios_Iostate&, std::string&) const */\n\nundefined1  [16]\nstd::money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n_M_extract<false>(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,long param_6,uint *param_7,string *param_8)\n\n{\n  byte bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  char cVar5;\n  long lVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined1 auVar9 [16];\n  undefined8 *local_b8;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  __use_cache<std::__moneypunct_cache<wchar_t,false>> local_4e [2];\n  undefined4 local_4c;\n  undefined1 *local_48;\n  undefined1 *local_40 [2];\n  \n  local_78 = param_4;\n  local_70 = param_5;\n  local_68 = param_2;\n  local_60 = param_3;\n  use_facet<std::ctype<wchar_t>>((locale *)(param_6 + 0xd0));\n  lVar6 = __use_cache<std::__moneypunct_cache<wchar_t,false>>::operator()\n                    (local_4e,(locale *)(param_6 + 0xd0));\n  local_48 = &DAT_0044a558;\n  if (*(char *)(lVar6 + 0x20) != '\0') {\n                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */\n    std::string::reserve((string *)&local_48,0x20);\n  }\n  local_40[0] = &DAT_0044a558;\n                    /* try { // try from 00333eba to 003349e9 has its CatchHandler @ 00334a01 */\n  std::string::reserve((string *)local_40,0x20);\n  local_4c = *(undefined4 *)(lVar6 + 0x68);\n  lVar2 = 0;\n  bVar1 = (byte)local_4c;\n  while( true ) {\n    if (bVar1 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }\n  if ((1 < *(ulong *)(local_40[0] + -0x18)) &&\n     (uVar7 = std::string::find_first_not_of((string *)local_40,'0',0), uVar7 != 0)) {\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    std::string::_M_mutate((string *)local_40,0,uVar8,0);\n  }\n  if (*(long *)(local_48 + -0x18) != 0) {\n    std::string::push_back((string *)&local_48,'\0');\n    cVar5 = __verify_grouping(*(char **)(lVar6 + 0x10),*(ulong *)(lVar6 + 0x18),(string *)&local_48)\n    ;\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }\n  std::string::swap(param_8,(string *)local_40);\n  local_b8 = &local_78;\n  cVar5 = istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>::equal\n                    ((istreambuf_iterator<wchar_t,std::char_traits<wchar_t>> *)&local_68,\n                     (istreambuf_iterator *)local_b8);\n  uVar4 = local_60;\n  uVar3 = local_68;\n  if (cVar5 != '\0') {\n    *param_7 = *param_7 | 2;\n  }\n  if ((allocator *)(local_40[0] + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38) {\n    std::string::_Rep::_M_dispose((allocator *)(local_40[0] + -0x18));\n  }\n  if ((allocator *)(local_48 + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38) {\n    std::string::_Rep::_M_dispose((allocator *)(local_48 + -0x18));\n  }\n  auVar9._8_8_ = uVar4;\n  auVar9._0_8_ = uVar3;\n  return auVar9;\n}\n\n" comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (labeled_statement "std::money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n_M_extract<false>(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,long param_6,uint *param_7,string *param_8)" statement_identifier (ERROR "::money_get<wchar_t,std::istreambuf_iterator<wchar_t,std:" : : (comma_expression "money_get<wchar_t,std" (binary_expression "money_get<wchar_t" identifier < identifier) , identifier) : : (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>::\n_M_extract<false>(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,long param_6,uint *param_7,string *param_8)" (binary_expression "char_traits<wchar_t>>>::\n_M_extract<false>(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,long param_6,uint *param_7,string *param_8)" (binary_expression "char_traits<wchar_t>>>::\n_M_extract<false" (binary_expression "char_traits<wchar_t>>>::\n_M_extract" identifier < (binary_expression "wchar_t>>>::\n_M_extract" identifier >> (ERROR ">::" > : :) identifier)) < false) > (parenthesized_expression "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,long param_6,uint *param_7,string *param_8)" ( (comma_expression "undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,long param_6,uint *param_7,string *param_8" identifier (ERROR "param_1" identifier) , (comma_expression "undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,long param_6,uint *param_7,string *param_8" identifier (ERROR "param_2" identifier) , (comma_expression "undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,long param_6,uint *param_7,string *param_8" identifier (ERROR "param_3" identifier) , (comma_expression "undefined8 param_4,\n                 undefined8 param_5,long param_6,uint *param_7,string *param_8" identifier (ERROR "param_4" identifier) , (comma_expression "undefined8 param_5,long param_6,uint *param_7,string *param_8" identifier (ERROR "param_5" identifier) , (ERROR "long" identifier) (comma_expression "param_6,uint *param_7,string *param_8" identifier , (comma_expression "uint *param_7,string *param_8" (binary_expression "uint *param_7" identifier * identifier) , (binary_expression "string *param_8" identifier * identifier)))))))) ))) ;)) (compound_statement "{\n  byte bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  char cVar5;\n  long lVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined1 auVar9 [16];\n  undefined8 *local_b8;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  __use_cache<std::__moneypunct_cache<wchar_t,false>> local_4e [2];\n  undefined4 local_4c;\n  undefined1 *local_48;\n  undefined1 *local_40 [2];\n  \n  local_78 = param_4;\n  local_70 = param_5;\n  local_68 = param_2;\n  local_60 = param_3;\n  use_facet<std::ctype<wchar_t>>((locale *)(param_6 + 0xd0));\n  lVar6 = __use_cache<std::__moneypunct_cache<wchar_t,false>>::operator()\n                    (local_4e,(locale *)(param_6 + 0xd0));\n  local_48 = &DAT_0044a558;\n  if (*(char *)(lVar6 + 0x20) != '\0') {\n                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */\n    std::string::reserve((string *)&local_48,0x20);\n  }\n  local_40[0] = &DAT_0044a558;\n                    /* try { // try from 00333eba to 003349e9 has its CatchHandler @ 00334a01 */\n  std::string::reserve((string *)local_40,0x20);\n  local_4c = *(undefined4 *)(lVar6 + 0x68);\n  lVar2 = 0;\n  bVar1 = (byte)local_4c;\n  while( true ) {\n    if (bVar1 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }\n  if ((1 < *(ulong *)(local_40[0] + -0x18)) &&\n     (uVar7 = std::string::find_first_not_of((string *)local_40,'0',0), uVar7 != 0)) {\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    std::string::_M_mutate((string *)local_40,0,uVar8,0);\n  }\n  if (*(long *)(local_48 + -0x18) != 0) {\n    std::string::push_back((string *)&local_48,'\0');\n    cVar5 = __verify_grouping(*(char **)(lVar6 + 0x10),*(ulong *)(lVar6 + 0x18),(string *)&local_48)\n    ;\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }\n  std::string::swap(param_8,(string *)local_40);\n  local_b8 = &local_78;\n  cVar5 = istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>::equal\n                    ((istreambuf_iterator<wchar_t,std::char_traits<wchar_t>> *)&local_68,\n                     (istreambuf_iterator *)local_b8);\n  uVar4 = local_60;\n  uVar3 = local_68;\n  if (cVar5 != '\0') {\n    *param_7 = *param_7 | 2;\n  }\n  if ((allocator *)(local_40[0] + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38) {\n    std::string::_Rep::_M_dispose((allocator *)(local_40[0] + -0x18));\n  }\n  if ((allocator *)(local_48 + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38) {\n    std::string::_Rep::_M_dispose((allocator *)(local_48 + -0x18));\n  }\n  auVar9._8_8_ = uVar4;\n  auVar9._0_8_ = uVar3;\n  return auVar9;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "undefined1 auVar9 [16];" type_identifier (array_declarator "auVar9 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (ERROR "__use_cache<std::" (binary_expression "__use_cache<std" identifier < identifier) : :) (expression_statement "__moneypunct_cache<wchar_t,false>> local_4e [2];" (comma_expression "__moneypunct_cache<wchar_t,false>> local_4e [2]" (binary_expression "__moneypunct_cache<wchar_t" identifier < identifier) , (binary_expression "false>> local_4e [2]" false >> (subscript_expression "local_4e [2]" identifier [ number_literal ]))) ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined1 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined1 *local_40 [2];" type_identifier (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (expression_statement "local_70 = param_5;" (assignment_expression "local_70 = param_5" identifier = identifier) ;) (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" identifier = identifier) ;) (expression_statement "local_60 = param_3;" (assignment_expression "local_60 = param_3" identifier = identifier) ;) (expression_statement "use_facet<std::ctype<wchar_t>>((locale *)(param_6 + 0xd0));" (binary_expression "use_facet<std::ctype<wchar_t>>((locale *)(param_6 + 0xd0))" (binary_expression "use_facet<std" identifier < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>((locale *)(param_6 + 0xd0))" identifier >> (parenthesized_expression "((locale *)(param_6 + 0xd0))" ( (cast_expression "(locale *)(param_6 + 0xd0)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0xd0)" ( (binary_expression "param_6 + 0xd0" identifier + number_literal) ))) )))) ;) (expression_statement "lVar6 = __use_cache<std::__moneypunct_cache<wchar_t,false>>::operator()\n                    (local_4e,(locale *)(param_6 + 0xd0));" (comma_expression "lVar6 = __use_cache<std::__moneypunct_cache<wchar_t,false>>::operator()\n                    (local_4e,(locale *)(param_6 + 0xd0))" (binary_expression "lVar6 = __use_cache<std::__moneypunct_cache<wchar_t" (assignment_expression "lVar6 = __use_cache<std" identifier = (binary_expression "__use_cache<std" identifier < identifier)) (ERROR "::__moneypunct_cache" : : identifier) < identifier) , (binary_expression "false>>::operator()\n                    (local_4e,(locale *)(param_6 + 0xd0))" false >> (ERROR "::" : :) (call_expression "operator()\n                    (local_4e,(locale *)(param_6 + 0xd0))" (call_expression "operator()" identifier (argument_list "()" ( ))) (argument_list "(local_4e,(locale *)(param_6 + 0xd0))" ( identifier , (cast_expression "(locale *)(param_6 + 0xd0)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0xd0)" ( (binary_expression "param_6 + 0xd0" identifier + number_literal) ))) ))))) ;) (expression_statement "local_48 = &DAT_0044a558;" (assignment_expression "local_48 = &DAT_0044a558" identifier = (pointer_expression "&DAT_0044a558" & identifier)) ;) (if_statement "if (*(char *)(lVar6 + 0x20) != '\0') {\n                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */\n    std::string::reserve((string *)&local_48,0x20);\n  }" if (parenthesized_expression "(*(char *)(lVar6 + 0x20) != '\0')" ( (binary_expression "*(char *)(lVar6 + 0x20) != '\0'" (pointer_expression "*(char *)(lVar6 + 0x20)" * (cast_expression "(char *)(lVar6 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */\n    std::string::reserve((string *)&local_48,0x20);\n  }" { comment (labeled_statement "std::string::reserve((string *)&local_48,0x20);" statement_identifier : (ERROR ":" :) (labeled_statement "string::reserve((string *)&local_48,0x20);" statement_identifier : (ERROR ":" :) (expression_statement "reserve((string *)&local_48,0x20);" (call_expression "reserve((string *)&local_48,0x20)" identifier (argument_list "((string *)&local_48,0x20)" ( (cast_expression "(string *)&local_48" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_48" & identifier)) , number_literal ))) ;))) })) (expression_statement "local_40[0] = &DAT_0044a558;" (assignment_expression "local_40[0] = &DAT_0044a558" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (pointer_expression "&DAT_0044a558" & identifier)) ;) comment (labeled_statement "std::string::reserve((string *)local_40,0x20);" statement_identifier : (ERROR ":" :) (labeled_statement "string::reserve((string *)local_40,0x20);" statement_identifier : (ERROR ":" :) (expression_statement "reserve((string *)local_40,0x20);" (call_expression "reserve((string *)local_40,0x20)" identifier (argument_list "((string *)local_40,0x20)" ( (cast_expression "(string *)local_40" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;))) (expression_statement "local_4c = *(undefined4 *)(lVar6 + 0x68);" (assignment_expression "local_4c = *(undefined4 *)(lVar6 + 0x68)" identifier = (pointer_expression "*(undefined4 *)(lVar6 + 0x68)" * (cast_expression "(undefined4 *)(lVar6 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x68)" ( (binary_expression "lVar6 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = (byte)local_4c;" (assignment_expression "bVar1 = (byte)local_4c" identifier = (cast_expression "(byte)local_4c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (while_statement "while( true ) {\n    if (bVar1 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (bVar1 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }" { (if_statement "if (bVar1 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }" if (parenthesized_expression "(bVar1 < 5)" ( (binary_expression "bVar1 < 5" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }" { comment comment (expression_statement "auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;" (assignment_expression "auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()" identifier = (call_expression "(*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()" (parenthesized_expression "(*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))" ( (pointer_expression "*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" * (cast_expression "(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" ( (binary_expression "&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" (pointer_expression "&DAT_0039430c" & identifier) + (pointer_expression "*(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" * (cast_expression "(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" ( (binary_expression "&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4" (pointer_expression "&DAT_0039430c" & identifier) + (binary_expression "(ulong)*(byte *)((long)&local_4c + lVar2) * 4" (binary_expression "(ulong)*(byte *)((long)&local_4c + lVar2)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(byte *)((long)&local_4c + lVar2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_4c + lVar2)" ( (binary_expression "(long)&local_4c + lVar2" (cast_expression "(long)&local_4c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_4c" & identifier)) + identifier) )))) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return auVar9;" return identifier ;) })) (if_statement "if (3 < (int)lVar2 + 1) break;" if (parenthesized_expression "(3 < (int)lVar2 + 1)" ( (binary_expression "3 < (int)lVar2 + 1" number_literal < (binary_expression "(int)lVar2 + 1" (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);" (assignment_expression "bVar1 = *(byte *)((long)&local_4c + lVar2 + 1)" identifier = (pointer_expression "*(byte *)((long)&local_4c + lVar2 + 1)" * (cast_expression "(byte *)((long)&local_4c + lVar2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_4c + lVar2 + 1)" ( (binary_expression "(long)&local_4c + lVar2 + 1" (binary_expression "(long)&local_4c + lVar2" (cast_expression "(long)&local_4c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_4c" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" identifier = (binary_expression "lVar2 + 1" identifier + number_literal)) ;) })) (if_statement "if ((1 < *(ulong *)(local_40[0] + -0x18)) &&\n     (uVar7 = std::string::find_first_not_of((string *)local_40,'0',0), uVar7 != 0)) {\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    std::string::_M_mutate((string *)local_40,0,uVar8,0);\n  }" if (parenthesized_expression "((1 < *(ulong *)(local_40[0] + -0x18)) &&\n     (uVar7 = std::string::find_first_not_of((string *)local_40,'0',0), uVar7 != 0))" ( (binary_expression "(1 < *(ulong *)(local_40[0] + -0x18)) &&\n     (uVar7 = std::string::find_first_not_of((string *)local_40,'0',0), uVar7 != 0)" (parenthesized_expression "(1 < *(ulong *)(local_40[0] + -0x18))" ( (binary_expression "1 < *(ulong *)(local_40[0] + -0x18)" number_literal < (pointer_expression "*(ulong *)(local_40[0] + -0x18)" * (cast_expression "(ulong *)(local_40[0] + -0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[0] + -0x18)" ( (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) ))))) )) && (parenthesized_expression "(uVar7 = std::string::find_first_not_of((string *)local_40,'0',0), uVar7 != 0)" ( (ERROR "uVar7 = std::string::" (assignment_expression "uVar7 = std" identifier = identifier) : : identifier : :) (comma_expression "find_first_not_of((string *)local_40,'0',0), uVar7 != 0" (call_expression "find_first_not_of((string *)local_40,'0',0)" identifier (argument_list "((string *)local_40,'0',0)" ( (cast_expression "(string *)local_40" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (char_literal "'0'" ' character ') , number_literal ))) , (binary_expression "uVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    std::string::_M_mutate((string *)local_40,0,uVar8,0);\n  }" { (expression_statement "uVar8 = *(ulong *)(local_40[0] + -0x18);" (assignment_expression "uVar8 = *(ulong *)(local_40[0] + -0x18)" identifier = (pointer_expression "*(ulong *)(local_40[0] + -0x18)" * (cast_expression "(ulong *)(local_40[0] + -0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[0] + -0x18)" ( (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }" if (parenthesized_expression "(uVar7 == 0xffffffffffffffff)" ( (binary_expression "uVar7 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n      uVar7 = uVar8 - 1;\n    }" { (expression_statement "uVar7 = uVar8 - 1;" (assignment_expression "uVar7 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) })) (if_statement "if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }" if (parenthesized_expression "(uVar7 <= uVar8)" ( (binary_expression "uVar7 <= uVar8" identifier <= identifier) )) (compound_statement "{\n      uVar8 = uVar7;\n    }" { (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) })) (labeled_statement "std::string::_M_mutate((string *)local_40,0,uVar8,0);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_mutate((string *)local_40,0,uVar8,0);" statement_identifier : (ERROR ":" :) (expression_statement "_M_mutate((string *)local_40,0,uVar8,0);" (call_expression "_M_mutate((string *)local_40,0,uVar8,0)" identifier (argument_list "((string *)local_40,0,uVar8,0)" ( (cast_expression "(string *)local_40" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , number_literal ))) ;))) })) (if_statement "if (*(long *)(local_48 + -0x18) != 0) {\n    std::string::push_back((string *)&local_48,'\0');\n    cVar5 = __verify_grouping(*(char **)(lVar6 + 0x10),*(ulong *)(lVar6 + 0x18),(string *)&local_48)\n    ;\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }" if (parenthesized_expression "(*(long *)(local_48 + -0x18) != 0)" ( (binary_expression "*(long *)(local_48 + -0x18) != 0" (pointer_expression "*(long *)(local_48 + -0x18)" * (cast_expression "(long *)(local_48 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + -0x18)" ( (binary_expression "local_48 + -0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    std::string::push_back((string *)&local_48,'\0');\n    cVar5 = __verify_grouping(*(char **)(lVar6 + 0x10),*(ulong *)(lVar6 + 0x18),(string *)&local_48)\n    ;\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }" { (labeled_statement "std::string::push_back((string *)&local_48,'\0');" statement_identifier : (ERROR ":" :) (labeled_statement "string::push_back((string *)&local_48,'\0');" statement_identifier : (ERROR ":" :) (expression_statement "push_back((string *)&local_48,'\0');" (call_expression "push_back((string *)&local_48,'\0')" identifier (argument_list "((string *)&local_48,'\0')" ( (cast_expression "(string *)&local_48" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_48" & identifier)) , (char_literal "'\0'" ' escape_sequence ') ))) ;))) (expression_statement "cVar5 = __verify_grouping(*(char **)(lVar6 + 0x10),*(ulong *)(lVar6 + 0x18),(string *)&local_48)\n    ;" (assignment_expression "cVar5 = __verify_grouping(*(char **)(lVar6 + 0x10),*(ulong *)(lVar6 + 0x18),(string *)&local_48)" identifier = (call_expression "__verify_grouping(*(char **)(lVar6 + 0x10),*(ulong *)(lVar6 + 0x18),(string *)&local_48)" identifier (argument_list "(*(char **)(lVar6 + 0x10),*(ulong *)(lVar6 + 0x18),(string *)&local_48)" ( (pointer_expression "*(char **)(lVar6 + 0x10)" * (cast_expression "(char **)(lVar6 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(ulong *)(lVar6 + 0x18)" * (cast_expression "(ulong *)(lVar6 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) , (cast_expression "(string *)&local_48" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_48" & identifier)) )))) ;) (if_statement "if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *param_7 = *param_7 | 4;\n    }" { (expression_statement "*param_7 = *param_7 | 4;" (assignment_expression "*param_7 = *param_7 | 4" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 | 4" (pointer_expression "*param_7" * identifier) | number_literal)) ;) })) })) (labeled_statement "std::string::swap(param_8,(string *)local_40);" statement_identifier : (ERROR ":" :) (labeled_statement "string::swap(param_8,(string *)local_40);" statement_identifier : (ERROR ":" :) (expression_statement "swap(param_8,(string *)local_40);" (call_expression "swap(param_8,(string *)local_40)" identifier (argument_list "(param_8,(string *)local_40)" ( identifier , (cast_expression "(string *)local_40" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) (expression_statement "local_b8 = &local_78;" (assignment_expression "local_b8 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (ERROR "cVar5 = istreambuf_iterator<wchar_t,std::" (comma_expression "cVar5 = istreambuf_iterator<wchar_t,std" (assignment_expression "cVar5 = istreambuf_iterator<wchar_t" identifier = (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier)) , identifier) : :) (expression_statement "char_traits<wchar_t>>::equal\n                    ((istreambuf_iterator<wchar_t,std::char_traits<wchar_t>> *)&local_68,\n                     (istreambuf_iterator *)local_b8);" (binary_expression "char_traits<wchar_t>>::equal\n                    ((istreambuf_iterator<wchar_t,std::char_traits<wchar_t>> *)&local_68,\n                     (istreambuf_iterator *)local_b8)" identifier < (binary_expression "wchar_t>>::equal\n                    ((istreambuf_iterator<wchar_t,std::char_traits<wchar_t>> *)&local_68,\n                     (istreambuf_iterator *)local_b8)" identifier >> (ERROR "::" : :) (call_expression "equal\n                    ((istreambuf_iterator<wchar_t,std::char_traits<wchar_t>> *)&local_68,\n                     (istreambuf_iterator *)local_b8)" identifier (argument_list "((istreambuf_iterator<wchar_t,std::char_traits<wchar_t>> *)&local_68,\n                     (istreambuf_iterator *)local_b8)" ( (binary_expression "(istreambuf_iterator<wchar_t,std::char_traits<wchar_t>> *)&local_68" (parenthesized_expression "(istreambuf_iterator<wchar_t,std::char_traits<wchar_t>> *)" ( (ERROR "istreambuf_iterator<wchar_t,std::" (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier) , identifier) : :) (binary_expression "char_traits<wchar_t>> *" identifier < (binary_expression "wchar_t>> *" identifier >> (pointer_expression "*" * identifier))) )) & identifier) , (cast_expression "(istreambuf_iterator *)local_b8" ( (type_descriptor "istreambuf_iterator *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "uVar4 = local_60;" (assignment_expression "uVar4 = local_60" identifier = identifier) ;) (expression_statement "uVar3 = local_68;" (assignment_expression "uVar3 = local_68" identifier = identifier) ;) (if_statement "if (cVar5 != '\0') {\n    *param_7 = *param_7 | 2;\n  }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *param_7 = *param_7 | 2;\n  }" { (expression_statement "*param_7 = *param_7 | 2;" (assignment_expression "*param_7 = *param_7 | 2" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 | 2" (pointer_expression "*param_7" * identifier) | number_literal)) ;) })) (if_statement "if ((allocator *)(local_40[0] + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38) {\n    std::string::_Rep::_M_dispose((allocator *)(local_40[0] + -0x18));\n  }" if (parenthesized_expression "((allocator *)(local_40[0] + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38)" ( (binary_expression "(allocator *)(local_40[0] + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38" (cast_expression "(allocator *)(local_40[0] + -0x18)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[0] + -0x18)" ( (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) ))) != (cast_expression "(allocator *)PTR__S_empty_rep_storage_0043dc38" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    std::string::_Rep::_M_dispose((allocator *)(local_40[0] + -0x18));\n  }" { (labeled_statement "std::string::_Rep::_M_dispose((allocator *)(local_40[0] + -0x18));" statement_identifier : (ERROR ":" :) (labeled_statement "string::_Rep::_M_dispose((allocator *)(local_40[0] + -0x18));" statement_identifier : (ERROR ":" :) (labeled_statement "_Rep::_M_dispose((allocator *)(local_40[0] + -0x18));" statement_identifier : (ERROR ":" :) (expression_statement "_M_dispose((allocator *)(local_40[0] + -0x18));" (call_expression "_M_dispose((allocator *)(local_40[0] + -0x18))" identifier (argument_list "((allocator *)(local_40[0] + -0x18))" ( (cast_expression "(allocator *)(local_40[0] + -0x18)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[0] + -0x18)" ( (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) ))) ))) ;)))) })) (if_statement "if ((allocator *)(local_48 + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38) {\n    std::string::_Rep::_M_dispose((allocator *)(local_48 + -0x18));\n  }" if (parenthesized_expression "((allocator *)(local_48 + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38)" ( (binary_expression "(allocator *)(local_48 + -0x18) != (allocator *)PTR__S_empty_rep_storage_0043dc38" (cast_expression "(allocator *)(local_48 + -0x18)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + -0x18)" ( (binary_expression "local_48 + -0x18" identifier + number_literal) ))) != (cast_expression "(allocator *)PTR__S_empty_rep_storage_0043dc38" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    std::string::_Rep::_M_dispose((allocator *)(local_48 + -0x18));\n  }" { (labeled_statement "std::string::_Rep::_M_dispose((allocator *)(local_48 + -0x18));" statement_identifier : (ERROR ":" :) (labeled_statement "string::_Rep::_M_dispose((allocator *)(local_48 + -0x18));" statement_identifier : (ERROR ":" :) (labeled_statement "_Rep::_M_dispose((allocator *)(local_48 + -0x18));" statement_identifier : (ERROR ":" :) (expression_statement "_M_dispose((allocator *)(local_48 + -0x18));" (call_expression "_M_dispose((allocator *)(local_48 + -0x18))" identifier (argument_list "((allocator *)(local_48 + -0x18))" ( (cast_expression "(allocator *)(local_48 + -0x18)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + -0x18)" ( (binary_expression "local_48 + -0x18" identifier + number_literal) ))) ))) ;)))) })) (expression_statement "auVar9._8_8_ = uVar4;" (assignment_expression "auVar9._8_8_ = uVar4" (field_expression "auVar9._8_8_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar9._0_8_ = uVar3;" (assignment_expression "auVar9._0_8_ = uVar3" (field_expression "auVar9._0_8_" identifier . field_identifier) = identifier) ;) (return_statement "return auVar9;" return identifier ;) }))
(translation_unit "undefined1  [16]\nFUN_00333df0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n            undefined8 param_5,long param_6,uint *param_7,undefined8 param_8)\n\n{\n  byte bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  char cVar5;\n  long lVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined1 auVar9 [16];\n  undefined8 *local_b8;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined1 local_4e;\n  undefined1 local_4d;\n  undefined4 local_4c;\n  undefined1 *local_48;\n  undefined1 *local_40 [2];\n  \n  local_78 = param_4;\n  local_70 = param_5;\n  local_68 = param_2;\n  local_60 = param_3;\n  FUN_00327630(param_6 + 0xd0);\n  lVar6 = FUN_0032aad0(&local_4e,param_6 + 0xd0);\n  local_48 = &DAT_0044a558;\n  if (*(char *)(lVar6 + 0x20) != '\0') {\n                    \n    FUN_0030e7a0(&local_48,0x20);\n  }\n  local_40[0] = &DAT_0044a558;\n                    \n  FUN_0030e7a0(local_40,0x20);\n  local_4c = *(undefined4 *)(lVar6 + 0x68);\n  lVar2 = 0;\n  bVar1 = (byte)local_4c;\n  while( true ) {\n    if (bVar1 < 5) {\n                    \n                    \n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }\n  if ((1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0))\n  {\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    FUN_0030dbd0(local_40,0,uVar8,0);\n  }\n  if (*(long *)(local_48 + -0x18) != 0) {\n    FUN_0030ec80(&local_48,0);\n    cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }\n  FUN_0030ce20(param_8,local_40);\n  local_b8 = &local_78;\n  cVar5 = FUN_0032c160(&local_68,local_b8);\n  uVar4 = local_60;\n  uVar3 = local_68;\n  if (cVar5 != '\0') {\n    *param_7 = *param_7 | 2;\n  }\n  if (local_40[0] + -0x18 != PTR_DAT_0043dc38) {\n    FUN_003253b0(local_40[0] + -0x18,&local_4d);\n  }\n  if (local_48 + -0x18 != PTR_DAT_0043dc38) {\n    FUN_003253b0(local_48 + -0x18,&local_4d);\n  }\n  auVar9._8_8_ = uVar4;\n  auVar9._0_8_ = uVar3;\n  return auVar9;\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (declaration "FUN_00333df0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n            undefined8 param_5,long param_6,uint *param_7,undefined8 param_8)\n\n{\n  byte bVar1;" (macro_type_specifier "FUN_00333df0(undefined8" identifier ( (type_descriptor "undefined8" type_identifier) )) identifier , identifier (ERROR "param_2" identifier) , identifier (ERROR "param_3" identifier) , identifier (ERROR "param_4" identifier) , identifier (ERROR "param_5" identifier) , (ERROR "long" identifier) identifier , (ERROR "uint" identifier) (pointer_declarator "*param_7" * identifier) , (ERROR "undefined8 param_8)\n\n{\n  byte" identifier identifier ) { identifier) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "undefined1 auVar9 [16];" type_identifier (array_declarator "auVar9 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined1 local_4e;" type_identifier identifier ;) (declaration "undefined1 local_4d;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined1 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined1 *local_40 [2];" type_identifier (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (expression_statement "local_70 = param_5;" (assignment_expression "local_70 = param_5" identifier = identifier) ;) (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" identifier = identifier) ;) (expression_statement "local_60 = param_3;" (assignment_expression "local_60 = param_3" identifier = identifier) ;) (expression_statement "FUN_00327630(param_6 + 0xd0);" (call_expression "FUN_00327630(param_6 + 0xd0)" identifier (argument_list "(param_6 + 0xd0)" ( (binary_expression "param_6 + 0xd0" identifier + number_literal) ))) ;) (expression_statement "lVar6 = FUN_0032aad0(&local_4e,param_6 + 0xd0);" (assignment_expression "lVar6 = FUN_0032aad0(&local_4e,param_6 + 0xd0)" identifier = (call_expression "FUN_0032aad0(&local_4e,param_6 + 0xd0)" identifier (argument_list "(&local_4e,param_6 + 0xd0)" ( (pointer_expression "&local_4e" & identifier) , (binary_expression "param_6 + 0xd0" identifier + number_literal) )))) ;) (expression_statement "local_48 = &DAT_0044a558;" (assignment_expression "local_48 = &DAT_0044a558" identifier = (pointer_expression "&DAT_0044a558" & identifier)) ;) (if_statement "if (*(char *)(lVar6 + 0x20) != '\0') {\n                    \n    FUN_0030e7a0(&local_48,0x20);\n  }" if (parenthesized_expression "(*(char *)(lVar6 + 0x20) != '\0')" ( (binary_expression "*(char *)(lVar6 + 0x20) != '\0'" (pointer_expression "*(char *)(lVar6 + 0x20)" * (cast_expression "(char *)(lVar6 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n    FUN_0030e7a0(&local_48,0x20);\n  }" { (expression_statement "FUN_0030e7a0(&local_48,0x20);" (call_expression "FUN_0030e7a0(&local_48,0x20)" identifier (argument_list "(&local_48,0x20)" ( (pointer_expression "&local_48" & identifier) , number_literal ))) ;) })) (expression_statement "local_40[0] = &DAT_0044a558;" (assignment_expression "local_40[0] = &DAT_0044a558" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (pointer_expression "&DAT_0044a558" & identifier)) ;) (expression_statement "FUN_0030e7a0(local_40,0x20);" (call_expression "FUN_0030e7a0(local_40,0x20)" identifier (argument_list "(local_40,0x20)" ( identifier , number_literal ))) ;) (expression_statement "local_4c = *(undefined4 *)(lVar6 + 0x68);" (assignment_expression "local_4c = *(undefined4 *)(lVar6 + 0x68)" identifier = (pointer_expression "*(undefined4 *)(lVar6 + 0x68)" * (cast_expression "(undefined4 *)(lVar6 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x68)" ( (binary_expression "lVar6 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = (byte)local_4c;" (assignment_expression "bVar1 = (byte)local_4c" identifier = (cast_expression "(byte)local_4c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (while_statement "while( true ) {\n    if (bVar1 < 5) {\n                    \n                    \n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (bVar1 < 5) {\n                    \n                    \n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }" { (if_statement "if (bVar1 < 5) {\n                    \n                    \n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }" if (parenthesized_expression "(bVar1 < 5)" ( (binary_expression "bVar1 < 5" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }" { (expression_statement "auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;" (assignment_expression "auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()" identifier = (call_expression "(*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()" (parenthesized_expression "(*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))" ( (pointer_expression "*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" * (cast_expression "(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" ( (binary_expression "&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" (pointer_expression "&DAT_0039430c" & identifier) + (pointer_expression "*(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" * (cast_expression "(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" ( (binary_expression "&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4" (pointer_expression "&DAT_0039430c" & identifier) + (binary_expression "(ulong)*(byte *)((long)&local_4c + lVar2) * 4" (binary_expression "(ulong)*(byte *)((long)&local_4c + lVar2)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(byte *)((long)&local_4c + lVar2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_4c + lVar2)" ( (binary_expression "(long)&local_4c + lVar2" (cast_expression "(long)&local_4c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_4c" & identifier)) + identifier) )))) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return auVar9;" return identifier ;) })) (if_statement "if (3 < (int)lVar2 + 1) break;" if (parenthesized_expression "(3 < (int)lVar2 + 1)" ( (binary_expression "3 < (int)lVar2 + 1" number_literal < (binary_expression "(int)lVar2 + 1" (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);" (assignment_expression "bVar1 = *(byte *)((long)&local_4c + lVar2 + 1)" identifier = (pointer_expression "*(byte *)((long)&local_4c + lVar2 + 1)" * (cast_expression "(byte *)((long)&local_4c + lVar2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_4c + lVar2 + 1)" ( (binary_expression "(long)&local_4c + lVar2 + 1" (binary_expression "(long)&local_4c + lVar2" (cast_expression "(long)&local_4c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_4c" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" identifier = (binary_expression "lVar2 + 1" identifier + number_literal)) ;) })) (if_statement "if ((1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0))\n  {\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    FUN_0030dbd0(local_40,0,uVar8,0);\n  }" if (parenthesized_expression "((1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0))" ( (binary_expression "(1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0)" (parenthesized_expression "(1 < *(ulong *)(local_40[0] + -0x18))" ( (binary_expression "1 < *(ulong *)(local_40[0] + -0x18)" number_literal < (pointer_expression "*(ulong *)(local_40[0] + -0x18)" * (cast_expression "(ulong *)(local_40[0] + -0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[0] + -0x18)" ( (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) ))))) )) && (parenthesized_expression "(uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0)" ( (comma_expression "uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0" (assignment_expression "uVar7 = FUN_0030d360(local_40,0x30,0)" identifier = (call_expression "FUN_0030d360(local_40,0x30,0)" identifier (argument_list "(local_40,0x30,0)" ( identifier , number_literal , number_literal )))) , (binary_expression "uVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    FUN_0030dbd0(local_40,0,uVar8,0);\n  }" { (expression_statement "uVar8 = *(ulong *)(local_40[0] + -0x18);" (assignment_expression "uVar8 = *(ulong *)(local_40[0] + -0x18)" identifier = (pointer_expression "*(ulong *)(local_40[0] + -0x18)" * (cast_expression "(ulong *)(local_40[0] + -0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[0] + -0x18)" ( (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }" if (parenthesized_expression "(uVar7 == 0xffffffffffffffff)" ( (binary_expression "uVar7 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n      uVar7 = uVar8 - 1;\n    }" { (expression_statement "uVar7 = uVar8 - 1;" (assignment_expression "uVar7 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) })) (if_statement "if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }" if (parenthesized_expression "(uVar7 <= uVar8)" ( (binary_expression "uVar7 <= uVar8" identifier <= identifier) )) (compound_statement "{\n      uVar8 = uVar7;\n    }" { (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) })) (expression_statement "FUN_0030dbd0(local_40,0,uVar8,0);" (call_expression "FUN_0030dbd0(local_40,0,uVar8,0)" identifier (argument_list "(local_40,0,uVar8,0)" ( identifier , number_literal , identifier , number_literal ))) ;) })) (if_statement "if (*(long *)(local_48 + -0x18) != 0) {\n    FUN_0030ec80(&local_48,0);\n    cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }" if (parenthesized_expression "(*(long *)(local_48 + -0x18) != 0)" ( (binary_expression "*(long *)(local_48 + -0x18) != 0" (pointer_expression "*(long *)(local_48 + -0x18)" * (cast_expression "(long *)(local_48 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + -0x18)" ( (binary_expression "local_48 + -0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0030ec80(&local_48,0);\n    cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }" { (expression_statement "FUN_0030ec80(&local_48,0);" (call_expression "FUN_0030ec80(&local_48,0)" identifier (argument_list "(&local_48,0)" ( (pointer_expression "&local_48" & identifier) , number_literal ))) ;) (expression_statement "cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);" (assignment_expression "cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48)" identifier = (call_expression "FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48)" identifier (argument_list "(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48)" ( (pointer_expression "*(undefined8 *)(lVar6 + 0x10)" * (cast_expression "(undefined8 *)(lVar6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar6 + 0x18)" * (cast_expression "(undefined8 *)(lVar6 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) , (pointer_expression "&local_48" & identifier) )))) ;) (if_statement "if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *param_7 = *param_7 | 4;\n    }" { (expression_statement "*param_7 = *param_7 | 4;" (assignment_expression "*param_7 = *param_7 | 4" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 | 4" (pointer_expression "*param_7" * identifier) | number_literal)) ;) })) })) (expression_statement "FUN_0030ce20(param_8,local_40);" (call_expression "FUN_0030ce20(param_8,local_40)" identifier (argument_list "(param_8,local_40)" ( identifier , identifier ))) ;) (expression_statement "local_b8 = &local_78;" (assignment_expression "local_b8 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "cVar5 = FUN_0032c160(&local_68,local_b8);" (assignment_expression "cVar5 = FUN_0032c160(&local_68,local_b8)" identifier = (call_expression "FUN_0032c160(&local_68,local_b8)" identifier (argument_list "(&local_68,local_b8)" ( (pointer_expression "&local_68" & identifier) , identifier )))) ;) (expression_statement "uVar4 = local_60;" (assignment_expression "uVar4 = local_60" identifier = identifier) ;) (expression_statement "uVar3 = local_68;" (assignment_expression "uVar3 = local_68" identifier = identifier) ;) (if_statement "if (cVar5 != '\0') {\n    *param_7 = *param_7 | 2;\n  }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *param_7 = *param_7 | 2;\n  }" { (expression_statement "*param_7 = *param_7 | 2;" (assignment_expression "*param_7 = *param_7 | 2" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 | 2" (pointer_expression "*param_7" * identifier) | number_literal)) ;) })) (if_statement "if (local_40[0] + -0x18 != PTR_DAT_0043dc38) {\n    FUN_003253b0(local_40[0] + -0x18,&local_4d);\n  }" if (parenthesized_expression "(local_40[0] + -0x18 != PTR_DAT_0043dc38)" ( (binary_expression "local_40[0] + -0x18 != PTR_DAT_0043dc38" (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) != identifier) )) (compound_statement "{\n    FUN_003253b0(local_40[0] + -0x18,&local_4d);\n  }" { (expression_statement "FUN_003253b0(local_40[0] + -0x18,&local_4d);" (call_expression "FUN_003253b0(local_40[0] + -0x18,&local_4d)" identifier (argument_list "(local_40[0] + -0x18,&local_4d)" ( (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" identifier [ number_literal ]) + number_literal) , (pointer_expression "&local_4d" & identifier) ))) ;) })) (if_statement "if (local_48 + -0x18 != PTR_DAT_0043dc38) {\n    FUN_003253b0(local_48 + -0x18,&local_4d);\n  }" if (parenthesized_expression "(local_48 + -0x18 != PTR_DAT_0043dc38)" ( (binary_expression "local_48 + -0x18 != PTR_DAT_0043dc38" (binary_expression "local_48 + -0x18" identifier + number_literal) != identifier) )) (compound_statement "{\n    FUN_003253b0(local_48 + -0x18,&local_4d);\n  }" { (expression_statement "FUN_003253b0(local_48 + -0x18,&local_4d);" (call_expression "FUN_003253b0(local_48 + -0x18,&local_4d)" identifier (argument_list "(local_48 + -0x18,&local_4d)" ( (binary_expression "local_48 + -0x18" identifier + number_literal) , (pointer_expression "&local_4d" & identifier) ))) ;) })) (expression_statement "auVar9._8_8_ = uVar4;" (assignment_expression "auVar9._8_8_ = uVar4" (field_expression "auVar9._8_8_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar9._0_8_ = uVar3;" (assignment_expression "auVar9._0_8_ = uVar3" (field_expression "auVar9._0_8_" identifier . field_identifier) = identifier) ;) (return_statement "return auVar9;" return identifier ;) (ERROR "}" }))
(translation_unit (expression_statement (subscript_expression IDENT [ LIT ]) ;) (declaration (macro_type_specifier IDENT ( (type_descriptor TYPE) )) IDENT , IDENT (ERROR IDENT) , IDENT (ERROR IDENT) , IDENT (ERROR IDENT) , IDENT (ERROR IDENT) , (ERROR IDENT) IDENT , (ERROR IDENT) (pointer_declarator * IDENT) , (ERROR IDENT IDENT ) { IDENT) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_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 IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))) * LIT)) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , (pointer_expression & IDENT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (return_statement return IDENT ;) (ERROR }))
(expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" (identifier "undefined1") ([ "[") (number_literal "16") (] "]")) (; "")) (declaration "FUN_00333df0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n            undefined8 param_5,long param_6,uint *param_7,undefined8 param_8)\n\n{\n  byte bVar1;" (macro_type_specifier "FUN_00333df0(undefined8" (identifier "FUN_00333df0") (( "(") (type_descriptor "undefined8" (type_identifier "undefined8")) () "")) (identifier "param_1") (, ",") (identifier "undefined8") (ERROR "param_2" (identifier "param_2")) (, ",") (identifier "undefined8") (ERROR "param_3" (identifier "param_3")) (, ",") (identifier "undefined8") (ERROR "param_4" (identifier "param_4")) (, ",") (identifier "undefined8") (ERROR "param_5" (identifier "param_5")) (, ",") (ERROR "long" (identifier "long")) (identifier "param_6") (, ",") (ERROR "uint" (identifier "uint")) (pointer_declarator "*param_7" (* "*") (identifier "param_7")) (, ",") (ERROR "undefined8 param_8)\n\n{\n  byte" (identifier "undefined8") (identifier "param_8") () ")") ({ "{") (identifier "byte")) (identifier "bVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "undefined1 auVar9 [16];" (type_identifier "undefined1") (array_declarator "auVar9 [16]" (identifier "auVar9") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined8 *local_b8;" (type_identifier "undefined8") (pointer_declarator "*local_b8" (* "*") (identifier "local_b8")) (; ";")) (declaration "undefined8 local_78;" (type_identifier "undefined8") (identifier "local_78") (; ";")) (declaration "undefined8 local_70;" (type_identifier "undefined8") (identifier "local_70") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined8 local_60;" (type_identifier "undefined8") (identifier "local_60") (; ";")) (declaration "undefined1 local_4e;" (type_identifier "undefined1") (identifier "local_4e") (; ";")) (declaration "undefined1 local_4d;" (type_identifier "undefined1") (identifier "local_4d") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined1 *local_48;" (type_identifier "undefined1") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "undefined1 *local_40 [2];" (type_identifier "undefined1") (pointer_declarator "*local_40 [2]" (* "*") (array_declarator "local_40 [2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" (identifier "local_78") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_70 = param_5;" (assignment_expression "local_70 = param_5" (identifier "local_70") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" (identifier "local_68") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_60 = param_3;" (assignment_expression "local_60 = param_3" (identifier "local_60") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_00327630(param_6 + 0xd0);" (call_expression "FUN_00327630(param_6 + 0xd0)" (identifier "FUN_00327630") (argument_list "(param_6 + 0xd0)" (( "(") (binary_expression "param_6 + 0xd0" (identifier "param_6") (+ "+") (number_literal "0xd0")) () ")"))) (; ";")) (expression_statement "lVar6 = FUN_0032aad0(&local_4e,param_6 + 0xd0);" (assignment_expression "lVar6 = FUN_0032aad0(&local_4e,param_6 + 0xd0)" (identifier "lVar6") (= "=") (call_expression "FUN_0032aad0(&local_4e,param_6 + 0xd0)" (identifier "FUN_0032aad0") (argument_list "(&local_4e,param_6 + 0xd0)" (( "(") (pointer_expression "&local_4e" (& "&") (identifier "local_4e")) (, ",") (binary_expression "param_6 + 0xd0" (identifier "param_6") (+ "+") (number_literal "0xd0")) () ")")))) (; ";")) (expression_statement "local_48 = &DAT_0044a558;" (assignment_expression "local_48 = &DAT_0044a558" (identifier "local_48") (= "=") (pointer_expression "&DAT_0044a558" (& "&") (identifier "DAT_0044a558"))) (; ";")) (if_statement "if (*(char *)(lVar6 + 0x20) != '\0') {\n                    \n    FUN_0030e7a0(&local_48,0x20);\n  }" (if "if") (parenthesized_expression "(*(char *)(lVar6 + 0x20) != '\0')" (( "(") (binary_expression "*(char *)(lVar6 + 0x20) != '\0'" (pointer_expression "*(char *)(lVar6 + 0x20)" (* "*") (cast_expression "(char *)(lVar6 + 0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n    FUN_0030e7a0(&local_48,0x20);\n  }" ({ "{") (expression_statement "FUN_0030e7a0(&local_48,0x20);" (call_expression "FUN_0030e7a0(&local_48,0x20)" (identifier "FUN_0030e7a0") (argument_list "(&local_48,0x20)" (( "(") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (number_literal "0x20") () ")"))) (; ";")) (} "}"))) (expression_statement "local_40[0] = &DAT_0044a558;" (assignment_expression "local_40[0] = &DAT_0044a558" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "&DAT_0044a558" (& "&") (identifier "DAT_0044a558"))) (; ";")) (expression_statement "FUN_0030e7a0(local_40,0x20);" (call_expression "FUN_0030e7a0(local_40,0x20)" (identifier "FUN_0030e7a0") (argument_list "(local_40,0x20)" (( "(") (identifier "local_40") (, ",") (number_literal "0x20") () ")"))) (; ";")) (expression_statement "local_4c = *(undefined4 *)(lVar6 + 0x68);" (assignment_expression "local_4c = *(undefined4 *)(lVar6 + 0x68)" (identifier "local_4c") (= "=") (pointer_expression "*(undefined4 *)(lVar6 + 0x68)" (* "*") (cast_expression "(undefined4 *)(lVar6 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x68)" (( "(") (binary_expression "lVar6 + 0x68" (identifier "lVar6") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" (identifier "lVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = (byte)local_4c;" (assignment_expression "bVar1 = (byte)local_4c" (identifier "bVar1") (= "=") (cast_expression "(byte)local_4c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_4c"))) (; ";")) (while_statement "while( true ) {\n    if (bVar1 < 5) {\n                    \n                    \n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (bVar1 < 5) {\n                    \n                    \n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }\n    if (3 < (int)lVar2 + 1) break;\n    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);\n    lVar2 = lVar2 + 1;\n  }" ({ "{") (if_statement "if (bVar1 < 5) {\n                    \n                    \n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }" (if "if") (parenthesized_expression "(bVar1 < 5)" (( "(") (binary_expression "bVar1 < 5" (identifier "bVar1") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n      auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;\n      return auVar9;\n    }" ({ "{") (expression_statement "auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()\n      ;" (assignment_expression "auVar9 = (*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()" (identifier "auVar9") (= "=") (call_expression "(*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()" (parenthesized_expression "(*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))" (( "(") (pointer_expression "*(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" (* "*") (cast_expression "(code *)(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4))" (( "(") (binary_expression "&DAT_0039430c +\n                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" (pointer_expression "&DAT_0039430c" (& "&") (identifier "DAT_0039430c")) (+ "+") (pointer_expression "*(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" (* "*") (cast_expression "(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)" (( "(") (binary_expression "&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4" (pointer_expression "&DAT_0039430c" (& "&") (identifier "DAT_0039430c")) (+ "+") (binary_expression "(ulong)*(byte *)((long)&local_4c + lVar2) * 4" (binary_expression "(ulong)*(byte *)((long)&local_4c + lVar2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(byte *)((long)&local_4c + lVar2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_4c + lVar2)" (( "(") (binary_expression "(long)&local_4c + lVar2" (cast_expression "(long)&local_4c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (+ "+") (identifier "lVar2")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return auVar9;" (return "return") (identifier "auVar9") (; ";")) (} "}"))) (if_statement "if (3 < (int)lVar2 + 1) break;" (if "if") (parenthesized_expression "(3 < (int)lVar2 + 1)" (( "(") (binary_expression "3 < (int)lVar2 + 1" (number_literal "3") (< "<") (binary_expression "(int)lVar2 + 1" (cast_expression "(int)lVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar2")) (+ "+") (number_literal "1"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);" (assignment_expression "bVar1 = *(byte *)((long)&local_4c + lVar2 + 1)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((long)&local_4c + lVar2 + 1)" (* "*") (cast_expression "(byte *)((long)&local_4c + lVar2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_4c + lVar2 + 1)" (( "(") (binary_expression "(long)&local_4c + lVar2 + 1" (binary_expression "(long)&local_4c + lVar2" (cast_expression "(long)&local_4c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (+ "+") (identifier "lVar2")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" (identifier "lVar2") (= "=") (binary_expression "lVar2 + 1" (identifier "lVar2") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0))\n  {\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    FUN_0030dbd0(local_40,0,uVar8,0);\n  }" (if "if") (parenthesized_expression "((1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0))" (( "(") (binary_expression "(1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0)" (parenthesized_expression "(1 < *(ulong *)(local_40[0] + -0x18))" (( "(") (binary_expression "1 < *(ulong *)(local_40[0] + -0x18)" (number_literal "1") (< "<") (pointer_expression "*(ulong *)(local_40[0] + -0x18)" (* "*") (cast_expression "(ulong *)(local_40[0] + -0x18)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40[0] + -0x18)" (( "(") (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x18")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0)" (( "(") (comma_expression "uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0" (assignment_expression "uVar7 = FUN_0030d360(local_40,0x30,0)" (identifier "uVar7") (= "=") (call_expression "FUN_0030d360(local_40,0x30,0)" (identifier "FUN_0030d360") (argument_list "(local_40,0x30,0)" (( "(") (identifier "local_40") (, ",") (number_literal "0x30") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uVar8 = *(ulong *)(local_40[0] + -0x18);\n    if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }\n    if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }\n    FUN_0030dbd0(local_40,0,uVar8,0);\n  }" ({ "{") (expression_statement "uVar8 = *(ulong *)(local_40[0] + -0x18);" (assignment_expression "uVar8 = *(ulong *)(local_40[0] + -0x18)" (identifier "uVar8") (= "=") (pointer_expression "*(ulong *)(local_40[0] + -0x18)" (* "*") (cast_expression "(ulong *)(local_40[0] + -0x18)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40[0] + -0x18)" (( "(") (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x18")) () ")"))))) (; ";")) (if_statement "if (uVar7 == 0xffffffffffffffff) {\n      uVar7 = uVar8 - 1;\n    }" (if "if") (parenthesized_expression "(uVar7 == 0xffffffffffffffff)" (( "(") (binary_expression "uVar7 == 0xffffffffffffffff" (identifier "uVar7") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (compound_statement "{\n      uVar7 = uVar8 - 1;\n    }" ({ "{") (expression_statement "uVar7 = uVar8 - 1;" (assignment_expression "uVar7 = uVar8 - 1" (identifier "uVar7") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (uVar7 <= uVar8) {\n      uVar8 = uVar7;\n    }" (if "if") (parenthesized_expression "(uVar7 <= uVar8)" (( "(") (binary_expression "uVar7 <= uVar8" (identifier "uVar7") (<= "<=") (identifier "uVar8")) () ")")) (compound_statement "{\n      uVar8 = uVar7;\n    }" ({ "{") (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" (identifier "uVar8") (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (expression_statement "FUN_0030dbd0(local_40,0,uVar8,0);" (call_expression "FUN_0030dbd0(local_40,0,uVar8,0)" (identifier "FUN_0030dbd0") (argument_list "(local_40,0,uVar8,0)" (( "(") (identifier "local_40") (, ",") (number_literal "0") (, ",") (identifier "uVar8") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(local_48 + -0x18) != 0) {\n    FUN_0030ec80(&local_48,0);\n    cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }" (if "if") (parenthesized_expression "(*(long *)(local_48 + -0x18) != 0)" (( "(") (binary_expression "*(long *)(local_48 + -0x18) != 0" (pointer_expression "*(long *)(local_48 + -0x18)" (* "*") (cast_expression "(long *)(local_48 + -0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_48 + -0x18)" (( "(") (binary_expression "local_48 + -0x18" (identifier "local_48") (+ "+") (number_literal "-0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0030ec80(&local_48,0);\n    cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);\n    if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }\n  }" ({ "{") (expression_statement "FUN_0030ec80(&local_48,0);" (call_expression "FUN_0030ec80(&local_48,0)" (identifier "FUN_0030ec80") (argument_list "(&local_48,0)" (( "(") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);" (assignment_expression "cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48)" (identifier "cVar5") (= "=") (call_expression "FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48)" (identifier "FUN_00323270") (argument_list "(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48)" (( "(") (pointer_expression "*(undefined8 *)(lVar6 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar6 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x10)" (( "(") (binary_expression "lVar6 + 0x10" (identifier "lVar6") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(lVar6 + 0x18)" (* "*") (cast_expression "(undefined8 *)(lVar6 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x18)" (( "(") (binary_expression "lVar6 + 0x18" (identifier "lVar6") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (if_statement "if (cVar5 == '\0') {\n      *param_7 = *param_7 | 4;\n    }" (if "if") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *param_7 = *param_7 | 4;\n    }" ({ "{") (expression_statement "*param_7 = *param_7 | 4;" (assignment_expression "*param_7 = *param_7 | 4" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 | 4" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (| "|") (number_literal "4"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_0030ce20(param_8,local_40);" (call_expression "FUN_0030ce20(param_8,local_40)" (identifier "FUN_0030ce20") (argument_list "(param_8,local_40)" (( "(") (identifier "param_8") (, ",") (identifier "local_40") () ")"))) (; ";")) (expression_statement "local_b8 = &local_78;" (assignment_expression "local_b8 = &local_78" (identifier "local_b8") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";")) (expression_statement "cVar5 = FUN_0032c160(&local_68,local_b8);" (assignment_expression "cVar5 = FUN_0032c160(&local_68,local_b8)" (identifier "cVar5") (= "=") (call_expression "FUN_0032c160(&local_68,local_b8)" (identifier "FUN_0032c160") (argument_list "(&local_68,local_b8)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "local_b8") () ")")))) (; ";")) (expression_statement "uVar4 = local_60;" (assignment_expression "uVar4 = local_60" (identifier "uVar4") (= "=") (identifier "local_60")) (; ";")) (expression_statement "uVar3 = local_68;" (assignment_expression "uVar3 = local_68" (identifier "uVar3") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (cVar5 != '\0') {\n    *param_7 = *param_7 | 2;\n  }" (if "if") (parenthesized_expression "(cVar5 != '\0')" (( "(") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    *param_7 = *param_7 | 2;\n  }" ({ "{") (expression_statement "*param_7 = *param_7 | 2;" (assignment_expression "*param_7 = *param_7 | 2" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 | 2" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (local_40[0] + -0x18 != PTR_DAT_0043dc38) {\n    FUN_003253b0(local_40[0] + -0x18,&local_4d);\n  }" (if "if") (parenthesized_expression "(local_40[0] + -0x18 != PTR_DAT_0043dc38)" (( "(") (binary_expression "local_40[0] + -0x18 != PTR_DAT_0043dc38" (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x18")) (!= "!=") (identifier "PTR_DAT_0043dc38")) () ")")) (compound_statement "{\n    FUN_003253b0(local_40[0] + -0x18,&local_4d);\n  }" ({ "{") (expression_statement "FUN_003253b0(local_40[0] + -0x18,&local_4d);" (call_expression "FUN_003253b0(local_40[0] + -0x18,&local_4d)" (identifier "FUN_003253b0") (argument_list "(local_40[0] + -0x18,&local_4d)" (( "(") (binary_expression "local_40[0] + -0x18" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x18")) (, ",") (pointer_expression "&local_4d" (& "&") (identifier "local_4d")) () ")"))) (; ";")) (} "}"))) (if_statement "if (local_48 + -0x18 != PTR_DAT_0043dc38) {\n    FUN_003253b0(local_48 + -0x18,&local_4d);\n  }" (if "if") (parenthesized_expression "(local_48 + -0x18 != PTR_DAT_0043dc38)" (( "(") (binary_expression "local_48 + -0x18 != PTR_DAT_0043dc38" (binary_expression "local_48 + -0x18" (identifier "local_48") (+ "+") (number_literal "-0x18")) (!= "!=") (identifier "PTR_DAT_0043dc38")) () ")")) (compound_statement "{\n    FUN_003253b0(local_48 + -0x18,&local_4d);\n  }" ({ "{") (expression_statement "FUN_003253b0(local_48 + -0x18,&local_4d);" (call_expression "FUN_003253b0(local_48 + -0x18,&local_4d)" (identifier "FUN_003253b0") (argument_list "(local_48 + -0x18,&local_4d)" (( "(") (binary_expression "local_48 + -0x18" (identifier "local_48") (+ "+") (number_literal "-0x18")) (, ",") (pointer_expression "&local_4d" (& "&") (identifier "local_4d")) () ")"))) (; ";")) (} "}"))) (expression_statement "auVar9._8_8_ = uVar4;" (assignment_expression "auVar9._8_8_ = uVar4" (field_expression "auVar9._8_8_" (identifier "auVar9") (. ".") (field_identifier "_8_8_")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "auVar9._0_8_ = uVar3;" (assignment_expression "auVar9._0_8_ = uVar3" (field_expression "auVar9._0_8_" (identifier "auVar9") (. ".") (field_identifier "_0_8_")) (= "=") (identifier "uVar3")) (; ";")) (return_statement "return auVar9;" (return "return") (identifier "auVar9") (; ";")) (ERROR "}" (} "}"))

/* WARNING: Removing unreachable block (ram,0x003346f1) */
/* WARNING: Removing unreachable block (ram,0x00333fe4) */
/* WARNING: Removing unreachable block (ram,0x00333fec) */
/* WARNING: Removing unreachable block (ram,0x00334000) */
/* WARNING: Removing unreachable block (ram,0x00334005) */
/* WARNING: Removing unreachable block (ram,0x00334961) */
/* WARNING: Removing unreachable block (ram,0x00334013) */
/* WARNING: Removing unreachable block (ram,0x00334017) */
/* WARNING: Removing unreachable block (ram,0x00334020) */
/* WARNING: Removing unreachable block (ram,0x00333f98) */
/* WARNING: Removing unreachable block (ram,0x00333fa2) */
/* WARNING: Removing unreachable block (ram,0x00334690) */
/* WARNING: Removing unreachable block (ram,0x00333fb8) */
/* WARNING: Removing unreachable block (ram,0x00333fc0) */
/* WARNING: Removing unreachable block (ram,0x00333f64) */
/* WARNING: Removing unreachable block (ram,0x00333f6f) */
/* WARNING: Removing unreachable block (ram,0x003345a0) */
/* WARNING: Removing unreachable block (ram,0x00333f73) */
/* WARNING: Removing unreachable block (ram,0x00333fcc) */
/* WARNING: Removing unreachable block (ram,0x003346a0) */
/* WARNING: Removing unreachable block (ram,0x003346ab) */
/* WARNING: Removing unreachable block (ram,0x0033490d) */
/* WARNING: Removing unreachable block (ram,0x003349e0) */
/* WARNING: Removing unreachable block (ram,0x00334920) */
/* WARNING: Removing unreachable block (ram,0x00334929) */
/* WARNING: Removing unreachable block (ram,0x003349d1) */
/* WARNING: Removing unreachable block (ram,0x00334934) */
/* WARNING: Removing unreachable block (ram,0x003347b8) */
/* WARNING: Removing unreachable block (ram,0x00334409) */
/* WARNING: Removing unreachable block (ram,0x0033441b) */
/* WARNING: Removing unreachable block (ram,0x003347c2) */
/* WARNING: Restarted to delay deadcode elimination for space: stack */
/* std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::money_get<wchar_t,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::_M_extract<false>(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,
   std::_Ios_Iostate&, std::string&) const */

type_4  [16]
std::money_get<var_2,var_10::type_8<var_2,var_10::var_1<var_2>>>::
var_3<false>(type_2 param_1,type_2 param_2,type_2 param_3,type_2 param_4,
                 type_2 param_5,long var_11,var_4 *var_5,var_6 *var_7)

{
  type_1 var_16;
  long var_17;
  type_2 uVar3;
  type_2 uVar4;
  char var_25;
  long var_14;
  type_3 var_19;
  type_3 var_20;
  type_4 auVar9 [16];
  type_2 *local_b8;
  type_2 local_78;
  type_2 local_70;
  type_2 var_28;
  type_2 local_60;
  var_12<var_10::var_8<var_2,false>> local_4e [2];
  type_5 local_4c;
  type_4 *var_22;
  type_4 *local_40 [2];
  
  local_78 = param_4;
  local_70 = param_5;
  var_28 = param_2;
  local_60 = param_3;
  var_9<var_10::ctype<var_2>>((type_6 *)(var_11 + 0xd0));
  var_14 = var_12<var_10::var_8<var_2,false>>::var_13()
                    (local_4e,(type_6 *)(var_11 + 0xd0));
  var_22 = &DAT_0044a558;
  if (*(char *)(var_14 + 0x20) != '\0') {
                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */
    std::string::var_15((var_6 *)&var_22,0x20);
  }
  local_40[0] = &DAT_0044a558;
                    /* try { // try from 00333eba to 003349e9 has its CatchHandler @ 00334a01 */
  std::string::var_15((var_6 *)local_40,0x20);
  local_4c = *(type_5 *)(var_14 + 0x68);
  var_17 = 0;
  var_16 = (type_1)local_4c;
  while( true ) {
    if (var_16 < 5) {
                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      auVar9 = (*(type_7 *)(&DAT_0039430c +
                         *(int *)(&DAT_0039430c + (type_3)*(type_1 *)((long)&local_4c + var_17) * 4)))()
      ;
      return auVar9;
    }
    if (3 < (int)var_17 + 1) break;
    var_16 = *(type_1 *)((long)&local_4c + var_17 + 1);
    var_17 = var_17 + 1;
  }
  if ((1 < *(type_3 *)(local_40[0] + -0x18)) &&
     (var_19 = var_10::var_6::var_18((var_6 *)local_40,'0',0), var_19 != 0)) {
    var_20 = *(type_3 *)(local_40[0] + -0x18);
    if (var_19 == 0xffffffffffffffff) {
      var_19 = var_20 - 1;
    }
    if (var_19 <= var_20) {
      var_20 = var_19;
    }
    std::string::var_21((var_6 *)local_40,0,var_20,0);
  }
  if (*(long *)(var_22 + -0x18) != 0) {
    std::string::var_23((var_6 *)&var_22,'\0');
    var_25 = var_24(*(char **)(var_14 + 0x10),*(type_3 *)(var_14 + 0x18),(var_6 *)&var_22)
    ;
    if (var_25 == '\0') {
      *var_5 = *var_5 | 4;
    }
  }
  std::string::var_26(var_7,(var_6 *)local_40);
  local_b8 = &local_78;
  var_25 = type_8<var_2,var_10::var_1<var_2>>::var_27
                    ((type_8<var_2,var_10::var_1<var_2>> *)&var_28,
                     (type_8 *)local_b8);
  uVar4 = local_60;
  uVar3 = var_28;
  if (var_25 != '\0') {
    *var_5 = *var_5 | 2;
  }
  if ((type_9 *)(local_40[0] + -0x18) != (type_9 *)PTR__S_empty_rep_storage_0043dc38) {
    std::string::_Rep::var_29((type_9 *)(local_40[0] + -0x18));
  }
  if ((type_9 *)(var_22 + -0x18) != (type_9 *)PTR__S_empty_rep_storage_0043dc38) {
    std::string::_Rep::var_29((type_9 *)(var_22 + -0x18));
  }
  auVar9._8_8_ = uVar4;
  auVar9._0_8_ = uVar3;
  return auVar9;
}


(translation_unit (expression_statement (subscript_expression argument: (identifier) index: (number_literal)) (MISSING ";")) (declaration type: (macro_type_specifier name: (identifier) type: (type_descriptor type: (type_identifier)) (MISSING ")")) declarator: (identifier) declarator: (identifier) (ERROR (identifier)) declarator: (identifier) (ERROR (identifier)) declarator: (identifier) (ERROR (identifier)) declarator: (identifier) (ERROR (identifier)) (ERROR (identifier)) declarator: (identifier) (ERROR (identifier)) declarator: (pointer_declarator declarator: (identifier)) (ERROR (identifier) (identifier) (identifier)) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (identifier))) right: (identifier))))) right: (number_literal))))))))))) arguments: (argument_list)))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (identifier))) right: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (return_statement (identifier)) (ERROR))

/* WARNING: Removing unreachable block (ram,0x003346f1) */
/* WARNING: Removing unreachable block (ram,0x00333fe4) */
/* WARNING: Removing unreachable block (ram,0x00333fec) */
/* WARNING: Removing unreachable block (ram,0x00334000) */
/* WARNING: Removing unreachable block (ram,0x00334005) */
/* WARNING: Removing unreachable block (ram,0x00334961) */
/* WARNING: Removing unreachable block (ram,0x00334013) */
/* WARNING: Removing unreachable block (ram,0x00334017) */
/* WARNING: Removing unreachable block (ram,0x00334020) */
/* WARNING: Removing unreachable block (ram,0x00333f98) */
/* WARNING: Removing unreachable block (ram,0x00333fa2) */
/* WARNING: Removing unreachable block (ram,0x00334690) */
/* WARNING: Removing unreachable block (ram,0x00333fb8) */
/* WARNING: Removing unreachable block (ram,0x00333fc0) */
/* WARNING: Removing unreachable block (ram,0x00333f64) */
/* WARNING: Removing unreachable block (ram,0x00333f6f) */
/* WARNING: Removing unreachable block (ram,0x003345a0) */
/* WARNING: Removing unreachable block (ram,0x00333f73) */
/* WARNING: Removing unreachable block (ram,0x00333fcc) */
/* WARNING: Removing unreachable block (ram,0x003346a0) */
/* WARNING: Removing unreachable block (ram,0x003346ab) */
/* WARNING: Removing unreachable block (ram,0x0033490d) */
/* WARNING: Removing unreachable block (ram,0x003349e0) */
/* WARNING: Removing unreachable block (ram,0x00334920) */
/* WARNING: Removing unreachable block (ram,0x00334929) */
/* WARNING: Removing unreachable block (ram,0x003349d1) */
/* WARNING: Removing unreachable block (ram,0x00334934) */
/* WARNING: Removing unreachable block (ram,0x003347b8) */
/* WARNING: Removing unreachable block (ram,0x00334409) */
/* WARNING: Removing unreachable block (ram,0x0033441b) */
/* WARNING: Removing unreachable block (ram,0x003347c2) */
/* WARNING: Restarted to delay deadcode elimination for space: stack */

undefined1  [16]
MASKED(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
            undefined8 param_5,long param_6,uint *param_7,undefined8 param_8)

{
  byte bVar1;
  long lVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  char cVar5;
  long lVar6;
  ulong uVar7;
  ulong uVar8;
  undefined1 auVar9 [16];
  undefined8 *local_b8;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined8 local_60;
  undefined1 local_4e;
  undefined1 local_4d;
  undefined4 local_4c;
  undefined1 *local_48;
  undefined1 *local_40 [2];
  
  local_78 = param_4;
  local_70 = param_5;
  local_68 = param_2;
  local_60 = param_3;
  FUN_00327630(param_6 + 0xd0);
  lVar6 = FUN_0032aad0(&local_4e,param_6 + 0xd0);
  local_48 = &DAT_0044a558;
  if (*(char *)(lVar6 + 0x20) != '\0') {
                    /* try { // try from 00333e8d to 00333e91 has its CatchHandler @ 00334a06 */
    FUN_0030e7a0(&local_48,0x20);
  }
  local_40[0] = &DAT_0044a558;
                    /* try { // try from 00333eba to 003349e9 has its CatchHandler @ 00334a01 */
  FUN_0030e7a0(local_40,0x20);
  local_4c = *(undefined4 *)(lVar6 + 0x68);
  lVar2 = 0;
  bVar1 = (byte)local_4c;
  while( true ) {
    if (bVar1 < 5) {
                    /* WARNING: Could not recover jumptable at 0x00333f3a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      auVar9 = (*(code *)(&DAT_0039430c +
                         *(int *)(&DAT_0039430c + (ulong)*(byte *)((long)&local_4c + lVar2) * 4)))()
      ;
      return auVar9;
    }
    if (3 < (int)lVar2 + 1) break;
    bVar1 = *(byte *)((long)&local_4c + lVar2 + 1);
    lVar2 = lVar2 + 1;
  }
  if ((1 < *(ulong *)(local_40[0] + -0x18)) && (uVar7 = FUN_0030d360(local_40,0x30,0), uVar7 != 0))
  {
    uVar8 = *(ulong *)(local_40[0] + -0x18);
    if (uVar7 == 0xffffffffffffffff) {
      uVar7 = uVar8 - 1;
    }
    if (uVar7 <= uVar8) {
      uVar8 = uVar7;
    }
    FUN_0030dbd0(local_40,0,uVar8,0);
  }
  if (*(long *)(local_48 + -0x18) != 0) {
    FUN_0030ec80(&local_48,0);
    cVar5 = FUN_00323270(*(undefined8 *)(lVar6 + 0x10),*(undefined8 *)(lVar6 + 0x18),&local_48);
    if (cVar5 == '\0') {
      *param_7 = *param_7 | 4;
    }
  }
  FUN_0030ce20(param_8,local_40);
  local_b8 = &local_78;
  cVar5 = FUN_0032c160(&local_68,local_b8);
  uVar4 = local_60;
  uVar3 = local_68;
  if (cVar5 != '\0') {
    *param_7 = *param_7 | 2;
  }
  if (local_40[0] + -0x18 != PTR_DAT_0043dc38) {
    FUN_003253b0(local_40[0] + -0x18,&local_4d);
  }
  if (local_48 + -0x18 != PTR_DAT_0043dc38) {
    FUN_003253b0(local_48 + -0x18,&local_4d);
  }
  auVar9._8_8_ = uVar4;
  auVar9._0_8_ = uVar3;
  return auVar9;
}

