
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* std::ios_base::Init::Init() */

void __thiscall std::ios_base::Init::Init(Init *this)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  int iVar7;
  
  iVar7 = _S_refcount;
  puVar6 = PTR___pthread_key_create_00301f24;
  puVar5 = PTR_stdout_00301ea0;
  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _S_refcount = _S_refcount + 1;
  if (iVar7 == 0) {
    DAT_00309844 = 0;
    _S_synced_with_stdio = 1;
    DAT_00309848 = 0;
    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;
    DAT_0030984c = 0;
    __gnu_internal::buf_cout_sync = &PTR__streambuf_002ff09c;
    DAT_00309850 = 0;
    DAT_00309854 = 0;
    DAT_00309858 = 0;
    locale::locale((locale *)&DAT_0030985c);
    puVar4 = PTR_stdin_00301e54;
    DAT_00309864 = 0xffffffff;
    _DAT_00309804 = 0;
    uVar2 = *(undefined4 *)PTR_stdin_00301e54;
    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_002ffc40;
    __gnu_internal::buf_cin_sync = &PTR__streambuf_002ff09c;
    DAT_00309808 = 0;
    DAT_0030980c = 0;
    DAT_00309810 = 0;
    DAT_00309814 = 0;
    DAT_00309818 = 0;
    DAT_00309860 = uVar1;
    locale::locale((locale *)&DAT_0030981c);
    puVar3 = PTR_stderr_00301d28;
    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_002ffc40;
    uVar1 = *(undefined4 *)PTR_stderr_00301d28;
    __gnu_internal::buf_cerr_sync = &PTR__streambuf_002ff09c;
    DAT_00309824 = 0xffffffff;
    DAT_003097c4 = 0;
    DAT_003097c8 = 0;
    DAT_003097cc = 0;
    DAT_003097d0 = 0;
    DAT_003097d4 = 0;
    DAT_003097d8 = 0;
    DAT_00309820 = uVar2;
    locale::locale((locale *)&DAT_003097dc);
    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_002ffc40;
    DAT_003097e4 = 0xffffffff;
    DAT_003097e0 = uVar1;
    ios_base((ios_base *)&DAT_00309c44);
    _DAT_00309cb4 = 0;
    cout = 0x2ff158;
    DAT_00309cb8 = 0;
    DAT_00309cbc = 0;
    DAT_00309cc0 = 0;
    DAT_00309cc4 = 0;
    DAT_00309cc8 = 0;
    DAT_00309c44 = 0x2ff16c;
                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */
    ios::init((ios *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync);
    ios_base((ios_base *)&DAT_00309ce8);
    DAT_00309d58 = (undefined4 *)0x0;
    _DAT_00309d5c = 0;
    _DAT_00309d60 = 0;
    _DAT_00309d64 = 0;
    _DAT_00309d68 = 0;
    _DAT_00309d6c = 0;
    cin = 0x2ff744;
    DAT_00309ce8 = 0x2ff758;
    DAT_00309ce4 = 0;
                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */
    ios::init((ios *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync);
    ios_base((ios_base *)&DAT_00309ba4);
    DAT_00309c14 = (undefined4 *)0x0;
    _DAT_00309c18 = 0;
    _DAT_00309c1c = 0;
    cerr = 0x2ff158;
    DAT_00309c20 = 0;
    DAT_00309c24 = 0;
    DAT_00309c28 = 0;
    DAT_00309ba4 = 0x2ff16c;
                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */
    ios::init((ios *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);
    ios_base((ios_base *)&DAT_00309b04);
    _DAT_00309b78 = 0;
    clog = 0x2ff158;
    DAT_00309b74 = 0;
    DAT_00309b7c = 0;
    DAT_00309b80 = 0;
    DAT_00309b84 = 0;
    DAT_00309b88 = 0;
    DAT_00309b04 = 0x2ff16c;
                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */
    ios::init((ios *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync);
    _DAT_003095a4 = 0;
    DAT_00309bb0 = DAT_00309bb0 | 0x2000;
    DAT_00309d58 = &cout;
    DAT_00309c14 = &cout;
    _DAT_003095a8 = 0;
    _DAT_003095ac = 0;
    uVar1 = *(undefined4 *)puVar5;
    _DAT_003095b0 = 0;
    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_002ff0dc;
    DAT_003095b4 = 0;
    DAT_003095b8 = 0;
    locale::locale((locale *)&DAT_003095bc);
    DAT_003095c4 = 0xffffffff;
    _DAT_00309564 = 0;
    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_002ffc80;
    _DAT_00309568 = 0;
    uVar2 = *(undefined4 *)puVar4;
    _DAT_0030956c = 0;
    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_002ff0dc;
    DAT_00309570 = 0;
    DAT_00309574 = 0;
    DAT_00309578 = 0;
    DAT_003095c0 = uVar1;
    locale::locale((locale *)&DAT_0030957c);
    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_002ffc80;
    uVar1 = *(undefined4 *)puVar3;
    DAT_00309584 = 0xffffffff;
    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_002ff0dc;
    DAT_00309524 = 0;
    DAT_00309528 = 0;
    DAT_0030952c = 0;
    DAT_00309530 = 0;
    DAT_00309534 = 0;
    DAT_00309538 = 0;
    DAT_00309580 = uVar2;
    locale::locale((locale *)&DAT_0030953c);
    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_002ffc80;
    DAT_00309544 = 0xffffffff;
    DAT_00309540 = uVar1;
    ios_base((ios_base *)&DAT_003099c4);
    _DAT_00309a34 = 0;
    wcout = 0x2ff188;
    DAT_00309a38 = 0;
    DAT_00309a3c = 0;
    DAT_00309a40 = 0;
    DAT_00309a44 = 0;
    DAT_00309a48 = 0;
    DAT_00309a4c = 0;
    DAT_003099c4 = 0x2ff19c;
                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */
    wios::init((wios *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);
    ios_base((ios_base *)&DAT_00309a68);
    DAT_00309ad8 = (undefined4 *)0x0;
    _DAT_00309adc = 0;
    DAT_00309ae0 = 0;
    _DAT_00309ae4 = 0;
    _DAT_00309ae8 = 0;
    _DAT_00309aec = 0;
    _DAT_00309af0 = 0;
    wcin = 0x2ff774;
    DAT_00309a68 = 0x2ff788;
    DAT_00309a64 = 0;
                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */
    wios::init((wios *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);
    ios_base((ios_base *)&DAT_00309924);
    DAT_0030999c = 0;
    DAT_00309994 = (undefined4 *)0x0;
    wcerr = 0x2ff188;
    DAT_00309998 = 0;
    DAT_003099a0 = 0;
    DAT_003099a4 = 0;
    DAT_003099a8 = 0;
    DAT_003099ac = 0;
    DAT_00309924 = 0x2ff19c;
                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */
    wios::init((wios *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);
    ios_base((ios_base *)&DAT_00309884);
    _DAT_003098f4 = 0;
    wclog = 0x2ff188;
    DAT_003098f8 = 0;
    DAT_003098fc = 0;
    DAT_00309900 = 0;
    DAT_00309904 = 0;
    DAT_00309908 = 0;
    DAT_0030990c = 0;
    DAT_00309884 = 0x2ff19c;
                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */
    wios::init((wios *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);
    DAT_00309930 = DAT_00309930 | 0x2000;
    DAT_00309ad8 = &wcout;
    DAT_00309994 = &wcout;
    if (puVar6 != (undefined *)0x0) {
      LOCK();
      _S_refcount = _S_refcount + 1;
      UNLOCK();
      return;
    }
    _S_refcount = _S_refcount + 1;
    return;
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void FUN_00183990(void)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  int iVar7;
  
  iVar7 = DAT_00309e1c;
  puVar6 = PTR___pthread_key_create_00301f24;
  puVar5 = PTR_stdout_00301ea0;
  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00309e1c = DAT_00309e1c + 1;
  if (iVar7 == 0) {
    DAT_00309844 = 0;
    DAT_003023a0 = 1;
    DAT_00309848 = 0;
    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;
    DAT_0030984c = 0;
    DAT_00309840 = &PTR_FUN_002ff09c;
    DAT_00309850 = 0;
    DAT_00309854 = 0;
    DAT_00309858 = 0;
    FUN_001d1a60(&DAT_0030985c);
    puVar4 = PTR_stdin_00301e54;
    DAT_00309864 = 0xffffffff;
    DAT_00309804 = 0;
    uVar2 = *(undefined4 *)PTR_stdin_00301e54;
    DAT_00309840 = &PTR_FUN_002ffc40;
    DAT_00309800 = &PTR_FUN_002ff09c;
    DAT_00309808 = 0;
    DAT_0030980c = 0;
    DAT_00309810 = 0;
    DAT_00309814 = 0;
    DAT_00309818 = 0;
    DAT_00309860 = uVar1;
    FUN_001d1a60(&DAT_0030981c);
    puVar3 = PTR_stderr_00301d28;
    DAT_00309800 = &PTR_FUN_002ffc40;
    uVar1 = *(undefined4 *)PTR_stderr_00301d28;
    DAT_003097c0 = &PTR_FUN_002ff09c;
    DAT_00309824 = 0xffffffff;
    DAT_003097c4 = 0;
    DAT_003097c8 = 0;
    DAT_003097cc = 0;
    DAT_003097d0 = 0;
    DAT_003097d4 = 0;
    DAT_003097d8 = 0;
    DAT_00309820 = uVar2;
    FUN_001d1a60(&DAT_003097dc);
    DAT_003097c0 = &PTR_FUN_002ffc40;
    DAT_003097e4 = 0xffffffff;
    DAT_003097e0 = uVar1;
    FUN_001c5690(&DAT_00309c44);
    DAT_00309cb4 = 0;
    DAT_00309c40 = &PTR_FUN_002ff158;
    DAT_00309cb8 = 0;
    DAT_00309cbc = 0;
    DAT_00309cc0 = 0;
    DAT_00309cc4 = 0;
    DAT_00309cc8 = 0;
    DAT_00309c44 = &PTR_FUN_002ff16c;
                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */
    FUN_001aae40(&DAT_00309c44,&DAT_00309840);
    FUN_001c5690(&DAT_00309ce8);
    DAT_00309d58 = (undefined4 *)0x0;
    DAT_00309d5c = 0;
    DAT_00309d60 = 0;
    DAT_00309d64 = 0;
    DAT_00309d68 = 0;
    DAT_00309d6c = 0;
    DAT_00309ce0 = &PTR_FUN_002ff744;
    DAT_00309ce8 = &PTR_FUN_002ff758;
    DAT_00309ce4 = 0;
                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */
    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);
    FUN_001c5690(&DAT_00309ba4);
    DAT_00309c14 = (undefined4 *)0x0;
    DAT_00309c18 = 0;
    DAT_00309c1c = 0;
    DAT_00309ba0 = &PTR_FUN_002ff158;
    DAT_00309c20 = 0;
    DAT_00309c24 = 0;
    DAT_00309c28 = 0;
    DAT_00309ba4 = &PTR_FUN_002ff16c;
                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */
    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);
    FUN_001c5690(&DAT_00309b04);
    DAT_00309b78 = 0;
    DAT_00309b00 = &PTR_FUN_002ff158;
    DAT_00309b74 = 0;
    DAT_00309b7c = 0;
    DAT_00309b80 = 0;
    DAT_00309b84 = 0;
    DAT_00309b88 = 0;
    DAT_00309b04 = &PTR_FUN_002ff16c;
                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */
    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);
    DAT_003095a4 = 0;
    DAT_00309bb0 = DAT_00309bb0 | 0x2000;
    DAT_00309d58 = &DAT_00309c40;
    DAT_00309c14 = &DAT_00309c40;
    DAT_003095a8 = 0;
    DAT_003095ac = 0;
    uVar1 = *(undefined4 *)puVar5;
    DAT_003095b0 = 0;
    DAT_003095a0 = &PTR_FUN_002ff0dc;
    DAT_003095b4 = 0;
    DAT_003095b8 = 0;
    FUN_001d1a60(&DAT_003095bc);
    DAT_003095c4 = 0xffffffff;
    DAT_00309564 = 0;
    DAT_003095a0 = &PTR_FUN_002ffc80;
    DAT_00309568 = 0;
    uVar2 = *(undefined4 *)puVar4;
    DAT_0030956c = 0;
    DAT_00309560 = &PTR_FUN_002ff0dc;
    DAT_00309570 = 0;
    DAT_00309574 = 0;
    DAT_00309578 = 0;
    DAT_003095c0 = uVar1;
    FUN_001d1a60(&DAT_0030957c);
    DAT_00309560 = &PTR_FUN_002ffc80;
    uVar1 = *(undefined4 *)puVar3;
    DAT_00309584 = 0xffffffff;
    DAT_00309520 = &PTR_FUN_002ff0dc;
    DAT_00309524 = 0;
    DAT_00309528 = 0;
    DAT_0030952c = 0;
    DAT_00309530 = 0;
    DAT_00309534 = 0;
    DAT_00309538 = 0;
    DAT_00309580 = uVar2;
    FUN_001d1a60(&DAT_0030953c);
    DAT_00309520 = &PTR_FUN_002ffc80;
    DAT_00309544 = 0xffffffff;
    DAT_00309540 = uVar1;
    FUN_001c5690(&DAT_003099c4);
    DAT_00309a34 = 0;
    DAT_003099c0 = &PTR_FUN_002ff188;
    DAT_00309a38 = 0;
    DAT_00309a3c = 0;
    DAT_00309a40 = 0;
    DAT_00309a44 = 0;
    DAT_00309a48 = 0;
    DAT_00309a4c = 0;
    DAT_003099c4 = &PTR_FUN_002ff19c;
                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */
    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);
    FUN_001c5690(&DAT_00309a68);
    DAT_00309ad8 = (undefined4 *)0x0;
    DAT_00309adc = 0;
    DAT_00309ae0 = 0;
    DAT_00309ae4 = 0;
    DAT_00309ae8 = 0;
    DAT_00309aec = 0;
    DAT_00309af0 = 0;
    DAT_00309a60 = &PTR_FUN_002ff774;
    DAT_00309a68 = &PTR_FUN_002ff788;
    DAT_00309a64 = 0;
                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */
    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);
    FUN_001c5690(&DAT_00309924);
    DAT_0030999c = 0;
    DAT_00309994 = (undefined4 *)0x0;
    DAT_00309920 = &PTR_FUN_002ff188;
    DAT_00309998 = 0;
    DAT_003099a0 = 0;
    DAT_003099a4 = 0;
    DAT_003099a8 = 0;
    DAT_003099ac = 0;
    DAT_00309924 = &PTR_FUN_002ff19c;
                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */
    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);
    FUN_001c5690(&DAT_00309884);
    DAT_003098f4 = 0;
    DAT_00309880 = &PTR_FUN_002ff188;
    DAT_003098f8 = 0;
    DAT_003098fc = 0;
    DAT_00309900 = 0;
    DAT_00309904 = 0;
    DAT_00309908 = 0;
    DAT_0030990c = 0;
    DAT_00309884 = &PTR_FUN_002ff19c;
                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */
    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);
    DAT_00309930 = DAT_00309930 | 0x2000;
    DAT_00309ad8 = &DAT_003099c0;
    DAT_00309994 = &DAT_003099c0;
    if (puVar6 != (undefined *)0x0) {
      LOCK();
      DAT_00309e1c = DAT_00309e1c + 1;
      UNLOCK();
      return;
    }
    DAT_00309e1c = DAT_00309e1c + 1;
    return;
  }
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
CALL 0x0004fb7a
ADD ESI,0x17e666
PUSH EBX
SUB ESP,0x3c
MOV EAX,dword ptr [ESI + 0xffffff24]
MOV dword ptr [EBP + -0x1c],EAX
TEST EAX,EAX
JZ 0x001839d8
LEA EAX,[ESI + 0x7e1c]
MOV dword ptr [EBP + -0x20],EAX
MOV EDI,EAX
MOV EAX,0x1
XADD.LOCK dword ptr [EDI],EAX
TEST EAX,EAX
JZ 0x001839ec
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA ECX,[ESI + 0x7e1c]
MOV EAX,dword ptr [ECX]
MOV dword ptr [EBP + -0x20],ECX
LEA EDX,[EAX + 0x1]
MOV dword ptr [ECX],EDX
TEST EAX,EAX
JNZ 0x001839c9
LEA EAX,[ESI + 0x3a0]
LEA EDX,[ESI + 0xffffd094]
SUB ESP,0xc
MOV EBX,ESI
MOV dword ptr [ESI + 0x7844],0x0
MOV byte ptr [EAX],0x1
MOV EAX,dword ptr [ESI + 0xfffffea0]
MOV dword ptr [ESI + 0x7848],0x0
MOV dword ptr [EBP + -0x34],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESI + 0x784c],0x0
MOV dword ptr [EBP + -0x28],EAX
LEA EAX,[EDX + 0x8]
LEA EDX,[ESI + 0x785c]
PUSH EDX
MOV dword ptr [EBP + -0x24],EAX
MOV dword ptr [ESI + 0x7840],EAX
MOV dword ptr [ESI + 0x7850],0x0
MOV dword ptr [ESI + 0x7854],0x0
MOV dword ptr [ESI + 0x7858],0x0
CALL 0x001d1a60
MOV EAX,dword ptr [EBP + -0x28]
MOV EBX,dword ptr [ESI + 0xfffffe54]
MOV dword ptr [ESI + 0x7864],0xffffffff
MOV dword ptr [ESI + 0x7804],0x0
LEA EDX,[ESI + 0xffffdc38]
MOV dword ptr [ESI + 0x7860],EAX
MOV EAX,dword ptr [EBX]
LEA EDI,[EDX + 0x8]
MOV dword ptr [EBP + -0x40],EBX
LEA EDX,[ESI + 0x781c]
MOV EBX,ESI
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [EBP + -0x24]
MOV dword ptr [ESP],EDX
MOV dword ptr [ESI + 0x7840],EDI
MOV dword ptr [ESI + 0x7800],EAX
MOV dword ptr [ESI + 0x7808],0x0
MOV dword ptr [ESI + 0x780c],0x0
MOV dword ptr [ESI + 0x7810],0x0
MOV dword ptr [ESI + 0x7814],0x0
MOV dword ptr [ESI + 0x7818],0x0
CALL 0x001d1a60
MOV ECX,dword ptr [ESI + 0xfffffd28]
MOV EAX,dword ptr [EBP + -0x28]
LEA EDX,[ESI + 0x77dc]
MOV dword ptr [ESI + 0x7800],EDI
MOV dword ptr [ESI + 0x7820],EAX
MOV EAX,dword ptr [ECX]
MOV dword ptr [EBP + -0x38],ECX
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [EBP + -0x24]
MOV dword ptr [ESP],EDX
MOV dword ptr [ESI + 0x77c0],EAX
MOV dword ptr [ESI + 0x7824],0xffffffff
MOV dword ptr [ESI + 0x77c4],0x0
MOV dword ptr [ESI + 0x77c8],0x0
MOV dword ptr [ESI + 0x77cc],0x0
MOV dword ptr [ESI + 0x77d0],0x0
MOV dword ptr [ESI + 0x77d4],0x0
MOV dword ptr [ESI + 0x77d8],0x0
CALL 0x001d1a60
MOV EAX,dword ptr [EBP + -0x28]
MOV dword ptr [ESI + 0x77c0],EDI
MOV dword ptr [ESI + 0x77e4],0xffffffff
MOV dword ptr [ESI + 0x77e0],EAX
LEA EAX,[ESI + 0x7c40]
LEA EDI,[EAX + 0x4]
MOV dword ptr [EBP + -0x24],EAX
MOV dword ptr [ESP],EDI
CALL 0x001c5690
LEA EBX,[ESI + 0xffffd14c]
MOV EDX,dword ptr [EBP + -0x24]
XOR ECX,ECX
LEA EAX,[EBX + 0xc]
MOV dword ptr [EDX + 0x74],0x0
MOV dword ptr [EDX],EAX
LEA EAX,[EBX + 0x20]
MOV word ptr [EDX + 0x78],CX
MOV dword ptr [EDX + 0x7c],0x0
MOV dword ptr [EDX + 0x80],0x0
MOV dword ptr [EDX + 0x84],0x0
MOV dword ptr [EDX + 0x88],0x0
MOV dword ptr [EDX + 0x4],EAX
MOV dword ptr [EBP + -0x30],EBX
POP EBX
MOV EBX,ESI
POP EAX
LEA EAX,[ESI + 0x7840]
PUSH EAX
PUSH EDI
CALL 0x001aae40
LEA EAX,[ESI + 0x7ce0]
LEA EDI,[EAX + 0x8]
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [ESP],EDI
CALL 0x001c5690
LEA EAX,[ESI + 0xffffd738]
MOV EBX,dword ptr [EBP + -0x28]
XOR ECX,ECX
LEA EDX,[EAX + 0xc]
ADD EAX,0x20
MOV dword ptr [EBX + 0x78],0x0
MOV word ptr [EBX + 0x7c],CX
MOV dword ptr [EBX + 0x80],0x0
MOV dword ptr [EBX + 0x84],0x0
MOV dword ptr [EBX + 0x88],0x0
MOV dword ptr [EBX + 0x8c],0x0
MOV dword ptr [EBX],EDX
MOV dword ptr [EBX + 0x8],EAX
MOV dword ptr [EBX + 0x4],0x0
POP EBX
MOV EBX,ESI
POP EAX
LEA EAX,[ESI + 0x7800]
PUSH EAX
PUSH EDI
CALL 0x001aae40
LEA EDI,[ESI + 0x7ba0]
LEA EAX,[EDI + 0x4]
MOV dword ptr [ESP],EAX
MOV dword ptr [EBP + -0x2c],EAX
CALL 0x001c5690
MOV EBX,dword ptr [EBP + -0x30]
XOR EAX,EAX
MOV dword ptr [EDI + 0x74],0x0
MOV word ptr [EDI + 0x78],AX
LEA EAX,[EBX + 0xc]
MOV dword ptr [EDI + 0x7c],0x0
MOV dword ptr [EDI],EAX
LEA EAX,[EBX + 0x20]
MOV EBX,ESI
MOV dword ptr [EDI + 0x80],0x0
MOV dword ptr [EDI + 0x84],0x0
MOV dword ptr [EDI + 0x88],0x0
MOV dword ptr [EDI + 0x4],EAX
POP EAX
POP EDX
LEA EDX,[ESI + 0x77c0]
PUSH EDX
PUSH dword ptr [EBP + -0x2c]
MOV dword ptr [EBP + -0x3c],EDX
CALL 0x001aae40
LEA EAX,[ESI + 0x7b00]
MOV dword ptr [EBP + -0x2c],EAX
ADD EAX,0x4
MOV dword ptr [ESP],EAX
MOV dword ptr [EBP + -0x44],EAX
CALL 0x001c5690
MOV EAX,dword ptr [EBP + -0x2c]
MOV ECX,dword ptr [EBP + -0x30]
XOR EDX,EDX
MOV word ptr [EAX + 0x78],DX
LEA EDX,[ECX + 0xc]
MOV dword ptr [EAX],EDX
LEA EDX,[ECX + 0x20]
MOV dword ptr [EAX + 0x74],0x0
MOV dword ptr [EAX + 0x7c],0x0
MOV dword ptr [EAX + 0x80],0x0
MOV dword ptr [EAX + 0x84],0x0
MOV dword ptr [EAX + 0x88],0x0
MOV dword ptr [EAX + 0x4],EDX
POP ECX
POP EAX
MOV EAX,dword ptr [EBP + -0x44]
PUSH dword ptr [EBP + -0x3c]
PUSH EAX
CALL 0x001aae40
MOV EAX,dword ptr [EBP + -0x24]
MOV EBX,dword ptr [EBP + -0x28]
MOV dword ptr [ESI + 0x75a4],0x0
OR dword ptr [EDI + 0x10],0x2000
LEA EDX,[ESI + 0xffffd0d4]
MOV dword ptr [EBX + 0x78],EAX
MOV EBX,ESI
MOV dword ptr [EDI + 0x74],EAX
MOV EAX,dword ptr [EBP + -0x34]
MOV dword ptr [ESI + 0x75a8],0x0
MOV dword ptr [ESI + 0x75ac],0x0
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESI + 0x75b0],0x0
MOV dword ptr [EBP + -0x28],EAX
LEA EAX,[EDX + 0x8]
LEA EDX,[ESI + 0x75bc]
MOV dword ptr [ESP],EDX
MOV dword ptr [EBP + -0x24],EAX
MOV dword ptr [ESI + 0x75a0],EAX
MOV dword ptr [ESI + 0x75b4],0x0
MOV dword ptr [ESI + 0x75b8],0x0
CALL 0x001d1a60
LEA EDX,[ESI + 0xffffdc78]
MOV EAX,dword ptr [EBP + -0x28]
MOV dword ptr [ESI + 0x75c4],0xffffffff
MOV dword ptr [ESI + 0x7564],0x0
LEA EDI,[EDX + 0x8]
MOV EDX,dword ptr [EBP + -0x40]
MOV dword ptr [ESI + 0x75c0],EAX
MOV dword ptr [ESI + 0x75a0],EDI
MOV dword ptr [ESI + 0x7568],0x0
MOV EAX,dword ptr [EDX]
LEA EDX,[ESI + 0x757c]
MOV dword ptr [ESP],EDX
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [EBP + -0x24]
MOV dword ptr [ESI + 0x756c],0x0
MOV dword ptr [ESI + 0x7560],EAX
MOV dword ptr [ESI + 0x7570],0x0
MOV dword ptr [ESI + 0x7574],0x0
MOV dword ptr [ESI + 0x7578],0x0
CALL 0x001d1a60
MOV EAX,dword ptr [EBP + -0x28]
MOV EBX,dword ptr [EBP + -0x38]
LEA EDX,[ESI + 0x753c]
MOV dword ptr [ESI + 0x7560],EDI
MOV dword ptr [ESI + 0x7580],EAX
MOV EAX,dword ptr [EBX]
MOV EBX,ESI
MOV dword ptr [ESP],EDX
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [EBP + -0x24]
MOV dword ptr [ESI + 0x7584],0xffffffff
MOV dword ptr [ESI + 0x7520],EAX
MOV dword ptr [ESI + 0x7524],0x0
MOV dword ptr [ESI + 0x7528],0x0
MOV dword ptr [ESI + 0x752c],0x0
MOV dword ptr [ESI + 0x7530],0x0
MOV dword ptr [ESI + 0x7534],0x0
MOV dword ptr [ESI + 0x7538],0x0
CALL 0x001d1a60
MOV EAX,dword ptr [EBP + -0x28]
MOV dword ptr [ESI + 0x7520],EDI
MOV dword ptr [ESI + 0x7544],0xffffffff
MOV dword ptr [ESI + 0x7540],EAX
LEA EAX,[ESI + 0x79c0]
LEA EDI,[EAX + 0x4]
MOV dword ptr [EBP + -0x24],EAX
MOV dword ptr [ESP],EDI
CALL 0x001c5690
LEA EDX,[ESI + 0xffffd17c]
MOV ECX,dword ptr [EBP + -0x24]
LEA EAX,[EDX + 0xc]
MOV dword ptr [ECX + 0x74],0x0
MOV dword ptr [ECX],EAX
LEA EAX,[EDX + 0x20]
MOV dword ptr [ECX + 0x78],0x0
MOV byte ptr [ECX + 0x7c],0x0
MOV dword ptr [ECX + 0x80],0x0
MOV dword ptr [ECX + 0x84],0x0
MOV dword ptr [ECX + 0x88],0x0
MOV dword ptr [ECX + 0x8c],0x0
MOV dword ptr [ECX + 0x4],EAX
POP EAX
LEA EAX,[ESI + 0x75a0]
MOV dword ptr [EBP + -0x30],EDX
POP EDX
PUSH EAX
PUSH EDI
CALL 0x001ab7c0
LEA EAX,[ESI + 0x7a60]
LEA EDI,[EAX + 0x8]
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [ESP],EDI
CALL 0x001c5690
LEA EAX,[ESI + 0xffffd768]
MOV ECX,dword ptr [EBP + -0x28]
LEA EDX,[EAX + 0xc]
ADD EAX,0x20
MOV dword ptr [ECX + 0x78],0x0
MOV dword ptr [ECX + 0x7c],0x0
MOV byte ptr [ECX + 0x80],0x0
MOV dword ptr [ECX + 0x84],0x0
MOV dword ptr [ECX + 0x88],0x0
MOV dword ptr [ECX + 0x8c],0x0
MOV dword ptr [ECX + 0x90],0x0
MOV dword ptr [ECX],EDX
MOV dword ptr [ECX + 0x8],EAX
MOV dword ptr [ECX + 0x4],0x0
POP ECX
POP EAX
LEA EAX,[ESI + 0x7560]
PUSH EAX
PUSH EDI
CALL 0x001ab7c0
LEA EDI,[ESI + 0x7920]
LEA EAX,[EDI + 0x4]
MOV dword ptr [ESP],EAX
MOV dword ptr [EBP + -0x2c],EAX
CALL 0x001c5690
MOV EDX,dword ptr [EBP + -0x30]
MOV byte ptr [EDI + 0x7c],0x0
LEA EBX,[ESI + 0x7520]
MOV dword ptr [EDI + 0x74],0x0
LEA EAX,[EDX + 0xc]
MOV dword ptr [EBP + -0x34],EBX
MOV dword ptr [EDI],EAX
LEA EAX,[EDX + 0x20]
MOV dword ptr [EDI + 0x78],0x0
MOV dword ptr [EDI + 0x80],0x0
MOV dword ptr [EDI + 0x84],0x0
MOV dword ptr [EDI + 0x88],0x0
MOV dword ptr [EDI + 0x8c],0x0
MOV dword ptr [EDI + 0x4],EAX
POP EAX
POP EDX
PUSH EBX
MOV EBX,ESI
PUSH dword ptr [EBP + -0x2c]
CALL 0x001ab7c0
LEA EAX,[ESI + 0x7880]
MOV dword ptr [EBP + -0x2c],EAX
ADD EAX,0x4
MOV dword ptr [ESP],EAX
MOV dword ptr [EBP + -0x38],EAX
CALL 0x001c5690
MOV ECX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EBP + -0x2c]
LEA EDX,[ECX + 0xc]
MOV dword ptr [EAX + 0x74],0x0
MOV dword ptr [EAX],EDX
LEA EDX,[ECX + 0x20]
MOV dword ptr [EAX + 0x78],0x0
MOV byte ptr [EAX + 0x7c],0x0
MOV dword ptr [EAX + 0x80],0x0
MOV dword ptr [EAX + 0x84],0x0
MOV dword ptr [EAX + 0x88],0x0
MOV dword ptr [EAX + 0x8c],0x0
MOV dword ptr [EAX + 0x4],EDX
POP ECX
POP EAX
MOV EAX,dword ptr [EBP + -0x38]
PUSH dword ptr [EBP + -0x34]
PUSH EAX
CALL 0x001ab7c0
MOV EAX,dword ptr [EBP + -0x24]
MOV EDX,dword ptr [EBP + -0x28]
ADD ESP,0x10
OR dword ptr [EDI + 0x10],0x2000
MOV dword ptr [EDX + 0x78],EAX
MOV dword ptr [EDI + 0x74],EAX
MOV EAX,dword ptr [EBP + -0x1c]
TEST EAX,EAX
JZ 0x001840b8
MOV EAX,dword ptr [EBP + -0x20]
ADD.LOCK dword ptr [EAX],0x1
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + -0x20]
ADD dword ptr [EAX],0x1
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid FUN_00183990(void)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = DAT_00309e1c;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00309e1c = DAT_00309e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */\n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */\n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */\n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */\n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */\n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */\n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */\n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */\n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00183990(void)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = DAT_00309e1c;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00309e1c = DAT_00309e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */\n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */\n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */\n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */\n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */\n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */\n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */\n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */\n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00183990(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = DAT_00309e1c;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00309e1c = DAT_00309e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */\n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */\n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */\n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */\n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */\n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */\n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */\n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */\n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (expression_statement "iVar7 = DAT_00309e1c;" (assignment_expression "iVar7 = DAT_00309e1c" identifier = identifier) ;) (expression_statement "puVar6 = PTR___pthread_key_create_00301f24;" (assignment_expression "puVar6 = PTR___pthread_key_create_00301f24" identifier = identifier) ;) (expression_statement "puVar5 = PTR_stdout_00301ea0;" (assignment_expression "puVar5 = PTR_stdout_00301ea0" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_00301f24 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_00301f24 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_00309e1c = DAT_00309e1c + 1;" (assignment_expression "DAT_00309e1c = DAT_00309e1c + 1" identifier = (binary_expression "DAT_00309e1c + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */\n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */\n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */\n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */\n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */\n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */\n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */\n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */\n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */\n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */\n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */\n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */\n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */\n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */\n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */\n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */\n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }" { (expression_statement "DAT_00309844 = 0;" (assignment_expression "DAT_00309844 = 0" identifier = number_literal) ;) (expression_statement "DAT_003023a0 = 1;" (assignment_expression "DAT_003023a0 = 1" identifier = number_literal) ;) (expression_statement "DAT_00309848 = 0;" (assignment_expression "DAT_00309848 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)PTR_stdout_00301ea0;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stdout_00301ea0" identifier = (pointer_expression "*(undefined4 *)PTR_stdout_00301ea0" * (cast_expression "(undefined4 *)PTR_stdout_00301ea0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_0030984c = 0;" (assignment_expression "DAT_0030984c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309840 = &PTR_FUN_002ff09c;" (assignment_expression "DAT_00309840 = &PTR_FUN_002ff09c" identifier = (pointer_expression "&PTR_FUN_002ff09c" & identifier)) ;) (expression_statement "DAT_00309850 = 0;" (assignment_expression "DAT_00309850 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309854 = 0;" (assignment_expression "DAT_00309854 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309858 = 0;" (assignment_expression "DAT_00309858 = 0" identifier = number_literal) ;) (expression_statement "FUN_001d1a60(&DAT_0030985c);" (call_expression "FUN_001d1a60(&DAT_0030985c)" identifier (argument_list "(&DAT_0030985c)" ( (pointer_expression "&DAT_0030985c" & identifier) ))) ;) (expression_statement "puVar4 = PTR_stdin_00301e54;" (assignment_expression "puVar4 = PTR_stdin_00301e54" identifier = identifier) ;) (expression_statement "DAT_00309864 = 0xffffffff;" (assignment_expression "DAT_00309864 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00309804 = 0;" (assignment_expression "DAT_00309804 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)PTR_stdin_00301e54;" (assignment_expression "uVar2 = *(undefined4 *)PTR_stdin_00301e54" identifier = (pointer_expression "*(undefined4 *)PTR_stdin_00301e54" * (cast_expression "(undefined4 *)PTR_stdin_00301e54" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_00309840 = &PTR_FUN_002ffc40;" (assignment_expression "DAT_00309840 = &PTR_FUN_002ffc40" identifier = (pointer_expression "&PTR_FUN_002ffc40" & identifier)) ;) (expression_statement "DAT_00309800 = &PTR_FUN_002ff09c;" (assignment_expression "DAT_00309800 = &PTR_FUN_002ff09c" identifier = (pointer_expression "&PTR_FUN_002ff09c" & identifier)) ;) (expression_statement "DAT_00309808 = 0;" (assignment_expression "DAT_00309808 = 0" identifier = number_literal) ;) (expression_statement "DAT_0030980c = 0;" (assignment_expression "DAT_0030980c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309810 = 0;" (assignment_expression "DAT_00309810 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309814 = 0;" (assignment_expression "DAT_00309814 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309818 = 0;" (assignment_expression "DAT_00309818 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309860 = uVar1;" (assignment_expression "DAT_00309860 = uVar1" identifier = identifier) ;) (expression_statement "FUN_001d1a60(&DAT_0030981c);" (call_expression "FUN_001d1a60(&DAT_0030981c)" identifier (argument_list "(&DAT_0030981c)" ( (pointer_expression "&DAT_0030981c" & identifier) ))) ;) (expression_statement "puVar3 = PTR_stderr_00301d28;" (assignment_expression "puVar3 = PTR_stderr_00301d28" identifier = identifier) ;) (expression_statement "DAT_00309800 = &PTR_FUN_002ffc40;" (assignment_expression "DAT_00309800 = &PTR_FUN_002ffc40" identifier = (pointer_expression "&PTR_FUN_002ffc40" & identifier)) ;) (expression_statement "uVar1 = *(undefined4 *)PTR_stderr_00301d28;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stderr_00301d28" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_00301d28" * (cast_expression "(undefined4 *)PTR_stderr_00301d28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_003097c0 = &PTR_FUN_002ff09c;" (assignment_expression "DAT_003097c0 = &PTR_FUN_002ff09c" identifier = (pointer_expression "&PTR_FUN_002ff09c" & identifier)) ;) (expression_statement "DAT_00309824 = 0xffffffff;" (assignment_expression "DAT_00309824 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003097c4 = 0;" (assignment_expression "DAT_003097c4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097c8 = 0;" (assignment_expression "DAT_003097c8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097cc = 0;" (assignment_expression "DAT_003097cc = 0" identifier = number_literal) ;) (expression_statement "DAT_003097d0 = 0;" (assignment_expression "DAT_003097d0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097d4 = 0;" (assignment_expression "DAT_003097d4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097d8 = 0;" (assignment_expression "DAT_003097d8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309820 = uVar2;" (assignment_expression "DAT_00309820 = uVar2" identifier = identifier) ;) (expression_statement "FUN_001d1a60(&DAT_003097dc);" (call_expression "FUN_001d1a60(&DAT_003097dc)" identifier (argument_list "(&DAT_003097dc)" ( (pointer_expression "&DAT_003097dc" & identifier) ))) ;) (expression_statement "DAT_003097c0 = &PTR_FUN_002ffc40;" (assignment_expression "DAT_003097c0 = &PTR_FUN_002ffc40" identifier = (pointer_expression "&PTR_FUN_002ffc40" & identifier)) ;) (expression_statement "DAT_003097e4 = 0xffffffff;" (assignment_expression "DAT_003097e4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003097e0 = uVar1;" (assignment_expression "DAT_003097e0 = uVar1" identifier = identifier) ;) (expression_statement "FUN_001c5690(&DAT_00309c44);" (call_expression "FUN_001c5690(&DAT_00309c44)" identifier (argument_list "(&DAT_00309c44)" ( (pointer_expression "&DAT_00309c44" & identifier) ))) ;) (expression_statement "DAT_00309cb4 = 0;" (assignment_expression "DAT_00309cb4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c40 = &PTR_FUN_002ff158;" (assignment_expression "DAT_00309c40 = &PTR_FUN_002ff158" identifier = (pointer_expression "&PTR_FUN_002ff158" & identifier)) ;) (expression_statement "DAT_00309cb8 = 0;" (assignment_expression "DAT_00309cb8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cbc = 0;" (assignment_expression "DAT_00309cbc = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cc0 = 0;" (assignment_expression "DAT_00309cc0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cc4 = 0;" (assignment_expression "DAT_00309cc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cc8 = 0;" (assignment_expression "DAT_00309cc8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c44 = &PTR_FUN_002ff16c;" (assignment_expression "DAT_00309c44 = &PTR_FUN_002ff16c" identifier = (pointer_expression "&PTR_FUN_002ff16c" & identifier)) ;) comment (expression_statement "FUN_001aae40(&DAT_00309c44,&DAT_00309840);" (call_expression "FUN_001aae40(&DAT_00309c44,&DAT_00309840)" identifier (argument_list "(&DAT_00309c44,&DAT_00309840)" ( (pointer_expression "&DAT_00309c44" & identifier) , (pointer_expression "&DAT_00309840" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309ce8);" (call_expression "FUN_001c5690(&DAT_00309ce8)" identifier (argument_list "(&DAT_00309ce8)" ( (pointer_expression "&DAT_00309ce8" & identifier) ))) ;) (expression_statement "DAT_00309d58 = (undefined4 *)0x0;" (assignment_expression "DAT_00309d58 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00309d5c = 0;" (assignment_expression "DAT_00309d5c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309d60 = 0;" (assignment_expression "DAT_00309d60 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309d64 = 0;" (assignment_expression "DAT_00309d64 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309d68 = 0;" (assignment_expression "DAT_00309d68 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309d6c = 0;" (assignment_expression "DAT_00309d6c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ce0 = &PTR_FUN_002ff744;" (assignment_expression "DAT_00309ce0 = &PTR_FUN_002ff744" identifier = (pointer_expression "&PTR_FUN_002ff744" & identifier)) ;) (expression_statement "DAT_00309ce8 = &PTR_FUN_002ff758;" (assignment_expression "DAT_00309ce8 = &PTR_FUN_002ff758" identifier = (pointer_expression "&PTR_FUN_002ff758" & identifier)) ;) (expression_statement "DAT_00309ce4 = 0;" (assignment_expression "DAT_00309ce4 = 0" identifier = number_literal) ;) comment (expression_statement "FUN_001aae40(&DAT_00309ce8,&DAT_00309800);" (call_expression "FUN_001aae40(&DAT_00309ce8,&DAT_00309800)" identifier (argument_list "(&DAT_00309ce8,&DAT_00309800)" ( (pointer_expression "&DAT_00309ce8" & identifier) , (pointer_expression "&DAT_00309800" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309ba4);" (call_expression "FUN_001c5690(&DAT_00309ba4)" identifier (argument_list "(&DAT_00309ba4)" ( (pointer_expression "&DAT_00309ba4" & identifier) ))) ;) (expression_statement "DAT_00309c14 = (undefined4 *)0x0;" (assignment_expression "DAT_00309c14 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00309c18 = 0;" (assignment_expression "DAT_00309c18 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c1c = 0;" (assignment_expression "DAT_00309c1c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ba0 = &PTR_FUN_002ff158;" (assignment_expression "DAT_00309ba0 = &PTR_FUN_002ff158" identifier = (pointer_expression "&PTR_FUN_002ff158" & identifier)) ;) (expression_statement "DAT_00309c20 = 0;" (assignment_expression "DAT_00309c20 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c24 = 0;" (assignment_expression "DAT_00309c24 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c28 = 0;" (assignment_expression "DAT_00309c28 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ba4 = &PTR_FUN_002ff16c;" (assignment_expression "DAT_00309ba4 = &PTR_FUN_002ff16c" identifier = (pointer_expression "&PTR_FUN_002ff16c" & identifier)) ;) comment (expression_statement "FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);" (call_expression "FUN_001aae40(&DAT_00309ba4,&DAT_003097c0)" identifier (argument_list "(&DAT_00309ba4,&DAT_003097c0)" ( (pointer_expression "&DAT_00309ba4" & identifier) , (pointer_expression "&DAT_003097c0" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309b04);" (call_expression "FUN_001c5690(&DAT_00309b04)" identifier (argument_list "(&DAT_00309b04)" ( (pointer_expression "&DAT_00309b04" & identifier) ))) ;) (expression_statement "DAT_00309b78 = 0;" (assignment_expression "DAT_00309b78 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b00 = &PTR_FUN_002ff158;" (assignment_expression "DAT_00309b00 = &PTR_FUN_002ff158" identifier = (pointer_expression "&PTR_FUN_002ff158" & identifier)) ;) (expression_statement "DAT_00309b74 = 0;" (assignment_expression "DAT_00309b74 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b7c = 0;" (assignment_expression "DAT_00309b7c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b80 = 0;" (assignment_expression "DAT_00309b80 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b84 = 0;" (assignment_expression "DAT_00309b84 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b88 = 0;" (assignment_expression "DAT_00309b88 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b04 = &PTR_FUN_002ff16c;" (assignment_expression "DAT_00309b04 = &PTR_FUN_002ff16c" identifier = (pointer_expression "&PTR_FUN_002ff16c" & identifier)) ;) comment (expression_statement "FUN_001aae40(&DAT_00309b04,&DAT_003097c0);" (call_expression "FUN_001aae40(&DAT_00309b04,&DAT_003097c0)" identifier (argument_list "(&DAT_00309b04,&DAT_003097c0)" ( (pointer_expression "&DAT_00309b04" & identifier) , (pointer_expression "&DAT_003097c0" & identifier) ))) ;) (expression_statement "DAT_003095a4 = 0;" (assignment_expression "DAT_003095a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309bb0 = DAT_00309bb0 | 0x2000;" (assignment_expression "DAT_00309bb0 = DAT_00309bb0 | 0x2000" identifier = (binary_expression "DAT_00309bb0 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00309d58 = &DAT_00309c40;" (assignment_expression "DAT_00309d58 = &DAT_00309c40" identifier = (pointer_expression "&DAT_00309c40" & identifier)) ;) (expression_statement "DAT_00309c14 = &DAT_00309c40;" (assignment_expression "DAT_00309c14 = &DAT_00309c40" identifier = (pointer_expression "&DAT_00309c40" & identifier)) ;) (expression_statement "DAT_003095a8 = 0;" (assignment_expression "DAT_003095a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095ac = 0;" (assignment_expression "DAT_003095ac = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)puVar5;" (assignment_expression "uVar1 = *(undefined4 *)puVar5" identifier = (pointer_expression "*(undefined4 *)puVar5" * (cast_expression "(undefined4 *)puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_003095b0 = 0;" (assignment_expression "DAT_003095b0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095a0 = &PTR_FUN_002ff0dc;" (assignment_expression "DAT_003095a0 = &PTR_FUN_002ff0dc" identifier = (pointer_expression "&PTR_FUN_002ff0dc" & identifier)) ;) (expression_statement "DAT_003095b4 = 0;" (assignment_expression "DAT_003095b4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095b8 = 0;" (assignment_expression "DAT_003095b8 = 0" identifier = number_literal) ;) (expression_statement "FUN_001d1a60(&DAT_003095bc);" (call_expression "FUN_001d1a60(&DAT_003095bc)" identifier (argument_list "(&DAT_003095bc)" ( (pointer_expression "&DAT_003095bc" & identifier) ))) ;) (expression_statement "DAT_003095c4 = 0xffffffff;" (assignment_expression "DAT_003095c4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00309564 = 0;" (assignment_expression "DAT_00309564 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095a0 = &PTR_FUN_002ffc80;" (assignment_expression "DAT_003095a0 = &PTR_FUN_002ffc80" identifier = (pointer_expression "&PTR_FUN_002ffc80" & identifier)) ;) (expression_statement "DAT_00309568 = 0;" (assignment_expression "DAT_00309568 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)puVar4;" (assignment_expression "uVar2 = *(undefined4 *)puVar4" identifier = (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_0030956c = 0;" (assignment_expression "DAT_0030956c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309560 = &PTR_FUN_002ff0dc;" (assignment_expression "DAT_00309560 = &PTR_FUN_002ff0dc" identifier = (pointer_expression "&PTR_FUN_002ff0dc" & identifier)) ;) (expression_statement "DAT_00309570 = 0;" (assignment_expression "DAT_00309570 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309574 = 0;" (assignment_expression "DAT_00309574 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309578 = 0;" (assignment_expression "DAT_00309578 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095c0 = uVar1;" (assignment_expression "DAT_003095c0 = uVar1" identifier = identifier) ;) (expression_statement "FUN_001d1a60(&DAT_0030957c);" (call_expression "FUN_001d1a60(&DAT_0030957c)" identifier (argument_list "(&DAT_0030957c)" ( (pointer_expression "&DAT_0030957c" & identifier) ))) ;) (expression_statement "DAT_00309560 = &PTR_FUN_002ffc80;" (assignment_expression "DAT_00309560 = &PTR_FUN_002ffc80" identifier = (pointer_expression "&PTR_FUN_002ffc80" & identifier)) ;) (expression_statement "uVar1 = *(undefined4 *)puVar3;" (assignment_expression "uVar1 = *(undefined4 *)puVar3" identifier = (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_00309584 = 0xffffffff;" (assignment_expression "DAT_00309584 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00309520 = &PTR_FUN_002ff0dc;" (assignment_expression "DAT_00309520 = &PTR_FUN_002ff0dc" identifier = (pointer_expression "&PTR_FUN_002ff0dc" & identifier)) ;) (expression_statement "DAT_00309524 = 0;" (assignment_expression "DAT_00309524 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309528 = 0;" (assignment_expression "DAT_00309528 = 0" identifier = number_literal) ;) (expression_statement "DAT_0030952c = 0;" (assignment_expression "DAT_0030952c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309530 = 0;" (assignment_expression "DAT_00309530 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309534 = 0;" (assignment_expression "DAT_00309534 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309538 = 0;" (assignment_expression "DAT_00309538 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309580 = uVar2;" (assignment_expression "DAT_00309580 = uVar2" identifier = identifier) ;) (expression_statement "FUN_001d1a60(&DAT_0030953c);" (call_expression "FUN_001d1a60(&DAT_0030953c)" identifier (argument_list "(&DAT_0030953c)" ( (pointer_expression "&DAT_0030953c" & identifier) ))) ;) (expression_statement "DAT_00309520 = &PTR_FUN_002ffc80;" (assignment_expression "DAT_00309520 = &PTR_FUN_002ffc80" identifier = (pointer_expression "&PTR_FUN_002ffc80" & identifier)) ;) (expression_statement "DAT_00309544 = 0xffffffff;" (assignment_expression "DAT_00309544 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00309540 = uVar1;" (assignment_expression "DAT_00309540 = uVar1" identifier = identifier) ;) (expression_statement "FUN_001c5690(&DAT_003099c4);" (call_expression "FUN_001c5690(&DAT_003099c4)" identifier (argument_list "(&DAT_003099c4)" ( (pointer_expression "&DAT_003099c4" & identifier) ))) ;) (expression_statement "DAT_00309a34 = 0;" (assignment_expression "DAT_00309a34 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099c0 = &PTR_FUN_002ff188;" (assignment_expression "DAT_003099c0 = &PTR_FUN_002ff188" identifier = (pointer_expression "&PTR_FUN_002ff188" & identifier)) ;) (expression_statement "DAT_00309a38 = 0;" (assignment_expression "DAT_00309a38 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a3c = 0;" (assignment_expression "DAT_00309a3c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a40 = 0;" (assignment_expression "DAT_00309a40 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a44 = 0;" (assignment_expression "DAT_00309a44 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a48 = 0;" (assignment_expression "DAT_00309a48 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a4c = 0;" (assignment_expression "DAT_00309a4c = 0" identifier = number_literal) ;) (expression_statement "DAT_003099c4 = &PTR_FUN_002ff19c;" (assignment_expression "DAT_003099c4 = &PTR_FUN_002ff19c" identifier = (pointer_expression "&PTR_FUN_002ff19c" & identifier)) ;) comment (expression_statement "FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);" (call_expression "FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0)" identifier (argument_list "(&DAT_003099c4,&DAT_003095a0)" ( (pointer_expression "&DAT_003099c4" & identifier) , (pointer_expression "&DAT_003095a0" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309a68);" (call_expression "FUN_001c5690(&DAT_00309a68)" identifier (argument_list "(&DAT_00309a68)" ( (pointer_expression "&DAT_00309a68" & identifier) ))) ;) (expression_statement "DAT_00309ad8 = (undefined4 *)0x0;" (assignment_expression "DAT_00309ad8 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00309adc = 0;" (assignment_expression "DAT_00309adc = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ae0 = 0;" (assignment_expression "DAT_00309ae0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ae4 = 0;" (assignment_expression "DAT_00309ae4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ae8 = 0;" (assignment_expression "DAT_00309ae8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309aec = 0;" (assignment_expression "DAT_00309aec = 0" identifier = number_literal) ;) (expression_statement "DAT_00309af0 = 0;" (assignment_expression "DAT_00309af0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a60 = &PTR_FUN_002ff774;" (assignment_expression "DAT_00309a60 = &PTR_FUN_002ff774" identifier = (pointer_expression "&PTR_FUN_002ff774" & identifier)) ;) (expression_statement "DAT_00309a68 = &PTR_FUN_002ff788;" (assignment_expression "DAT_00309a68 = &PTR_FUN_002ff788" identifier = (pointer_expression "&PTR_FUN_002ff788" & identifier)) ;) (expression_statement "DAT_00309a64 = 0;" (assignment_expression "DAT_00309a64 = 0" identifier = number_literal) ;) comment (expression_statement "FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);" (call_expression "FUN_001ab7c0(&DAT_00309a68,&DAT_00309560)" identifier (argument_list "(&DAT_00309a68,&DAT_00309560)" ( (pointer_expression "&DAT_00309a68" & identifier) , (pointer_expression "&DAT_00309560" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309924);" (call_expression "FUN_001c5690(&DAT_00309924)" identifier (argument_list "(&DAT_00309924)" ( (pointer_expression "&DAT_00309924" & identifier) ))) ;) (expression_statement "DAT_0030999c = 0;" (assignment_expression "DAT_0030999c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309994 = (undefined4 *)0x0;" (assignment_expression "DAT_00309994 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00309920 = &PTR_FUN_002ff188;" (assignment_expression "DAT_00309920 = &PTR_FUN_002ff188" identifier = (pointer_expression "&PTR_FUN_002ff188" & identifier)) ;) (expression_statement "DAT_00309998 = 0;" (assignment_expression "DAT_00309998 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099a0 = 0;" (assignment_expression "DAT_003099a0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099a4 = 0;" (assignment_expression "DAT_003099a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099a8 = 0;" (assignment_expression "DAT_003099a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099ac = 0;" (assignment_expression "DAT_003099ac = 0" identifier = number_literal) ;) (expression_statement "DAT_00309924 = &PTR_FUN_002ff19c;" (assignment_expression "DAT_00309924 = &PTR_FUN_002ff19c" identifier = (pointer_expression "&PTR_FUN_002ff19c" & identifier)) ;) comment (expression_statement "FUN_001ab7c0(&DAT_00309924,&DAT_00309520);" (call_expression "FUN_001ab7c0(&DAT_00309924,&DAT_00309520)" identifier (argument_list "(&DAT_00309924,&DAT_00309520)" ( (pointer_expression "&DAT_00309924" & identifier) , (pointer_expression "&DAT_00309520" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309884);" (call_expression "FUN_001c5690(&DAT_00309884)" identifier (argument_list "(&DAT_00309884)" ( (pointer_expression "&DAT_00309884" & identifier) ))) ;) (expression_statement "DAT_003098f4 = 0;" (assignment_expression "DAT_003098f4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309880 = &PTR_FUN_002ff188;" (assignment_expression "DAT_00309880 = &PTR_FUN_002ff188" identifier = (pointer_expression "&PTR_FUN_002ff188" & identifier)) ;) (expression_statement "DAT_003098f8 = 0;" (assignment_expression "DAT_003098f8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003098fc = 0;" (assignment_expression "DAT_003098fc = 0" identifier = number_literal) ;) (expression_statement "DAT_00309900 = 0;" (assignment_expression "DAT_00309900 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309904 = 0;" (assignment_expression "DAT_00309904 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309908 = 0;" (assignment_expression "DAT_00309908 = 0" identifier = number_literal) ;) (expression_statement "DAT_0030990c = 0;" (assignment_expression "DAT_0030990c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309884 = &PTR_FUN_002ff19c;" (assignment_expression "DAT_00309884 = &PTR_FUN_002ff19c" identifier = (pointer_expression "&PTR_FUN_002ff19c" & identifier)) ;) comment (expression_statement "FUN_001ab7c0(&DAT_00309884,&DAT_00309520);" (call_expression "FUN_001ab7c0(&DAT_00309884,&DAT_00309520)" identifier (argument_list "(&DAT_00309884,&DAT_00309520)" ( (pointer_expression "&DAT_00309884" & identifier) , (pointer_expression "&DAT_00309520" & identifier) ))) ;) (expression_statement "DAT_00309930 = DAT_00309930 | 0x2000;" (assignment_expression "DAT_00309930 = DAT_00309930 | 0x2000" identifier = (binary_expression "DAT_00309930 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00309ad8 = &DAT_003099c0;" (assignment_expression "DAT_00309ad8 = &DAT_003099c0" identifier = (pointer_expression "&DAT_003099c0" & identifier)) ;) (expression_statement "DAT_00309994 = &DAT_003099c0;" (assignment_expression "DAT_00309994 = &DAT_003099c0" identifier = (pointer_expression "&DAT_003099c0" & identifier)) ;) (if_statement "if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }" if (parenthesized_expression "(puVar6 != (undefined *)0x0)" ( (binary_expression "puVar6 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00309e1c = DAT_00309e1c + 1;" (assignment_expression "DAT_00309e1c = DAT_00309e1c + 1" identifier = (binary_expression "DAT_00309e1c + 1" identifier + number_literal)) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "DAT_00309e1c = DAT_00309e1c + 1;" (assignment_expression "DAT_00309e1c = DAT_00309e1c + 1" identifier = (binary_expression "DAT_00309e1c + 1" identifier + number_literal)) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* std::ios_base::Init::Init() */\n\nvoid __thiscall std::ios_base::Init::Init(Init *this)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = _S_refcount;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _S_refcount = _S_refcount + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    _S_synced_with_stdio = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    __gnu_internal::buf_cout_sync = &PTR__streambuf_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    locale::locale((locale *)&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    _DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    __gnu_internal::buf_cin_sync = &PTR__streambuf_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    locale::locale((locale *)&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    __gnu_internal::buf_cerr_sync = &PTR__streambuf_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    locale::locale((locale *)&DAT_003097dc);\n    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    ios_base((ios_base *)&DAT_00309c44);\n    _DAT_00309cb4 = 0;\n    cout = 0x2ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = 0x2ff16c;\n                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */\n    ios::init((ios *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync);\n    ios_base((ios_base *)&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    _DAT_00309d5c = 0;\n    _DAT_00309d60 = 0;\n    _DAT_00309d64 = 0;\n    _DAT_00309d68 = 0;\n    _DAT_00309d6c = 0;\n    cin = 0x2ff744;\n    DAT_00309ce8 = 0x2ff758;\n    DAT_00309ce4 = 0;\n                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */\n    ios::init((ios *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync);\n    ios_base((ios_base *)&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    _DAT_00309c18 = 0;\n    _DAT_00309c1c = 0;\n    cerr = 0x2ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = 0x2ff16c;\n                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */\n    ios::init((ios *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    ios_base((ios_base *)&DAT_00309b04);\n    _DAT_00309b78 = 0;\n    clog = 0x2ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = 0x2ff16c;\n                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */\n    ios::init((ios *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    _DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &cout;\n    DAT_00309c14 = &cout;\n    _DAT_003095a8 = 0;\n    _DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    _DAT_003095b0 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    locale::locale((locale *)&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    _DAT_00309564 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    _DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    _DAT_0030956c = 0;\n    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    locale::locale((locale *)&DAT_0030957c);\n    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    locale::locale((locale *)&DAT_0030953c);\n    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    ios_base((ios_base *)&DAT_003099c4);\n    _DAT_00309a34 = 0;\n    wcout = 0x2ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = 0x2ff19c;\n                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */\n    wios::init((wios *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);\n    ios_base((ios_base *)&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    _DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    _DAT_00309ae4 = 0;\n    _DAT_00309ae8 = 0;\n    _DAT_00309aec = 0;\n    _DAT_00309af0 = 0;\n    wcin = 0x2ff774;\n    DAT_00309a68 = 0x2ff788;\n    DAT_00309a64 = 0;\n                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */\n    wios::init((wios *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);\n    ios_base((ios_base *)&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    wcerr = 0x2ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = 0x2ff19c;\n                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */\n    wios::init((wios *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    ios_base((ios_base *)&DAT_00309884);\n    _DAT_003098f4 = 0;\n    wclog = 0x2ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = 0x2ff19c;\n                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */\n    wios::init((wios *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &wcout;\n    DAT_00309994 = &wcout;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      _S_refcount = _S_refcount + 1;\n      UNLOCK();\n      return;\n    }\n    _S_refcount = _S_refcount + 1;\n    return;\n  }\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall std::ios_base::Init::Init(Init *this)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = _S_refcount;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _S_refcount = _S_refcount + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    _S_synced_with_stdio = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    __gnu_internal::buf_cout_sync = &PTR__streambuf_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    locale::locale((locale *)&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    _DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    __gnu_internal::buf_cin_sync = &PTR__streambuf_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    locale::locale((locale *)&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    __gnu_internal::buf_cerr_sync = &PTR__streambuf_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    locale::locale((locale *)&DAT_003097dc);\n    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    ios_base((ios_base *)&DAT_00309c44);\n    _DAT_00309cb4 = 0;\n    cout = 0x2ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = 0x2ff16c;\n                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */\n    ios::init((ios *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync);\n    ios_base((ios_base *)&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    _DAT_00309d5c = 0;\n    _DAT_00309d60 = 0;\n    _DAT_00309d64 = 0;\n    _DAT_00309d68 = 0;\n    _DAT_00309d6c = 0;\n    cin = 0x2ff744;\n    DAT_00309ce8 = 0x2ff758;\n    DAT_00309ce4 = 0;\n                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */\n    ios::init((ios *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync);\n    ios_base((ios_base *)&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    _DAT_00309c18 = 0;\n    _DAT_00309c1c = 0;\n    cerr = 0x2ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = 0x2ff16c;\n                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */\n    ios::init((ios *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    ios_base((ios_base *)&DAT_00309b04);\n    _DAT_00309b78 = 0;\n    clog = 0x2ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = 0x2ff16c;\n                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */\n    ios::init((ios *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    _DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &cout;\n    DAT_00309c14 = &cout;\n    _DAT_003095a8 = 0;\n    _DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    _DAT_003095b0 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    locale::locale((locale *)&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    _DAT_00309564 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    _DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    _DAT_0030956c = 0;\n    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    locale::locale((locale *)&DAT_0030957c);\n    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    locale::locale((locale *)&DAT_0030953c);\n    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    ios_base((ios_base *)&DAT_003099c4);\n    _DAT_00309a34 = 0;\n    wcout = 0x2ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = 0x2ff19c;\n                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */\n    wios::init((wios *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);\n    ios_base((ios_base *)&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    _DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    _DAT_00309ae4 = 0;\n    _DAT_00309ae8 = 0;\n    _DAT_00309aec = 0;\n    _DAT_00309af0 = 0;\n    wcin = 0x2ff774;\n    DAT_00309a68 = 0x2ff788;\n    DAT_00309a64 = 0;\n                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */\n    wios::init((wios *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);\n    ios_base((ios_base *)&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    wcerr = 0x2ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = 0x2ff19c;\n                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */\n    wios::init((wios *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    ios_base((ios_base *)&DAT_00309884);\n    _DAT_003098f4 = 0;\n    wclog = 0x2ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = 0x2ff19c;\n                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */\n    wios::init((wios *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &wcout;\n    DAT_00309994 = &wcout;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      _S_refcount = _S_refcount + 1;\n      UNLOCK();\n      return;\n    }\n    _S_refcount = _S_refcount + 1;\n    return;\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::ios_base::Init::" identifier : : identifier : : identifier : :) (function_declarator "Init(Init *this)" identifier (parameter_list "(Init *this)" ( (parameter_declaration "Init *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = _S_refcount;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _S_refcount = _S_refcount + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    _S_synced_with_stdio = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    __gnu_internal::buf_cout_sync = &PTR__streambuf_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    locale::locale((locale *)&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    _DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    __gnu_internal::buf_cin_sync = &PTR__streambuf_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    locale::locale((locale *)&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    __gnu_internal::buf_cerr_sync = &PTR__streambuf_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    locale::locale((locale *)&DAT_003097dc);\n    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    ios_base((ios_base *)&DAT_00309c44);\n    _DAT_00309cb4 = 0;\n    cout = 0x2ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = 0x2ff16c;\n                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */\n    ios::init((ios *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync);\n    ios_base((ios_base *)&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    _DAT_00309d5c = 0;\n    _DAT_00309d60 = 0;\n    _DAT_00309d64 = 0;\n    _DAT_00309d68 = 0;\n    _DAT_00309d6c = 0;\n    cin = 0x2ff744;\n    DAT_00309ce8 = 0x2ff758;\n    DAT_00309ce4 = 0;\n                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */\n    ios::init((ios *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync);\n    ios_base((ios_base *)&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    _DAT_00309c18 = 0;\n    _DAT_00309c1c = 0;\n    cerr = 0x2ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = 0x2ff16c;\n                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */\n    ios::init((ios *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    ios_base((ios_base *)&DAT_00309b04);\n    _DAT_00309b78 = 0;\n    clog = 0x2ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = 0x2ff16c;\n                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */\n    ios::init((ios *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    _DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &cout;\n    DAT_00309c14 = &cout;\n    _DAT_003095a8 = 0;\n    _DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    _DAT_003095b0 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    locale::locale((locale *)&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    _DAT_00309564 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    _DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    _DAT_0030956c = 0;\n    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    locale::locale((locale *)&DAT_0030957c);\n    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    locale::locale((locale *)&DAT_0030953c);\n    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    ios_base((ios_base *)&DAT_003099c4);\n    _DAT_00309a34 = 0;\n    wcout = 0x2ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = 0x2ff19c;\n                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */\n    wios::init((wios *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);\n    ios_base((ios_base *)&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    _DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    _DAT_00309ae4 = 0;\n    _DAT_00309ae8 = 0;\n    _DAT_00309aec = 0;\n    _DAT_00309af0 = 0;\n    wcin = 0x2ff774;\n    DAT_00309a68 = 0x2ff788;\n    DAT_00309a64 = 0;\n                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */\n    wios::init((wios *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);\n    ios_base((ios_base *)&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    wcerr = 0x2ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = 0x2ff19c;\n                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */\n    wios::init((wios *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    ios_base((ios_base *)&DAT_00309884);\n    _DAT_003098f4 = 0;\n    wclog = 0x2ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = 0x2ff19c;\n                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */\n    wios::init((wios *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &wcout;\n    DAT_00309994 = &wcout;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      _S_refcount = _S_refcount + 1;\n      UNLOCK();\n      return;\n    }\n    _S_refcount = _S_refcount + 1;\n    return;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (expression_statement "iVar7 = _S_refcount;" (assignment_expression "iVar7 = _S_refcount" identifier = identifier) ;) (expression_statement "puVar6 = PTR___pthread_key_create_00301f24;" (assignment_expression "puVar6 = PTR___pthread_key_create_00301f24" identifier = identifier) ;) (expression_statement "puVar5 = PTR_stdout_00301ea0;" (assignment_expression "puVar5 = PTR_stdout_00301ea0" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_00301f24 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_00301f24 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "_S_refcount = _S_refcount + 1;" (assignment_expression "_S_refcount = _S_refcount + 1" identifier = (binary_expression "_S_refcount + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    _S_synced_with_stdio = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    __gnu_internal::buf_cout_sync = &PTR__streambuf_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    locale::locale((locale *)&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    _DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    __gnu_internal::buf_cin_sync = &PTR__streambuf_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    locale::locale((locale *)&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    __gnu_internal::buf_cerr_sync = &PTR__streambuf_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    locale::locale((locale *)&DAT_003097dc);\n    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    ios_base((ios_base *)&DAT_00309c44);\n    _DAT_00309cb4 = 0;\n    cout = 0x2ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = 0x2ff16c;\n                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */\n    ios::init((ios *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync);\n    ios_base((ios_base *)&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    _DAT_00309d5c = 0;\n    _DAT_00309d60 = 0;\n    _DAT_00309d64 = 0;\n    _DAT_00309d68 = 0;\n    _DAT_00309d6c = 0;\n    cin = 0x2ff744;\n    DAT_00309ce8 = 0x2ff758;\n    DAT_00309ce4 = 0;\n                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */\n    ios::init((ios *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync);\n    ios_base((ios_base *)&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    _DAT_00309c18 = 0;\n    _DAT_00309c1c = 0;\n    cerr = 0x2ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = 0x2ff16c;\n                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */\n    ios::init((ios *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    ios_base((ios_base *)&DAT_00309b04);\n    _DAT_00309b78 = 0;\n    clog = 0x2ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = 0x2ff16c;\n                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */\n    ios::init((ios *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    _DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &cout;\n    DAT_00309c14 = &cout;\n    _DAT_003095a8 = 0;\n    _DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    _DAT_003095b0 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    locale::locale((locale *)&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    _DAT_00309564 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    _DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    _DAT_0030956c = 0;\n    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    locale::locale((locale *)&DAT_0030957c);\n    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    locale::locale((locale *)&DAT_0030953c);\n    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    ios_base((ios_base *)&DAT_003099c4);\n    _DAT_00309a34 = 0;\n    wcout = 0x2ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = 0x2ff19c;\n                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */\n    wios::init((wios *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);\n    ios_base((ios_base *)&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    _DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    _DAT_00309ae4 = 0;\n    _DAT_00309ae8 = 0;\n    _DAT_00309aec = 0;\n    _DAT_00309af0 = 0;\n    wcin = 0x2ff774;\n    DAT_00309a68 = 0x2ff788;\n    DAT_00309a64 = 0;\n                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */\n    wios::init((wios *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);\n    ios_base((ios_base *)&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    wcerr = 0x2ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = 0x2ff19c;\n                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */\n    wios::init((wios *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    ios_base((ios_base *)&DAT_00309884);\n    _DAT_003098f4 = 0;\n    wclog = 0x2ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = 0x2ff19c;\n                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */\n    wios::init((wios *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &wcout;\n    DAT_00309994 = &wcout;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      _S_refcount = _S_refcount + 1;\n      UNLOCK();\n      return;\n    }\n    _S_refcount = _S_refcount + 1;\n    return;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_00309844 = 0;\n    _S_synced_with_stdio = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    __gnu_internal::buf_cout_sync = &PTR__streambuf_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    locale::locale((locale *)&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    _DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    __gnu_internal::buf_cin_sync = &PTR__streambuf_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    locale::locale((locale *)&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    __gnu_internal::buf_cerr_sync = &PTR__streambuf_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    locale::locale((locale *)&DAT_003097dc);\n    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    ios_base((ios_base *)&DAT_00309c44);\n    _DAT_00309cb4 = 0;\n    cout = 0x2ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = 0x2ff16c;\n                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */\n    ios::init((ios *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync);\n    ios_base((ios_base *)&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    _DAT_00309d5c = 0;\n    _DAT_00309d60 = 0;\n    _DAT_00309d64 = 0;\n    _DAT_00309d68 = 0;\n    _DAT_00309d6c = 0;\n    cin = 0x2ff744;\n    DAT_00309ce8 = 0x2ff758;\n    DAT_00309ce4 = 0;\n                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */\n    ios::init((ios *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync);\n    ios_base((ios_base *)&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    _DAT_00309c18 = 0;\n    _DAT_00309c1c = 0;\n    cerr = 0x2ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = 0x2ff16c;\n                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */\n    ios::init((ios *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    ios_base((ios_base *)&DAT_00309b04);\n    _DAT_00309b78 = 0;\n    clog = 0x2ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = 0x2ff16c;\n                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */\n    ios::init((ios *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    _DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &cout;\n    DAT_00309c14 = &cout;\n    _DAT_003095a8 = 0;\n    _DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    _DAT_003095b0 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    locale::locale((locale *)&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    _DAT_00309564 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    _DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    _DAT_0030956c = 0;\n    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    locale::locale((locale *)&DAT_0030957c);\n    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    locale::locale((locale *)&DAT_0030953c);\n    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    ios_base((ios_base *)&DAT_003099c4);\n    _DAT_00309a34 = 0;\n    wcout = 0x2ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = 0x2ff19c;\n                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */\n    wios::init((wios *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);\n    ios_base((ios_base *)&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    _DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    _DAT_00309ae4 = 0;\n    _DAT_00309ae8 = 0;\n    _DAT_00309aec = 0;\n    _DAT_00309af0 = 0;\n    wcin = 0x2ff774;\n    DAT_00309a68 = 0x2ff788;\n    DAT_00309a64 = 0;\n                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */\n    wios::init((wios *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);\n    ios_base((ios_base *)&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    wcerr = 0x2ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = 0x2ff19c;\n                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */\n    wios::init((wios *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    ios_base((ios_base *)&DAT_00309884);\n    _DAT_003098f4 = 0;\n    wclog = 0x2ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = 0x2ff19c;\n                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */\n    wios::init((wios *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &wcout;\n    DAT_00309994 = &wcout;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      _S_refcount = _S_refcount + 1;\n      UNLOCK();\n      return;\n    }\n    _S_refcount = _S_refcount + 1;\n    return;\n  }" { (expression_statement "DAT_00309844 = 0;" (assignment_expression "DAT_00309844 = 0" identifier = number_literal) ;) (expression_statement "_S_synced_with_stdio = 1;" (assignment_expression "_S_synced_with_stdio = 1" identifier = number_literal) ;) (expression_statement "DAT_00309848 = 0;" (assignment_expression "DAT_00309848 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)PTR_stdout_00301ea0;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stdout_00301ea0" identifier = (pointer_expression "*(undefined4 *)PTR_stdout_00301ea0" * (cast_expression "(undefined4 *)PTR_stdout_00301ea0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_0030984c = 0;" (assignment_expression "DAT_0030984c = 0" identifier = number_literal) ;) (labeled_statement "__gnu_internal::buf_cout_sync = &PTR__streambuf_002ff09c;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cout_sync = &PTR__streambuf_002ff09c;" (assignment_expression "buf_cout_sync = &PTR__streambuf_002ff09c" identifier = (pointer_expression "&PTR__streambuf_002ff09c" & identifier)) ;)) (expression_statement "DAT_00309850 = 0;" (assignment_expression "DAT_00309850 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309854 = 0;" (assignment_expression "DAT_00309854 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309858 = 0;" (assignment_expression "DAT_00309858 = 0" identifier = number_literal) ;) (labeled_statement "locale::locale((locale *)&DAT_0030985c);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_0030985c);" (call_expression "locale((locale *)&DAT_0030985c)" identifier (argument_list "((locale *)&DAT_0030985c)" ( (cast_expression "(locale *)&DAT_0030985c" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0030985c" & identifier)) ))) ;)) (expression_statement "puVar4 = PTR_stdin_00301e54;" (assignment_expression "puVar4 = PTR_stdin_00301e54" identifier = identifier) ;) (expression_statement "DAT_00309864 = 0xffffffff;" (assignment_expression "DAT_00309864 = 0xffffffff" identifier = number_literal) ;) (expression_statement "_DAT_00309804 = 0;" (assignment_expression "_DAT_00309804 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)PTR_stdin_00301e54;" (assignment_expression "uVar2 = *(undefined4 *)PTR_stdin_00301e54" identifier = (pointer_expression "*(undefined4 *)PTR_stdin_00301e54" * (cast_expression "(undefined4 *)PTR_stdin_00301e54" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "__gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_002ffc40;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cout_sync = &PTR__stdio_sync_filebuf_002ffc40;" (assignment_expression "buf_cout_sync = &PTR__stdio_sync_filebuf_002ffc40" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_002ffc40" & identifier)) ;)) (labeled_statement "__gnu_internal::buf_cin_sync = &PTR__streambuf_002ff09c;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cin_sync = &PTR__streambuf_002ff09c;" (assignment_expression "buf_cin_sync = &PTR__streambuf_002ff09c" identifier = (pointer_expression "&PTR__streambuf_002ff09c" & identifier)) ;)) (expression_statement "DAT_00309808 = 0;" (assignment_expression "DAT_00309808 = 0" identifier = number_literal) ;) (expression_statement "DAT_0030980c = 0;" (assignment_expression "DAT_0030980c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309810 = 0;" (assignment_expression "DAT_00309810 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309814 = 0;" (assignment_expression "DAT_00309814 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309818 = 0;" (assignment_expression "DAT_00309818 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309860 = uVar1;" (assignment_expression "DAT_00309860 = uVar1" identifier = identifier) ;) (labeled_statement "locale::locale((locale *)&DAT_0030981c);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_0030981c);" (call_expression "locale((locale *)&DAT_0030981c)" identifier (argument_list "((locale *)&DAT_0030981c)" ( (cast_expression "(locale *)&DAT_0030981c" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0030981c" & identifier)) ))) ;)) (expression_statement "puVar3 = PTR_stderr_00301d28;" (assignment_expression "puVar3 = PTR_stderr_00301d28" identifier = identifier) ;) (labeled_statement "__gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_002ffc40;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cin_sync = &PTR__stdio_sync_filebuf_002ffc40;" (assignment_expression "buf_cin_sync = &PTR__stdio_sync_filebuf_002ffc40" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_002ffc40" & identifier)) ;)) (expression_statement "uVar1 = *(undefined4 *)PTR_stderr_00301d28;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stderr_00301d28" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_00301d28" * (cast_expression "(undefined4 *)PTR_stderr_00301d28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "__gnu_internal::buf_cerr_sync = &PTR__streambuf_002ff09c;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cerr_sync = &PTR__streambuf_002ff09c;" (assignment_expression "buf_cerr_sync = &PTR__streambuf_002ff09c" identifier = (pointer_expression "&PTR__streambuf_002ff09c" & identifier)) ;)) (expression_statement "DAT_00309824 = 0xffffffff;" (assignment_expression "DAT_00309824 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003097c4 = 0;" (assignment_expression "DAT_003097c4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097c8 = 0;" (assignment_expression "DAT_003097c8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097cc = 0;" (assignment_expression "DAT_003097cc = 0" identifier = number_literal) ;) (expression_statement "DAT_003097d0 = 0;" (assignment_expression "DAT_003097d0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097d4 = 0;" (assignment_expression "DAT_003097d4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097d8 = 0;" (assignment_expression "DAT_003097d8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309820 = uVar2;" (assignment_expression "DAT_00309820 = uVar2" identifier = identifier) ;) (labeled_statement "locale::locale((locale *)&DAT_003097dc);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_003097dc);" (call_expression "locale((locale *)&DAT_003097dc)" identifier (argument_list "((locale *)&DAT_003097dc)" ( (cast_expression "(locale *)&DAT_003097dc" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_003097dc" & identifier)) ))) ;)) (labeled_statement "__gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_002ffc40;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cerr_sync = &PTR__stdio_sync_filebuf_002ffc40;" (assignment_expression "buf_cerr_sync = &PTR__stdio_sync_filebuf_002ffc40" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_002ffc40" & identifier)) ;)) (expression_statement "DAT_003097e4 = 0xffffffff;" (assignment_expression "DAT_003097e4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003097e0 = uVar1;" (assignment_expression "DAT_003097e0 = uVar1" identifier = identifier) ;) (expression_statement "ios_base((ios_base *)&DAT_00309c44);" (call_expression "ios_base((ios_base *)&DAT_00309c44)" identifier (argument_list "((ios_base *)&DAT_00309c44)" ( (cast_expression "(ios_base *)&DAT_00309c44" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309c44" & identifier)) ))) ;) (expression_statement "_DAT_00309cb4 = 0;" (assignment_expression "_DAT_00309cb4 = 0" identifier = number_literal) ;) (expression_statement "cout = 0x2ff158;" (assignment_expression "cout = 0x2ff158" identifier = number_literal) ;) (expression_statement "DAT_00309cb8 = 0;" (assignment_expression "DAT_00309cb8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cbc = 0;" (assignment_expression "DAT_00309cbc = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cc0 = 0;" (assignment_expression "DAT_00309cc0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cc4 = 0;" (assignment_expression "DAT_00309cc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cc8 = 0;" (assignment_expression "DAT_00309cc8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c44 = 0x2ff16c;" (assignment_expression "DAT_00309c44 = 0x2ff16c" identifier = number_literal) ;) comment (labeled_statement "ios::init((ios *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((ios *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync);" (call_expression "init((ios *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync)" identifier (argument_list "((ios *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync)" ( (cast_expression "(ios *)&DAT_00309c44" ( (type_descriptor "ios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309c44" & identifier)) , (ERROR "(streambuf *)&__gnu_internal::" (cast_expression "(streambuf *)&__gnu_internal" ( (type_descriptor "streambuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__gnu_internal" & identifier)) : :) identifier ))) ;)) (expression_statement "ios_base((ios_base *)&DAT_00309ce8);" (call_expression "ios_base((ios_base *)&DAT_00309ce8)" identifier (argument_list "((ios_base *)&DAT_00309ce8)" ( (cast_expression "(ios_base *)&DAT_00309ce8" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309ce8" & identifier)) ))) ;) (expression_statement "DAT_00309d58 = (undefined4 *)0x0;" (assignment_expression "DAT_00309d58 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_DAT_00309d5c = 0;" (assignment_expression "_DAT_00309d5c = 0" identifier = number_literal) ;) (expression_statement "_DAT_00309d60 = 0;" (assignment_expression "_DAT_00309d60 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00309d64 = 0;" (assignment_expression "_DAT_00309d64 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00309d68 = 0;" (assignment_expression "_DAT_00309d68 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00309d6c = 0;" (assignment_expression "_DAT_00309d6c = 0" identifier = number_literal) ;) (expression_statement "cin = 0x2ff744;" (assignment_expression "cin = 0x2ff744" identifier = number_literal) ;) (expression_statement "DAT_00309ce8 = 0x2ff758;" (assignment_expression "DAT_00309ce8 = 0x2ff758" identifier = number_literal) ;) (expression_statement "DAT_00309ce4 = 0;" (assignment_expression "DAT_00309ce4 = 0" identifier = number_literal) ;) comment (labeled_statement "ios::init((ios *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((ios *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync);" (call_expression "init((ios *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync)" identifier (argument_list "((ios *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync)" ( (cast_expression "(ios *)&DAT_00309ce8" ( (type_descriptor "ios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309ce8" & identifier)) , (ERROR "(streambuf *)&__gnu_internal::" (cast_expression "(streambuf *)&__gnu_internal" ( (type_descriptor "streambuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__gnu_internal" & identifier)) : :) identifier ))) ;)) (expression_statement "ios_base((ios_base *)&DAT_00309ba4);" (call_expression "ios_base((ios_base *)&DAT_00309ba4)" identifier (argument_list "((ios_base *)&DAT_00309ba4)" ( (cast_expression "(ios_base *)&DAT_00309ba4" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309ba4" & identifier)) ))) ;) (expression_statement "DAT_00309c14 = (undefined4 *)0x0;" (assignment_expression "DAT_00309c14 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_DAT_00309c18 = 0;" (assignment_expression "_DAT_00309c18 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00309c1c = 0;" (assignment_expression "_DAT_00309c1c = 0" identifier = number_literal) ;) (expression_statement "cerr = 0x2ff158;" (assignment_expression "cerr = 0x2ff158" identifier = number_literal) ;) (expression_statement "DAT_00309c20 = 0;" (assignment_expression "DAT_00309c20 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c24 = 0;" (assignment_expression "DAT_00309c24 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c28 = 0;" (assignment_expression "DAT_00309c28 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ba4 = 0x2ff16c;" (assignment_expression "DAT_00309ba4 = 0x2ff16c" identifier = number_literal) ;) comment (labeled_statement "ios::init((ios *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((ios *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);" (call_expression "init((ios *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync)" identifier (argument_list "((ios *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync)" ( (cast_expression "(ios *)&DAT_00309ba4" ( (type_descriptor "ios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309ba4" & identifier)) , (ERROR "(streambuf *)&__gnu_internal::" (cast_expression "(streambuf *)&__gnu_internal" ( (type_descriptor "streambuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__gnu_internal" & identifier)) : :) identifier ))) ;)) (expression_statement "ios_base((ios_base *)&DAT_00309b04);" (call_expression "ios_base((ios_base *)&DAT_00309b04)" identifier (argument_list "((ios_base *)&DAT_00309b04)" ( (cast_expression "(ios_base *)&DAT_00309b04" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309b04" & identifier)) ))) ;) (expression_statement "_DAT_00309b78 = 0;" (assignment_expression "_DAT_00309b78 = 0" identifier = number_literal) ;) (expression_statement "clog = 0x2ff158;" (assignment_expression "clog = 0x2ff158" identifier = number_literal) ;) (expression_statement "DAT_00309b74 = 0;" (assignment_expression "DAT_00309b74 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b7c = 0;" (assignment_expression "DAT_00309b7c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b80 = 0;" (assignment_expression "DAT_00309b80 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b84 = 0;" (assignment_expression "DAT_00309b84 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b88 = 0;" (assignment_expression "DAT_00309b88 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b04 = 0x2ff16c;" (assignment_expression "DAT_00309b04 = 0x2ff16c" identifier = number_literal) ;) comment (labeled_statement "ios::init((ios *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((ios *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync);" (call_expression "init((ios *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync)" identifier (argument_list "((ios *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync)" ( (cast_expression "(ios *)&DAT_00309b04" ( (type_descriptor "ios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309b04" & identifier)) , (ERROR "(streambuf *)&__gnu_internal::" (cast_expression "(streambuf *)&__gnu_internal" ( (type_descriptor "streambuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__gnu_internal" & identifier)) : :) identifier ))) ;)) (expression_statement "_DAT_003095a4 = 0;" (assignment_expression "_DAT_003095a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309bb0 = DAT_00309bb0 | 0x2000;" (assignment_expression "DAT_00309bb0 = DAT_00309bb0 | 0x2000" identifier = (binary_expression "DAT_00309bb0 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00309d58 = &cout;" (assignment_expression "DAT_00309d58 = &cout" identifier = (pointer_expression "&cout" & identifier)) ;) (expression_statement "DAT_00309c14 = &cout;" (assignment_expression "DAT_00309c14 = &cout" identifier = (pointer_expression "&cout" & identifier)) ;) (expression_statement "_DAT_003095a8 = 0;" (assignment_expression "_DAT_003095a8 = 0" identifier = number_literal) ;) (expression_statement "_DAT_003095ac = 0;" (assignment_expression "_DAT_003095ac = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)puVar5;" (assignment_expression "uVar1 = *(undefined4 *)puVar5" identifier = (pointer_expression "*(undefined4 *)puVar5" * (cast_expression "(undefined4 *)puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "_DAT_003095b0 = 0;" (assignment_expression "_DAT_003095b0 = 0" identifier = number_literal) ;) (labeled_statement "__gnu_internal::buf_wcout_sync = &PTR__wstreambuf_002ff0dc;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcout_sync = &PTR__wstreambuf_002ff0dc;" (assignment_expression "buf_wcout_sync = &PTR__wstreambuf_002ff0dc" identifier = (pointer_expression "&PTR__wstreambuf_002ff0dc" & identifier)) ;)) (expression_statement "DAT_003095b4 = 0;" (assignment_expression "DAT_003095b4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095b8 = 0;" (assignment_expression "DAT_003095b8 = 0" identifier = number_literal) ;) (labeled_statement "locale::locale((locale *)&DAT_003095bc);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_003095bc);" (call_expression "locale((locale *)&DAT_003095bc)" identifier (argument_list "((locale *)&DAT_003095bc)" ( (cast_expression "(locale *)&DAT_003095bc" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_003095bc" & identifier)) ))) ;)) (expression_statement "DAT_003095c4 = 0xffffffff;" (assignment_expression "DAT_003095c4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "_DAT_00309564 = 0;" (assignment_expression "_DAT_00309564 = 0" identifier = number_literal) ;) (labeled_statement "__gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_002ffc80;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcout_sync = &PTR__stdio_sync_filebuf_002ffc80;" (assignment_expression "buf_wcout_sync = &PTR__stdio_sync_filebuf_002ffc80" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_002ffc80" & identifier)) ;)) (expression_statement "_DAT_00309568 = 0;" (assignment_expression "_DAT_00309568 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)puVar4;" (assignment_expression "uVar2 = *(undefined4 *)puVar4" identifier = (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "_DAT_0030956c = 0;" (assignment_expression "_DAT_0030956c = 0" identifier = number_literal) ;) (labeled_statement "__gnu_internal::buf_wcin_sync = &PTR__wstreambuf_002ff0dc;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcin_sync = &PTR__wstreambuf_002ff0dc;" (assignment_expression "buf_wcin_sync = &PTR__wstreambuf_002ff0dc" identifier = (pointer_expression "&PTR__wstreambuf_002ff0dc" & identifier)) ;)) (expression_statement "DAT_00309570 = 0;" (assignment_expression "DAT_00309570 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309574 = 0;" (assignment_expression "DAT_00309574 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309578 = 0;" (assignment_expression "DAT_00309578 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095c0 = uVar1;" (assignment_expression "DAT_003095c0 = uVar1" identifier = identifier) ;) (labeled_statement "locale::locale((locale *)&DAT_0030957c);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_0030957c);" (call_expression "locale((locale *)&DAT_0030957c)" identifier (argument_list "((locale *)&DAT_0030957c)" ( (cast_expression "(locale *)&DAT_0030957c" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0030957c" & identifier)) ))) ;)) (labeled_statement "__gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_002ffc80;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcin_sync = &PTR__stdio_sync_filebuf_002ffc80;" (assignment_expression "buf_wcin_sync = &PTR__stdio_sync_filebuf_002ffc80" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_002ffc80" & identifier)) ;)) (expression_statement "uVar1 = *(undefined4 *)puVar3;" (assignment_expression "uVar1 = *(undefined4 *)puVar3" identifier = (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_00309584 = 0xffffffff;" (assignment_expression "DAT_00309584 = 0xffffffff" identifier = number_literal) ;) (labeled_statement "__gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_002ff0dc;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcerr_sync = &PTR__wstreambuf_002ff0dc;" (assignment_expression "buf_wcerr_sync = &PTR__wstreambuf_002ff0dc" identifier = (pointer_expression "&PTR__wstreambuf_002ff0dc" & identifier)) ;)) (expression_statement "DAT_00309524 = 0;" (assignment_expression "DAT_00309524 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309528 = 0;" (assignment_expression "DAT_00309528 = 0" identifier = number_literal) ;) (expression_statement "DAT_0030952c = 0;" (assignment_expression "DAT_0030952c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309530 = 0;" (assignment_expression "DAT_00309530 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309534 = 0;" (assignment_expression "DAT_00309534 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309538 = 0;" (assignment_expression "DAT_00309538 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309580 = uVar2;" (assignment_expression "DAT_00309580 = uVar2" identifier = identifier) ;) (labeled_statement "locale::locale((locale *)&DAT_0030953c);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_0030953c);" (call_expression "locale((locale *)&DAT_0030953c)" identifier (argument_list "((locale *)&DAT_0030953c)" ( (cast_expression "(locale *)&DAT_0030953c" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0030953c" & identifier)) ))) ;)) (labeled_statement "__gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_002ffc80;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcerr_sync = &PTR__stdio_sync_filebuf_002ffc80;" (assignment_expression "buf_wcerr_sync = &PTR__stdio_sync_filebuf_002ffc80" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_002ffc80" & identifier)) ;)) (expression_statement "DAT_00309544 = 0xffffffff;" (assignment_expression "DAT_00309544 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00309540 = uVar1;" (assignment_expression "DAT_00309540 = uVar1" identifier = identifier) ;) (expression_statement "ios_base((ios_base *)&DAT_003099c4);" (call_expression "ios_base((ios_base *)&DAT_003099c4)" identifier (argument_list "((ios_base *)&DAT_003099c4)" ( (cast_expression "(ios_base *)&DAT_003099c4" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_003099c4" & identifier)) ))) ;) (expression_statement "_DAT_00309a34 = 0;" (assignment_expression "_DAT_00309a34 = 0" identifier = number_literal) ;) (expression_statement "wcout = 0x2ff188;" (assignment_expression "wcout = 0x2ff188" identifier = number_literal) ;) (expression_statement "DAT_00309a38 = 0;" (assignment_expression "DAT_00309a38 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a3c = 0;" (assignment_expression "DAT_00309a3c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a40 = 0;" (assignment_expression "DAT_00309a40 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a44 = 0;" (assignment_expression "DAT_00309a44 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a48 = 0;" (assignment_expression "DAT_00309a48 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a4c = 0;" (assignment_expression "DAT_00309a4c = 0" identifier = number_literal) ;) (expression_statement "DAT_003099c4 = 0x2ff19c;" (assignment_expression "DAT_003099c4 = 0x2ff19c" identifier = number_literal) ;) comment (labeled_statement "wios::init((wios *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((wios *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);" (call_expression "init((wios *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync)" identifier (argument_list "((wios *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync)" ( (cast_expression "(wios *)&DAT_003099c4" ( (type_descriptor "wios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_003099c4" & identifier)) , (ERROR "(wstreambuf *)&__gnu_internal::" (cast_expression "(wstreambuf *)&__gnu_internal" ( (type_descriptor "wstreambuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__gnu_internal" & identifier)) : :) identifier ))) ;)) (expression_statement "ios_base((ios_base *)&DAT_00309a68);" (call_expression "ios_base((ios_base *)&DAT_00309a68)" identifier (argument_list "((ios_base *)&DAT_00309a68)" ( (cast_expression "(ios_base *)&DAT_00309a68" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309a68" & identifier)) ))) ;) (expression_statement "DAT_00309ad8 = (undefined4 *)0x0;" (assignment_expression "DAT_00309ad8 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_DAT_00309adc = 0;" (assignment_expression "_DAT_00309adc = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ae0 = 0;" (assignment_expression "DAT_00309ae0 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00309ae4 = 0;" (assignment_expression "_DAT_00309ae4 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00309ae8 = 0;" (assignment_expression "_DAT_00309ae8 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00309aec = 0;" (assignment_expression "_DAT_00309aec = 0" identifier = number_literal) ;) (expression_statement "_DAT_00309af0 = 0;" (assignment_expression "_DAT_00309af0 = 0" identifier = number_literal) ;) (expression_statement "wcin = 0x2ff774;" (assignment_expression "wcin = 0x2ff774" identifier = number_literal) ;) (expression_statement "DAT_00309a68 = 0x2ff788;" (assignment_expression "DAT_00309a68 = 0x2ff788" identifier = number_literal) ;) (expression_statement "DAT_00309a64 = 0;" (assignment_expression "DAT_00309a64 = 0" identifier = number_literal) ;) comment (labeled_statement "wios::init((wios *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((wios *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);" (call_expression "init((wios *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync)" identifier (argument_list "((wios *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync)" ( (cast_expression "(wios *)&DAT_00309a68" ( (type_descriptor "wios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309a68" & identifier)) , (ERROR "(wstreambuf *)&__gnu_internal::" (cast_expression "(wstreambuf *)&__gnu_internal" ( (type_descriptor "wstreambuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__gnu_internal" & identifier)) : :) identifier ))) ;)) (expression_statement "ios_base((ios_base *)&DAT_00309924);" (call_expression "ios_base((ios_base *)&DAT_00309924)" identifier (argument_list "((ios_base *)&DAT_00309924)" ( (cast_expression "(ios_base *)&DAT_00309924" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309924" & identifier)) ))) ;) (expression_statement "DAT_0030999c = 0;" (assignment_expression "DAT_0030999c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309994 = (undefined4 *)0x0;" (assignment_expression "DAT_00309994 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "wcerr = 0x2ff188;" (assignment_expression "wcerr = 0x2ff188" identifier = number_literal) ;) (expression_statement "DAT_00309998 = 0;" (assignment_expression "DAT_00309998 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099a0 = 0;" (assignment_expression "DAT_003099a0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099a4 = 0;" (assignment_expression "DAT_003099a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099a8 = 0;" (assignment_expression "DAT_003099a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099ac = 0;" (assignment_expression "DAT_003099ac = 0" identifier = number_literal) ;) (expression_statement "DAT_00309924 = 0x2ff19c;" (assignment_expression "DAT_00309924 = 0x2ff19c" identifier = number_literal) ;) comment (labeled_statement "wios::init((wios *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((wios *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);" (call_expression "init((wios *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync)" identifier (argument_list "((wios *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync)" ( (cast_expression "(wios *)&DAT_00309924" ( (type_descriptor "wios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309924" & identifier)) , (ERROR "(wstreambuf *)&__gnu_internal::" (cast_expression "(wstreambuf *)&__gnu_internal" ( (type_descriptor "wstreambuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__gnu_internal" & identifier)) : :) identifier ))) ;)) (expression_statement "ios_base((ios_base *)&DAT_00309884);" (call_expression "ios_base((ios_base *)&DAT_00309884)" identifier (argument_list "((ios_base *)&DAT_00309884)" ( (cast_expression "(ios_base *)&DAT_00309884" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309884" & identifier)) ))) ;) (expression_statement "_DAT_003098f4 = 0;" (assignment_expression "_DAT_003098f4 = 0" identifier = number_literal) ;) (expression_statement "wclog = 0x2ff188;" (assignment_expression "wclog = 0x2ff188" identifier = number_literal) ;) (expression_statement "DAT_003098f8 = 0;" (assignment_expression "DAT_003098f8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003098fc = 0;" (assignment_expression "DAT_003098fc = 0" identifier = number_literal) ;) (expression_statement "DAT_00309900 = 0;" (assignment_expression "DAT_00309900 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309904 = 0;" (assignment_expression "DAT_00309904 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309908 = 0;" (assignment_expression "DAT_00309908 = 0" identifier = number_literal) ;) (expression_statement "DAT_0030990c = 0;" (assignment_expression "DAT_0030990c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309884 = 0x2ff19c;" (assignment_expression "DAT_00309884 = 0x2ff19c" identifier = number_literal) ;) comment (labeled_statement "wios::init((wios *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((wios *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);" (call_expression "init((wios *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync)" identifier (argument_list "((wios *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync)" ( (cast_expression "(wios *)&DAT_00309884" ( (type_descriptor "wios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00309884" & identifier)) , (ERROR "(wstreambuf *)&__gnu_internal::" (cast_expression "(wstreambuf *)&__gnu_internal" ( (type_descriptor "wstreambuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__gnu_internal" & identifier)) : :) identifier ))) ;)) (expression_statement "DAT_00309930 = DAT_00309930 | 0x2000;" (assignment_expression "DAT_00309930 = DAT_00309930 | 0x2000" identifier = (binary_expression "DAT_00309930 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00309ad8 = &wcout;" (assignment_expression "DAT_00309ad8 = &wcout" identifier = (pointer_expression "&wcout" & identifier)) ;) (expression_statement "DAT_00309994 = &wcout;" (assignment_expression "DAT_00309994 = &wcout" identifier = (pointer_expression "&wcout" & identifier)) ;) (if_statement "if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      _S_refcount = _S_refcount + 1;\n      UNLOCK();\n      return;\n    }" if (parenthesized_expression "(puVar6 != (undefined *)0x0)" ( (binary_expression "puVar6 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      LOCK();\n      _S_refcount = _S_refcount + 1;\n      UNLOCK();\n      return;\n    }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "_S_refcount = _S_refcount + 1;" (assignment_expression "_S_refcount = _S_refcount + 1" identifier = (binary_expression "_S_refcount + 1" identifier + number_literal)) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "_S_refcount = _S_refcount + 1;" (assignment_expression "_S_refcount = _S_refcount + 1" identifier = (binary_expression "_S_refcount + 1" identifier + number_literal)) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00183990(void)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = DAT_00309e1c;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00309e1c = DAT_00309e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    \n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    \n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00183990(void)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = DAT_00309e1c;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00309e1c = DAT_00309e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    \n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    \n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00183990(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = DAT_00309e1c;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00309e1c = DAT_00309e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    \n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    \n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (expression_statement "iVar7 = DAT_00309e1c;" (assignment_expression "iVar7 = DAT_00309e1c" identifier = identifier) ;) (expression_statement "puVar6 = PTR___pthread_key_create_00301f24;" (assignment_expression "puVar6 = PTR___pthread_key_create_00301f24" identifier = identifier) ;) (expression_statement "puVar5 = PTR_stdout_00301ea0;" (assignment_expression "puVar5 = PTR_stdout_00301ea0" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_00301f24 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_00301f24 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_00309e1c = DAT_00309e1c + 1;" (assignment_expression "DAT_00309e1c = DAT_00309e1c + 1" identifier = (binary_expression "DAT_00309e1c + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    \n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    \n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    \n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    \n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }" { (expression_statement "DAT_00309844 = 0;" (assignment_expression "DAT_00309844 = 0" identifier = number_literal) ;) (expression_statement "DAT_003023a0 = 1;" (assignment_expression "DAT_003023a0 = 1" identifier = number_literal) ;) (expression_statement "DAT_00309848 = 0;" (assignment_expression "DAT_00309848 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)PTR_stdout_00301ea0;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stdout_00301ea0" identifier = (pointer_expression "*(undefined4 *)PTR_stdout_00301ea0" * (cast_expression "(undefined4 *)PTR_stdout_00301ea0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_0030984c = 0;" (assignment_expression "DAT_0030984c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309840 = &PTR_FUN_002ff09c;" (assignment_expression "DAT_00309840 = &PTR_FUN_002ff09c" identifier = (pointer_expression "&PTR_FUN_002ff09c" & identifier)) ;) (expression_statement "DAT_00309850 = 0;" (assignment_expression "DAT_00309850 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309854 = 0;" (assignment_expression "DAT_00309854 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309858 = 0;" (assignment_expression "DAT_00309858 = 0" identifier = number_literal) ;) (expression_statement "FUN_001d1a60(&DAT_0030985c);" (call_expression "FUN_001d1a60(&DAT_0030985c)" identifier (argument_list "(&DAT_0030985c)" ( (pointer_expression "&DAT_0030985c" & identifier) ))) ;) (expression_statement "puVar4 = PTR_stdin_00301e54;" (assignment_expression "puVar4 = PTR_stdin_00301e54" identifier = identifier) ;) (expression_statement "DAT_00309864 = 0xffffffff;" (assignment_expression "DAT_00309864 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00309804 = 0;" (assignment_expression "DAT_00309804 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)PTR_stdin_00301e54;" (assignment_expression "uVar2 = *(undefined4 *)PTR_stdin_00301e54" identifier = (pointer_expression "*(undefined4 *)PTR_stdin_00301e54" * (cast_expression "(undefined4 *)PTR_stdin_00301e54" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_00309840 = &PTR_FUN_002ffc40;" (assignment_expression "DAT_00309840 = &PTR_FUN_002ffc40" identifier = (pointer_expression "&PTR_FUN_002ffc40" & identifier)) ;) (expression_statement "DAT_00309800 = &PTR_FUN_002ff09c;" (assignment_expression "DAT_00309800 = &PTR_FUN_002ff09c" identifier = (pointer_expression "&PTR_FUN_002ff09c" & identifier)) ;) (expression_statement "DAT_00309808 = 0;" (assignment_expression "DAT_00309808 = 0" identifier = number_literal) ;) (expression_statement "DAT_0030980c = 0;" (assignment_expression "DAT_0030980c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309810 = 0;" (assignment_expression "DAT_00309810 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309814 = 0;" (assignment_expression "DAT_00309814 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309818 = 0;" (assignment_expression "DAT_00309818 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309860 = uVar1;" (assignment_expression "DAT_00309860 = uVar1" identifier = identifier) ;) (expression_statement "FUN_001d1a60(&DAT_0030981c);" (call_expression "FUN_001d1a60(&DAT_0030981c)" identifier (argument_list "(&DAT_0030981c)" ( (pointer_expression "&DAT_0030981c" & identifier) ))) ;) (expression_statement "puVar3 = PTR_stderr_00301d28;" (assignment_expression "puVar3 = PTR_stderr_00301d28" identifier = identifier) ;) (expression_statement "DAT_00309800 = &PTR_FUN_002ffc40;" (assignment_expression "DAT_00309800 = &PTR_FUN_002ffc40" identifier = (pointer_expression "&PTR_FUN_002ffc40" & identifier)) ;) (expression_statement "uVar1 = *(undefined4 *)PTR_stderr_00301d28;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stderr_00301d28" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_00301d28" * (cast_expression "(undefined4 *)PTR_stderr_00301d28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_003097c0 = &PTR_FUN_002ff09c;" (assignment_expression "DAT_003097c0 = &PTR_FUN_002ff09c" identifier = (pointer_expression "&PTR_FUN_002ff09c" & identifier)) ;) (expression_statement "DAT_00309824 = 0xffffffff;" (assignment_expression "DAT_00309824 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003097c4 = 0;" (assignment_expression "DAT_003097c4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097c8 = 0;" (assignment_expression "DAT_003097c8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097cc = 0;" (assignment_expression "DAT_003097cc = 0" identifier = number_literal) ;) (expression_statement "DAT_003097d0 = 0;" (assignment_expression "DAT_003097d0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097d4 = 0;" (assignment_expression "DAT_003097d4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003097d8 = 0;" (assignment_expression "DAT_003097d8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309820 = uVar2;" (assignment_expression "DAT_00309820 = uVar2" identifier = identifier) ;) (expression_statement "FUN_001d1a60(&DAT_003097dc);" (call_expression "FUN_001d1a60(&DAT_003097dc)" identifier (argument_list "(&DAT_003097dc)" ( (pointer_expression "&DAT_003097dc" & identifier) ))) ;) (expression_statement "DAT_003097c0 = &PTR_FUN_002ffc40;" (assignment_expression "DAT_003097c0 = &PTR_FUN_002ffc40" identifier = (pointer_expression "&PTR_FUN_002ffc40" & identifier)) ;) (expression_statement "DAT_003097e4 = 0xffffffff;" (assignment_expression "DAT_003097e4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003097e0 = uVar1;" (assignment_expression "DAT_003097e0 = uVar1" identifier = identifier) ;) (expression_statement "FUN_001c5690(&DAT_00309c44);" (call_expression "FUN_001c5690(&DAT_00309c44)" identifier (argument_list "(&DAT_00309c44)" ( (pointer_expression "&DAT_00309c44" & identifier) ))) ;) (expression_statement "DAT_00309cb4 = 0;" (assignment_expression "DAT_00309cb4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c40 = &PTR_FUN_002ff158;" (assignment_expression "DAT_00309c40 = &PTR_FUN_002ff158" identifier = (pointer_expression "&PTR_FUN_002ff158" & identifier)) ;) (expression_statement "DAT_00309cb8 = 0;" (assignment_expression "DAT_00309cb8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cbc = 0;" (assignment_expression "DAT_00309cbc = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cc0 = 0;" (assignment_expression "DAT_00309cc0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cc4 = 0;" (assignment_expression "DAT_00309cc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309cc8 = 0;" (assignment_expression "DAT_00309cc8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c44 = &PTR_FUN_002ff16c;" (assignment_expression "DAT_00309c44 = &PTR_FUN_002ff16c" identifier = (pointer_expression "&PTR_FUN_002ff16c" & identifier)) ;) (expression_statement "FUN_001aae40(&DAT_00309c44,&DAT_00309840);" (call_expression "FUN_001aae40(&DAT_00309c44,&DAT_00309840)" identifier (argument_list "(&DAT_00309c44,&DAT_00309840)" ( (pointer_expression "&DAT_00309c44" & identifier) , (pointer_expression "&DAT_00309840" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309ce8);" (call_expression "FUN_001c5690(&DAT_00309ce8)" identifier (argument_list "(&DAT_00309ce8)" ( (pointer_expression "&DAT_00309ce8" & identifier) ))) ;) (expression_statement "DAT_00309d58 = (undefined4 *)0x0;" (assignment_expression "DAT_00309d58 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00309d5c = 0;" (assignment_expression "DAT_00309d5c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309d60 = 0;" (assignment_expression "DAT_00309d60 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309d64 = 0;" (assignment_expression "DAT_00309d64 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309d68 = 0;" (assignment_expression "DAT_00309d68 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309d6c = 0;" (assignment_expression "DAT_00309d6c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ce0 = &PTR_FUN_002ff744;" (assignment_expression "DAT_00309ce0 = &PTR_FUN_002ff744" identifier = (pointer_expression "&PTR_FUN_002ff744" & identifier)) ;) (expression_statement "DAT_00309ce8 = &PTR_FUN_002ff758;" (assignment_expression "DAT_00309ce8 = &PTR_FUN_002ff758" identifier = (pointer_expression "&PTR_FUN_002ff758" & identifier)) ;) (expression_statement "DAT_00309ce4 = 0;" (assignment_expression "DAT_00309ce4 = 0" identifier = number_literal) ;) (expression_statement "FUN_001aae40(&DAT_00309ce8,&DAT_00309800);" (call_expression "FUN_001aae40(&DAT_00309ce8,&DAT_00309800)" identifier (argument_list "(&DAT_00309ce8,&DAT_00309800)" ( (pointer_expression "&DAT_00309ce8" & identifier) , (pointer_expression "&DAT_00309800" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309ba4);" (call_expression "FUN_001c5690(&DAT_00309ba4)" identifier (argument_list "(&DAT_00309ba4)" ( (pointer_expression "&DAT_00309ba4" & identifier) ))) ;) (expression_statement "DAT_00309c14 = (undefined4 *)0x0;" (assignment_expression "DAT_00309c14 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00309c18 = 0;" (assignment_expression "DAT_00309c18 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c1c = 0;" (assignment_expression "DAT_00309c1c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ba0 = &PTR_FUN_002ff158;" (assignment_expression "DAT_00309ba0 = &PTR_FUN_002ff158" identifier = (pointer_expression "&PTR_FUN_002ff158" & identifier)) ;) (expression_statement "DAT_00309c20 = 0;" (assignment_expression "DAT_00309c20 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c24 = 0;" (assignment_expression "DAT_00309c24 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309c28 = 0;" (assignment_expression "DAT_00309c28 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ba4 = &PTR_FUN_002ff16c;" (assignment_expression "DAT_00309ba4 = &PTR_FUN_002ff16c" identifier = (pointer_expression "&PTR_FUN_002ff16c" & identifier)) ;) (expression_statement "FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);" (call_expression "FUN_001aae40(&DAT_00309ba4,&DAT_003097c0)" identifier (argument_list "(&DAT_00309ba4,&DAT_003097c0)" ( (pointer_expression "&DAT_00309ba4" & identifier) , (pointer_expression "&DAT_003097c0" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309b04);" (call_expression "FUN_001c5690(&DAT_00309b04)" identifier (argument_list "(&DAT_00309b04)" ( (pointer_expression "&DAT_00309b04" & identifier) ))) ;) (expression_statement "DAT_00309b78 = 0;" (assignment_expression "DAT_00309b78 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b00 = &PTR_FUN_002ff158;" (assignment_expression "DAT_00309b00 = &PTR_FUN_002ff158" identifier = (pointer_expression "&PTR_FUN_002ff158" & identifier)) ;) (expression_statement "DAT_00309b74 = 0;" (assignment_expression "DAT_00309b74 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b7c = 0;" (assignment_expression "DAT_00309b7c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b80 = 0;" (assignment_expression "DAT_00309b80 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b84 = 0;" (assignment_expression "DAT_00309b84 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b88 = 0;" (assignment_expression "DAT_00309b88 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309b04 = &PTR_FUN_002ff16c;" (assignment_expression "DAT_00309b04 = &PTR_FUN_002ff16c" identifier = (pointer_expression "&PTR_FUN_002ff16c" & identifier)) ;) (expression_statement "FUN_001aae40(&DAT_00309b04,&DAT_003097c0);" (call_expression "FUN_001aae40(&DAT_00309b04,&DAT_003097c0)" identifier (argument_list "(&DAT_00309b04,&DAT_003097c0)" ( (pointer_expression "&DAT_00309b04" & identifier) , (pointer_expression "&DAT_003097c0" & identifier) ))) ;) (expression_statement "DAT_003095a4 = 0;" (assignment_expression "DAT_003095a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309bb0 = DAT_00309bb0 | 0x2000;" (assignment_expression "DAT_00309bb0 = DAT_00309bb0 | 0x2000" identifier = (binary_expression "DAT_00309bb0 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00309d58 = &DAT_00309c40;" (assignment_expression "DAT_00309d58 = &DAT_00309c40" identifier = (pointer_expression "&DAT_00309c40" & identifier)) ;) (expression_statement "DAT_00309c14 = &DAT_00309c40;" (assignment_expression "DAT_00309c14 = &DAT_00309c40" identifier = (pointer_expression "&DAT_00309c40" & identifier)) ;) (expression_statement "DAT_003095a8 = 0;" (assignment_expression "DAT_003095a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095ac = 0;" (assignment_expression "DAT_003095ac = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)puVar5;" (assignment_expression "uVar1 = *(undefined4 *)puVar5" identifier = (pointer_expression "*(undefined4 *)puVar5" * (cast_expression "(undefined4 *)puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_003095b0 = 0;" (assignment_expression "DAT_003095b0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095a0 = &PTR_FUN_002ff0dc;" (assignment_expression "DAT_003095a0 = &PTR_FUN_002ff0dc" identifier = (pointer_expression "&PTR_FUN_002ff0dc" & identifier)) ;) (expression_statement "DAT_003095b4 = 0;" (assignment_expression "DAT_003095b4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095b8 = 0;" (assignment_expression "DAT_003095b8 = 0" identifier = number_literal) ;) (expression_statement "FUN_001d1a60(&DAT_003095bc);" (call_expression "FUN_001d1a60(&DAT_003095bc)" identifier (argument_list "(&DAT_003095bc)" ( (pointer_expression "&DAT_003095bc" & identifier) ))) ;) (expression_statement "DAT_003095c4 = 0xffffffff;" (assignment_expression "DAT_003095c4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00309564 = 0;" (assignment_expression "DAT_00309564 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095a0 = &PTR_FUN_002ffc80;" (assignment_expression "DAT_003095a0 = &PTR_FUN_002ffc80" identifier = (pointer_expression "&PTR_FUN_002ffc80" & identifier)) ;) (expression_statement "DAT_00309568 = 0;" (assignment_expression "DAT_00309568 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)puVar4;" (assignment_expression "uVar2 = *(undefined4 *)puVar4" identifier = (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_0030956c = 0;" (assignment_expression "DAT_0030956c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309560 = &PTR_FUN_002ff0dc;" (assignment_expression "DAT_00309560 = &PTR_FUN_002ff0dc" identifier = (pointer_expression "&PTR_FUN_002ff0dc" & identifier)) ;) (expression_statement "DAT_00309570 = 0;" (assignment_expression "DAT_00309570 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309574 = 0;" (assignment_expression "DAT_00309574 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309578 = 0;" (assignment_expression "DAT_00309578 = 0" identifier = number_literal) ;) (expression_statement "DAT_003095c0 = uVar1;" (assignment_expression "DAT_003095c0 = uVar1" identifier = identifier) ;) (expression_statement "FUN_001d1a60(&DAT_0030957c);" (call_expression "FUN_001d1a60(&DAT_0030957c)" identifier (argument_list "(&DAT_0030957c)" ( (pointer_expression "&DAT_0030957c" & identifier) ))) ;) (expression_statement "DAT_00309560 = &PTR_FUN_002ffc80;" (assignment_expression "DAT_00309560 = &PTR_FUN_002ffc80" identifier = (pointer_expression "&PTR_FUN_002ffc80" & identifier)) ;) (expression_statement "uVar1 = *(undefined4 *)puVar3;" (assignment_expression "uVar1 = *(undefined4 *)puVar3" identifier = (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_00309584 = 0xffffffff;" (assignment_expression "DAT_00309584 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00309520 = &PTR_FUN_002ff0dc;" (assignment_expression "DAT_00309520 = &PTR_FUN_002ff0dc" identifier = (pointer_expression "&PTR_FUN_002ff0dc" & identifier)) ;) (expression_statement "DAT_00309524 = 0;" (assignment_expression "DAT_00309524 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309528 = 0;" (assignment_expression "DAT_00309528 = 0" identifier = number_literal) ;) (expression_statement "DAT_0030952c = 0;" (assignment_expression "DAT_0030952c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309530 = 0;" (assignment_expression "DAT_00309530 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309534 = 0;" (assignment_expression "DAT_00309534 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309538 = 0;" (assignment_expression "DAT_00309538 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309580 = uVar2;" (assignment_expression "DAT_00309580 = uVar2" identifier = identifier) ;) (expression_statement "FUN_001d1a60(&DAT_0030953c);" (call_expression "FUN_001d1a60(&DAT_0030953c)" identifier (argument_list "(&DAT_0030953c)" ( (pointer_expression "&DAT_0030953c" & identifier) ))) ;) (expression_statement "DAT_00309520 = &PTR_FUN_002ffc80;" (assignment_expression "DAT_00309520 = &PTR_FUN_002ffc80" identifier = (pointer_expression "&PTR_FUN_002ffc80" & identifier)) ;) (expression_statement "DAT_00309544 = 0xffffffff;" (assignment_expression "DAT_00309544 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00309540 = uVar1;" (assignment_expression "DAT_00309540 = uVar1" identifier = identifier) ;) (expression_statement "FUN_001c5690(&DAT_003099c4);" (call_expression "FUN_001c5690(&DAT_003099c4)" identifier (argument_list "(&DAT_003099c4)" ( (pointer_expression "&DAT_003099c4" & identifier) ))) ;) (expression_statement "DAT_00309a34 = 0;" (assignment_expression "DAT_00309a34 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099c0 = &PTR_FUN_002ff188;" (assignment_expression "DAT_003099c0 = &PTR_FUN_002ff188" identifier = (pointer_expression "&PTR_FUN_002ff188" & identifier)) ;) (expression_statement "DAT_00309a38 = 0;" (assignment_expression "DAT_00309a38 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a3c = 0;" (assignment_expression "DAT_00309a3c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a40 = 0;" (assignment_expression "DAT_00309a40 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a44 = 0;" (assignment_expression "DAT_00309a44 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a48 = 0;" (assignment_expression "DAT_00309a48 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a4c = 0;" (assignment_expression "DAT_00309a4c = 0" identifier = number_literal) ;) (expression_statement "DAT_003099c4 = &PTR_FUN_002ff19c;" (assignment_expression "DAT_003099c4 = &PTR_FUN_002ff19c" identifier = (pointer_expression "&PTR_FUN_002ff19c" & identifier)) ;) (expression_statement "FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);" (call_expression "FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0)" identifier (argument_list "(&DAT_003099c4,&DAT_003095a0)" ( (pointer_expression "&DAT_003099c4" & identifier) , (pointer_expression "&DAT_003095a0" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309a68);" (call_expression "FUN_001c5690(&DAT_00309a68)" identifier (argument_list "(&DAT_00309a68)" ( (pointer_expression "&DAT_00309a68" & identifier) ))) ;) (expression_statement "DAT_00309ad8 = (undefined4 *)0x0;" (assignment_expression "DAT_00309ad8 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00309adc = 0;" (assignment_expression "DAT_00309adc = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ae0 = 0;" (assignment_expression "DAT_00309ae0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ae4 = 0;" (assignment_expression "DAT_00309ae4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309ae8 = 0;" (assignment_expression "DAT_00309ae8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309aec = 0;" (assignment_expression "DAT_00309aec = 0" identifier = number_literal) ;) (expression_statement "DAT_00309af0 = 0;" (assignment_expression "DAT_00309af0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309a60 = &PTR_FUN_002ff774;" (assignment_expression "DAT_00309a60 = &PTR_FUN_002ff774" identifier = (pointer_expression "&PTR_FUN_002ff774" & identifier)) ;) (expression_statement "DAT_00309a68 = &PTR_FUN_002ff788;" (assignment_expression "DAT_00309a68 = &PTR_FUN_002ff788" identifier = (pointer_expression "&PTR_FUN_002ff788" & identifier)) ;) (expression_statement "DAT_00309a64 = 0;" (assignment_expression "DAT_00309a64 = 0" identifier = number_literal) ;) (expression_statement "FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);" (call_expression "FUN_001ab7c0(&DAT_00309a68,&DAT_00309560)" identifier (argument_list "(&DAT_00309a68,&DAT_00309560)" ( (pointer_expression "&DAT_00309a68" & identifier) , (pointer_expression "&DAT_00309560" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309924);" (call_expression "FUN_001c5690(&DAT_00309924)" identifier (argument_list "(&DAT_00309924)" ( (pointer_expression "&DAT_00309924" & identifier) ))) ;) (expression_statement "DAT_0030999c = 0;" (assignment_expression "DAT_0030999c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309994 = (undefined4 *)0x0;" (assignment_expression "DAT_00309994 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00309920 = &PTR_FUN_002ff188;" (assignment_expression "DAT_00309920 = &PTR_FUN_002ff188" identifier = (pointer_expression "&PTR_FUN_002ff188" & identifier)) ;) (expression_statement "DAT_00309998 = 0;" (assignment_expression "DAT_00309998 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099a0 = 0;" (assignment_expression "DAT_003099a0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099a4 = 0;" (assignment_expression "DAT_003099a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099a8 = 0;" (assignment_expression "DAT_003099a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003099ac = 0;" (assignment_expression "DAT_003099ac = 0" identifier = number_literal) ;) (expression_statement "DAT_00309924 = &PTR_FUN_002ff19c;" (assignment_expression "DAT_00309924 = &PTR_FUN_002ff19c" identifier = (pointer_expression "&PTR_FUN_002ff19c" & identifier)) ;) (expression_statement "FUN_001ab7c0(&DAT_00309924,&DAT_00309520);" (call_expression "FUN_001ab7c0(&DAT_00309924,&DAT_00309520)" identifier (argument_list "(&DAT_00309924,&DAT_00309520)" ( (pointer_expression "&DAT_00309924" & identifier) , (pointer_expression "&DAT_00309520" & identifier) ))) ;) (expression_statement "FUN_001c5690(&DAT_00309884);" (call_expression "FUN_001c5690(&DAT_00309884)" identifier (argument_list "(&DAT_00309884)" ( (pointer_expression "&DAT_00309884" & identifier) ))) ;) (expression_statement "DAT_003098f4 = 0;" (assignment_expression "DAT_003098f4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309880 = &PTR_FUN_002ff188;" (assignment_expression "DAT_00309880 = &PTR_FUN_002ff188" identifier = (pointer_expression "&PTR_FUN_002ff188" & identifier)) ;) (expression_statement "DAT_003098f8 = 0;" (assignment_expression "DAT_003098f8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003098fc = 0;" (assignment_expression "DAT_003098fc = 0" identifier = number_literal) ;) (expression_statement "DAT_00309900 = 0;" (assignment_expression "DAT_00309900 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309904 = 0;" (assignment_expression "DAT_00309904 = 0" identifier = number_literal) ;) (expression_statement "DAT_00309908 = 0;" (assignment_expression "DAT_00309908 = 0" identifier = number_literal) ;) (expression_statement "DAT_0030990c = 0;" (assignment_expression "DAT_0030990c = 0" identifier = number_literal) ;) (expression_statement "DAT_00309884 = &PTR_FUN_002ff19c;" (assignment_expression "DAT_00309884 = &PTR_FUN_002ff19c" identifier = (pointer_expression "&PTR_FUN_002ff19c" & identifier)) ;) (expression_statement "FUN_001ab7c0(&DAT_00309884,&DAT_00309520);" (call_expression "FUN_001ab7c0(&DAT_00309884,&DAT_00309520)" identifier (argument_list "(&DAT_00309884,&DAT_00309520)" ( (pointer_expression "&DAT_00309884" & identifier) , (pointer_expression "&DAT_00309520" & identifier) ))) ;) (expression_statement "DAT_00309930 = DAT_00309930 | 0x2000;" (assignment_expression "DAT_00309930 = DAT_00309930 | 0x2000" identifier = (binary_expression "DAT_00309930 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00309ad8 = &DAT_003099c0;" (assignment_expression "DAT_00309ad8 = &DAT_003099c0" identifier = (pointer_expression "&DAT_003099c0" & identifier)) ;) (expression_statement "DAT_00309994 = &DAT_003099c0;" (assignment_expression "DAT_00309994 = &DAT_003099c0" identifier = (pointer_expression "&DAT_003099c0" & identifier)) ;) (if_statement "if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }" if (parenthesized_expression "(puVar6 != (undefined *)0x0)" ( (binary_expression "puVar6 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00309e1c = DAT_00309e1c + 1;" (assignment_expression "DAT_00309e1c = DAT_00309e1c + 1" identifier = (binary_expression "DAT_00309e1c + 1" identifier + number_literal)) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "DAT_00309e1c = DAT_00309e1c + 1;" (assignment_expression "DAT_00309e1c = DAT_00309e1c + 1" identifier = (binary_expression "DAT_00309e1c + 1" identifier + number_literal)) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_00183990(void)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = DAT_00309e1c;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00309e1c = DAT_00309e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    \n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    \n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00183990(void)" (identifier "FUN_00183990") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  \n  iVar7 = DAT_00309e1c;\n  puVar6 = PTR___pthread_key_create_00301f24;\n  puVar5 = PTR_stdout_00301ea0;\n  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00309e1c = DAT_00309e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    \n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    \n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (expression_statement "iVar7 = DAT_00309e1c;" (assignment_expression "iVar7 = DAT_00309e1c" (identifier "iVar7") (= "=") (identifier "DAT_00309e1c")) (; ";")) (expression_statement "puVar6 = PTR___pthread_key_create_00301f24;" (assignment_expression "puVar6 = PTR___pthread_key_create_00301f24" (identifier "puVar6") (= "=") (identifier "PTR___pthread_key_create_00301f24")) (; ";")) (expression_statement "puVar5 = PTR_stdout_00301ea0;" (assignment_expression "puVar5 = PTR_stdout_00301ea0" (identifier "puVar5") (= "=") (identifier "PTR_stdout_00301ea0")) (; ";")) (if_statement "if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(PTR___pthread_key_create_00301f24 != (undefined *)0x0)" (( "(") (binary_expression "PTR___pthread_key_create_00301f24 != (undefined *)0x0" (identifier "PTR___pthread_key_create_00301f24") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    LOCK();\n    UNLOCK();\n  }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00309e1c = DAT_00309e1c + 1;" (assignment_expression "DAT_00309e1c = DAT_00309e1c + 1" (identifier "DAT_00309e1c") (= "=") (binary_expression "DAT_00309e1c + 1" (identifier "DAT_00309e1c") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar7 == 0) {\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    \n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    \n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    DAT_00309844 = 0;\n    DAT_003023a0 = 1;\n    DAT_00309848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;\n    DAT_0030984c = 0;\n    DAT_00309840 = &PTR_FUN_002ff09c;\n    DAT_00309850 = 0;\n    DAT_00309854 = 0;\n    DAT_00309858 = 0;\n    FUN_001d1a60(&DAT_0030985c);\n    puVar4 = PTR_stdin_00301e54;\n    DAT_00309864 = 0xffffffff;\n    DAT_00309804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_00301e54;\n    DAT_00309840 = &PTR_FUN_002ffc40;\n    DAT_00309800 = &PTR_FUN_002ff09c;\n    DAT_00309808 = 0;\n    DAT_0030980c = 0;\n    DAT_00309810 = 0;\n    DAT_00309814 = 0;\n    DAT_00309818 = 0;\n    DAT_00309860 = uVar1;\n    FUN_001d1a60(&DAT_0030981c);\n    puVar3 = PTR_stderr_00301d28;\n    DAT_00309800 = &PTR_FUN_002ffc40;\n    uVar1 = *(undefined4 *)PTR_stderr_00301d28;\n    DAT_003097c0 = &PTR_FUN_002ff09c;\n    DAT_00309824 = 0xffffffff;\n    DAT_003097c4 = 0;\n    DAT_003097c8 = 0;\n    DAT_003097cc = 0;\n    DAT_003097d0 = 0;\n    DAT_003097d4 = 0;\n    DAT_003097d8 = 0;\n    DAT_00309820 = uVar2;\n    FUN_001d1a60(&DAT_003097dc);\n    DAT_003097c0 = &PTR_FUN_002ffc40;\n    DAT_003097e4 = 0xffffffff;\n    DAT_003097e0 = uVar1;\n    FUN_001c5690(&DAT_00309c44);\n    DAT_00309cb4 = 0;\n    DAT_00309c40 = &PTR_FUN_002ff158;\n    DAT_00309cb8 = 0;\n    DAT_00309cbc = 0;\n    DAT_00309cc0 = 0;\n    DAT_00309cc4 = 0;\n    DAT_00309cc8 = 0;\n    DAT_00309c44 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309c44,&DAT_00309840);\n    FUN_001c5690(&DAT_00309ce8);\n    DAT_00309d58 = (undefined4 *)0x0;\n    DAT_00309d5c = 0;\n    DAT_00309d60 = 0;\n    DAT_00309d64 = 0;\n    DAT_00309d68 = 0;\n    DAT_00309d6c = 0;\n    DAT_00309ce0 = &PTR_FUN_002ff744;\n    DAT_00309ce8 = &PTR_FUN_002ff758;\n    DAT_00309ce4 = 0;\n                    \n    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);\n    FUN_001c5690(&DAT_00309ba4);\n    DAT_00309c14 = (undefined4 *)0x0;\n    DAT_00309c18 = 0;\n    DAT_00309c1c = 0;\n    DAT_00309ba0 = &PTR_FUN_002ff158;\n    DAT_00309c20 = 0;\n    DAT_00309c24 = 0;\n    DAT_00309c28 = 0;\n    DAT_00309ba4 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);\n    FUN_001c5690(&DAT_00309b04);\n    DAT_00309b78 = 0;\n    DAT_00309b00 = &PTR_FUN_002ff158;\n    DAT_00309b74 = 0;\n    DAT_00309b7c = 0;\n    DAT_00309b80 = 0;\n    DAT_00309b84 = 0;\n    DAT_00309b88 = 0;\n    DAT_00309b04 = &PTR_FUN_002ff16c;\n                    \n    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);\n    DAT_003095a4 = 0;\n    DAT_00309bb0 = DAT_00309bb0 | 0x2000;\n    DAT_00309d58 = &DAT_00309c40;\n    DAT_00309c14 = &DAT_00309c40;\n    DAT_003095a8 = 0;\n    DAT_003095ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003095b0 = 0;\n    DAT_003095a0 = &PTR_FUN_002ff0dc;\n    DAT_003095b4 = 0;\n    DAT_003095b8 = 0;\n    FUN_001d1a60(&DAT_003095bc);\n    DAT_003095c4 = 0xffffffff;\n    DAT_00309564 = 0;\n    DAT_003095a0 = &PTR_FUN_002ffc80;\n    DAT_00309568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0030956c = 0;\n    DAT_00309560 = &PTR_FUN_002ff0dc;\n    DAT_00309570 = 0;\n    DAT_00309574 = 0;\n    DAT_00309578 = 0;\n    DAT_003095c0 = uVar1;\n    FUN_001d1a60(&DAT_0030957c);\n    DAT_00309560 = &PTR_FUN_002ffc80;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00309584 = 0xffffffff;\n    DAT_00309520 = &PTR_FUN_002ff0dc;\n    DAT_00309524 = 0;\n    DAT_00309528 = 0;\n    DAT_0030952c = 0;\n    DAT_00309530 = 0;\n    DAT_00309534 = 0;\n    DAT_00309538 = 0;\n    DAT_00309580 = uVar2;\n    FUN_001d1a60(&DAT_0030953c);\n    DAT_00309520 = &PTR_FUN_002ffc80;\n    DAT_00309544 = 0xffffffff;\n    DAT_00309540 = uVar1;\n    FUN_001c5690(&DAT_003099c4);\n    DAT_00309a34 = 0;\n    DAT_003099c0 = &PTR_FUN_002ff188;\n    DAT_00309a38 = 0;\n    DAT_00309a3c = 0;\n    DAT_00309a40 = 0;\n    DAT_00309a44 = 0;\n    DAT_00309a48 = 0;\n    DAT_00309a4c = 0;\n    DAT_003099c4 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);\n    FUN_001c5690(&DAT_00309a68);\n    DAT_00309ad8 = (undefined4 *)0x0;\n    DAT_00309adc = 0;\n    DAT_00309ae0 = 0;\n    DAT_00309ae4 = 0;\n    DAT_00309ae8 = 0;\n    DAT_00309aec = 0;\n    DAT_00309af0 = 0;\n    DAT_00309a60 = &PTR_FUN_002ff774;\n    DAT_00309a68 = &PTR_FUN_002ff788;\n    DAT_00309a64 = 0;\n                    \n    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);\n    FUN_001c5690(&DAT_00309924);\n    DAT_0030999c = 0;\n    DAT_00309994 = (undefined4 *)0x0;\n    DAT_00309920 = &PTR_FUN_002ff188;\n    DAT_00309998 = 0;\n    DAT_003099a0 = 0;\n    DAT_003099a4 = 0;\n    DAT_003099a8 = 0;\n    DAT_003099ac = 0;\n    DAT_00309924 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);\n    FUN_001c5690(&DAT_00309884);\n    DAT_003098f4 = 0;\n    DAT_00309880 = &PTR_FUN_002ff188;\n    DAT_003098f8 = 0;\n    DAT_003098fc = 0;\n    DAT_00309900 = 0;\n    DAT_00309904 = 0;\n    DAT_00309908 = 0;\n    DAT_0030990c = 0;\n    DAT_00309884 = &PTR_FUN_002ff19c;\n                    \n    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);\n    DAT_00309930 = DAT_00309930 | 0x2000;\n    DAT_00309ad8 = &DAT_003099c0;\n    DAT_00309994 = &DAT_003099c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00309e1c = DAT_00309e1c + 1;\n    return;\n  }" ({ "{") (expression_statement "DAT_00309844 = 0;" (assignment_expression "DAT_00309844 = 0" (identifier "DAT_00309844") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003023a0 = 1;" (assignment_expression "DAT_003023a0 = 1" (identifier "DAT_003023a0") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00309848 = 0;" (assignment_expression "DAT_00309848 = 0" (identifier "DAT_00309848") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = *(undefined4 *)PTR_stdout_00301ea0;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stdout_00301ea0" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)PTR_stdout_00301ea0" (* "*") (cast_expression "(undefined4 *)PTR_stdout_00301ea0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_00301ea0")))) (; ";")) (expression_statement "DAT_0030984c = 0;" (assignment_expression "DAT_0030984c = 0" (identifier "DAT_0030984c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309840 = &PTR_FUN_002ff09c;" (assignment_expression "DAT_00309840 = &PTR_FUN_002ff09c" (identifier "DAT_00309840") (= "=") (pointer_expression "&PTR_FUN_002ff09c" (& "&") (identifier "PTR_FUN_002ff09c"))) (; ";")) (expression_statement "DAT_00309850 = 0;" (assignment_expression "DAT_00309850 = 0" (identifier "DAT_00309850") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309854 = 0;" (assignment_expression "DAT_00309854 = 0" (identifier "DAT_00309854") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309858 = 0;" (assignment_expression "DAT_00309858 = 0" (identifier "DAT_00309858") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_001d1a60(&DAT_0030985c);" (call_expression "FUN_001d1a60(&DAT_0030985c)" (identifier "FUN_001d1a60") (argument_list "(&DAT_0030985c)" (( "(") (pointer_expression "&DAT_0030985c" (& "&") (identifier "DAT_0030985c")) () ")"))) (; ";")) (expression_statement "puVar4 = PTR_stdin_00301e54;" (assignment_expression "puVar4 = PTR_stdin_00301e54" (identifier "puVar4") (= "=") (identifier "PTR_stdin_00301e54")) (; ";")) (expression_statement "DAT_00309864 = 0xffffffff;" (assignment_expression "DAT_00309864 = 0xffffffff" (identifier "DAT_00309864") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_00309804 = 0;" (assignment_expression "DAT_00309804 = 0" (identifier "DAT_00309804") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = *(undefined4 *)PTR_stdin_00301e54;" (assignment_expression "uVar2 = *(undefined4 *)PTR_stdin_00301e54" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)PTR_stdin_00301e54" (* "*") (cast_expression "(undefined4 *)PTR_stdin_00301e54" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdin_00301e54")))) (; ";")) (expression_statement "DAT_00309840 = &PTR_FUN_002ffc40;" (assignment_expression "DAT_00309840 = &PTR_FUN_002ffc40" (identifier "DAT_00309840") (= "=") (pointer_expression "&PTR_FUN_002ffc40" (& "&") (identifier "PTR_FUN_002ffc40"))) (; ";")) (expression_statement "DAT_00309800 = &PTR_FUN_002ff09c;" (assignment_expression "DAT_00309800 = &PTR_FUN_002ff09c" (identifier "DAT_00309800") (= "=") (pointer_expression "&PTR_FUN_002ff09c" (& "&") (identifier "PTR_FUN_002ff09c"))) (; ";")) (expression_statement "DAT_00309808 = 0;" (assignment_expression "DAT_00309808 = 0" (identifier "DAT_00309808") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0030980c = 0;" (assignment_expression "DAT_0030980c = 0" (identifier "DAT_0030980c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309810 = 0;" (assignment_expression "DAT_00309810 = 0" (identifier "DAT_00309810") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309814 = 0;" (assignment_expression "DAT_00309814 = 0" (identifier "DAT_00309814") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309818 = 0;" (assignment_expression "DAT_00309818 = 0" (identifier "DAT_00309818") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309860 = uVar1;" (assignment_expression "DAT_00309860 = uVar1" (identifier "DAT_00309860") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "FUN_001d1a60(&DAT_0030981c);" (call_expression "FUN_001d1a60(&DAT_0030981c)" (identifier "FUN_001d1a60") (argument_list "(&DAT_0030981c)" (( "(") (pointer_expression "&DAT_0030981c" (& "&") (identifier "DAT_0030981c")) () ")"))) (; ";")) (expression_statement "puVar3 = PTR_stderr_00301d28;" (assignment_expression "puVar3 = PTR_stderr_00301d28" (identifier "puVar3") (= "=") (identifier "PTR_stderr_00301d28")) (; ";")) (expression_statement "DAT_00309800 = &PTR_FUN_002ffc40;" (assignment_expression "DAT_00309800 = &PTR_FUN_002ffc40" (identifier "DAT_00309800") (= "=") (pointer_expression "&PTR_FUN_002ffc40" (& "&") (identifier "PTR_FUN_002ffc40"))) (; ";")) (expression_statement "uVar1 = *(undefined4 *)PTR_stderr_00301d28;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stderr_00301d28" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)PTR_stderr_00301d28" (* "*") (cast_expression "(undefined4 *)PTR_stderr_00301d28" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_00301d28")))) (; ";")) (expression_statement "DAT_003097c0 = &PTR_FUN_002ff09c;" (assignment_expression "DAT_003097c0 = &PTR_FUN_002ff09c" (identifier "DAT_003097c0") (= "=") (pointer_expression "&PTR_FUN_002ff09c" (& "&") (identifier "PTR_FUN_002ff09c"))) (; ";")) (expression_statement "DAT_00309824 = 0xffffffff;" (assignment_expression "DAT_00309824 = 0xffffffff" (identifier "DAT_00309824") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_003097c4 = 0;" (assignment_expression "DAT_003097c4 = 0" (identifier "DAT_003097c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003097c8 = 0;" (assignment_expression "DAT_003097c8 = 0" (identifier "DAT_003097c8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003097cc = 0;" (assignment_expression "DAT_003097cc = 0" (identifier "DAT_003097cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003097d0 = 0;" (assignment_expression "DAT_003097d0 = 0" (identifier "DAT_003097d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003097d4 = 0;" (assignment_expression "DAT_003097d4 = 0" (identifier "DAT_003097d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003097d8 = 0;" (assignment_expression "DAT_003097d8 = 0" (identifier "DAT_003097d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309820 = uVar2;" (assignment_expression "DAT_00309820 = uVar2" (identifier "DAT_00309820") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_001d1a60(&DAT_003097dc);" (call_expression "FUN_001d1a60(&DAT_003097dc)" (identifier "FUN_001d1a60") (argument_list "(&DAT_003097dc)" (( "(") (pointer_expression "&DAT_003097dc" (& "&") (identifier "DAT_003097dc")) () ")"))) (; ";")) (expression_statement "DAT_003097c0 = &PTR_FUN_002ffc40;" (assignment_expression "DAT_003097c0 = &PTR_FUN_002ffc40" (identifier "DAT_003097c0") (= "=") (pointer_expression "&PTR_FUN_002ffc40" (& "&") (identifier "PTR_FUN_002ffc40"))) (; ";")) (expression_statement "DAT_003097e4 = 0xffffffff;" (assignment_expression "DAT_003097e4 = 0xffffffff" (identifier "DAT_003097e4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_003097e0 = uVar1;" (assignment_expression "DAT_003097e0 = uVar1" (identifier "DAT_003097e0") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "FUN_001c5690(&DAT_00309c44);" (call_expression "FUN_001c5690(&DAT_00309c44)" (identifier "FUN_001c5690") (argument_list "(&DAT_00309c44)" (( "(") (pointer_expression "&DAT_00309c44" (& "&") (identifier "DAT_00309c44")) () ")"))) (; ";")) (expression_statement "DAT_00309cb4 = 0;" (assignment_expression "DAT_00309cb4 = 0" (identifier "DAT_00309cb4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309c40 = &PTR_FUN_002ff158;" (assignment_expression "DAT_00309c40 = &PTR_FUN_002ff158" (identifier "DAT_00309c40") (= "=") (pointer_expression "&PTR_FUN_002ff158" (& "&") (identifier "PTR_FUN_002ff158"))) (; ";")) (expression_statement "DAT_00309cb8 = 0;" (assignment_expression "DAT_00309cb8 = 0" (identifier "DAT_00309cb8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309cbc = 0;" (assignment_expression "DAT_00309cbc = 0" (identifier "DAT_00309cbc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309cc0 = 0;" (assignment_expression "DAT_00309cc0 = 0" (identifier "DAT_00309cc0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309cc4 = 0;" (assignment_expression "DAT_00309cc4 = 0" (identifier "DAT_00309cc4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309cc8 = 0;" (assignment_expression "DAT_00309cc8 = 0" (identifier "DAT_00309cc8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309c44 = &PTR_FUN_002ff16c;" (assignment_expression "DAT_00309c44 = &PTR_FUN_002ff16c" (identifier "DAT_00309c44") (= "=") (pointer_expression "&PTR_FUN_002ff16c" (& "&") (identifier "PTR_FUN_002ff16c"))) (; ";")) (expression_statement "FUN_001aae40(&DAT_00309c44,&DAT_00309840);" (call_expression "FUN_001aae40(&DAT_00309c44,&DAT_00309840)" (identifier "FUN_001aae40") (argument_list "(&DAT_00309c44,&DAT_00309840)" (( "(") (pointer_expression "&DAT_00309c44" (& "&") (identifier "DAT_00309c44")) (, ",") (pointer_expression "&DAT_00309840" (& "&") (identifier "DAT_00309840")) () ")"))) (; ";")) (expression_statement "FUN_001c5690(&DAT_00309ce8);" (call_expression "FUN_001c5690(&DAT_00309ce8)" (identifier "FUN_001c5690") (argument_list "(&DAT_00309ce8)" (( "(") (pointer_expression "&DAT_00309ce8" (& "&") (identifier "DAT_00309ce8")) () ")"))) (; ";")) (expression_statement "DAT_00309d58 = (undefined4 *)0x0;" (assignment_expression "DAT_00309d58 = (undefined4 *)0x0" (identifier "DAT_00309d58") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00309d5c = 0;" (assignment_expression "DAT_00309d5c = 0" (identifier "DAT_00309d5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309d60 = 0;" (assignment_expression "DAT_00309d60 = 0" (identifier "DAT_00309d60") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309d64 = 0;" (assignment_expression "DAT_00309d64 = 0" (identifier "DAT_00309d64") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309d68 = 0;" (assignment_expression "DAT_00309d68 = 0" (identifier "DAT_00309d68") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309d6c = 0;" (assignment_expression "DAT_00309d6c = 0" (identifier "DAT_00309d6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309ce0 = &PTR_FUN_002ff744;" (assignment_expression "DAT_00309ce0 = &PTR_FUN_002ff744" (identifier "DAT_00309ce0") (= "=") (pointer_expression "&PTR_FUN_002ff744" (& "&") (identifier "PTR_FUN_002ff744"))) (; ";")) (expression_statement "DAT_00309ce8 = &PTR_FUN_002ff758;" (assignment_expression "DAT_00309ce8 = &PTR_FUN_002ff758" (identifier "DAT_00309ce8") (= "=") (pointer_expression "&PTR_FUN_002ff758" (& "&") (identifier "PTR_FUN_002ff758"))) (; ";")) (expression_statement "DAT_00309ce4 = 0;" (assignment_expression "DAT_00309ce4 = 0" (identifier "DAT_00309ce4") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_001aae40(&DAT_00309ce8,&DAT_00309800);" (call_expression "FUN_001aae40(&DAT_00309ce8,&DAT_00309800)" (identifier "FUN_001aae40") (argument_list "(&DAT_00309ce8,&DAT_00309800)" (( "(") (pointer_expression "&DAT_00309ce8" (& "&") (identifier "DAT_00309ce8")) (, ",") (pointer_expression "&DAT_00309800" (& "&") (identifier "DAT_00309800")) () ")"))) (; ";")) (expression_statement "FUN_001c5690(&DAT_00309ba4);" (call_expression "FUN_001c5690(&DAT_00309ba4)" (identifier "FUN_001c5690") (argument_list "(&DAT_00309ba4)" (( "(") (pointer_expression "&DAT_00309ba4" (& "&") (identifier "DAT_00309ba4")) () ")"))) (; ";")) (expression_statement "DAT_00309c14 = (undefined4 *)0x0;" (assignment_expression "DAT_00309c14 = (undefined4 *)0x0" (identifier "DAT_00309c14") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00309c18 = 0;" (assignment_expression "DAT_00309c18 = 0" (identifier "DAT_00309c18") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309c1c = 0;" (assignment_expression "DAT_00309c1c = 0" (identifier "DAT_00309c1c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309ba0 = &PTR_FUN_002ff158;" (assignment_expression "DAT_00309ba0 = &PTR_FUN_002ff158" (identifier "DAT_00309ba0") (= "=") (pointer_expression "&PTR_FUN_002ff158" (& "&") (identifier "PTR_FUN_002ff158"))) (; ";")) (expression_statement "DAT_00309c20 = 0;" (assignment_expression "DAT_00309c20 = 0" (identifier "DAT_00309c20") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309c24 = 0;" (assignment_expression "DAT_00309c24 = 0" (identifier "DAT_00309c24") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309c28 = 0;" (assignment_expression "DAT_00309c28 = 0" (identifier "DAT_00309c28") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309ba4 = &PTR_FUN_002ff16c;" (assignment_expression "DAT_00309ba4 = &PTR_FUN_002ff16c" (identifier "DAT_00309ba4") (= "=") (pointer_expression "&PTR_FUN_002ff16c" (& "&") (identifier "PTR_FUN_002ff16c"))) (; ";")) (expression_statement "FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);" (call_expression "FUN_001aae40(&DAT_00309ba4,&DAT_003097c0)" (identifier "FUN_001aae40") (argument_list "(&DAT_00309ba4,&DAT_003097c0)" (( "(") (pointer_expression "&DAT_00309ba4" (& "&") (identifier "DAT_00309ba4")) (, ",") (pointer_expression "&DAT_003097c0" (& "&") (identifier "DAT_003097c0")) () ")"))) (; ";")) (expression_statement "FUN_001c5690(&DAT_00309b04);" (call_expression "FUN_001c5690(&DAT_00309b04)" (identifier "FUN_001c5690") (argument_list "(&DAT_00309b04)" (( "(") (pointer_expression "&DAT_00309b04" (& "&") (identifier "DAT_00309b04")) () ")"))) (; ";")) (expression_statement "DAT_00309b78 = 0;" (assignment_expression "DAT_00309b78 = 0" (identifier "DAT_00309b78") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309b00 = &PTR_FUN_002ff158;" (assignment_expression "DAT_00309b00 = &PTR_FUN_002ff158" (identifier "DAT_00309b00") (= "=") (pointer_expression "&PTR_FUN_002ff158" (& "&") (identifier "PTR_FUN_002ff158"))) (; ";")) (expression_statement "DAT_00309b74 = 0;" (assignment_expression "DAT_00309b74 = 0" (identifier "DAT_00309b74") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309b7c = 0;" (assignment_expression "DAT_00309b7c = 0" (identifier "DAT_00309b7c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309b80 = 0;" (assignment_expression "DAT_00309b80 = 0" (identifier "DAT_00309b80") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309b84 = 0;" (assignment_expression "DAT_00309b84 = 0" (identifier "DAT_00309b84") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309b88 = 0;" (assignment_expression "DAT_00309b88 = 0" (identifier "DAT_00309b88") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309b04 = &PTR_FUN_002ff16c;" (assignment_expression "DAT_00309b04 = &PTR_FUN_002ff16c" (identifier "DAT_00309b04") (= "=") (pointer_expression "&PTR_FUN_002ff16c" (& "&") (identifier "PTR_FUN_002ff16c"))) (; ";")) (expression_statement "FUN_001aae40(&DAT_00309b04,&DAT_003097c0);" (call_expression "FUN_001aae40(&DAT_00309b04,&DAT_003097c0)" (identifier "FUN_001aae40") (argument_list "(&DAT_00309b04,&DAT_003097c0)" (( "(") (pointer_expression "&DAT_00309b04" (& "&") (identifier "DAT_00309b04")) (, ",") (pointer_expression "&DAT_003097c0" (& "&") (identifier "DAT_003097c0")) () ")"))) (; ";")) (expression_statement "DAT_003095a4 = 0;" (assignment_expression "DAT_003095a4 = 0" (identifier "DAT_003095a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309bb0 = DAT_00309bb0 | 0x2000;" (assignment_expression "DAT_00309bb0 = DAT_00309bb0 | 0x2000" (identifier "DAT_00309bb0") (= "=") (binary_expression "DAT_00309bb0 | 0x2000" (identifier "DAT_00309bb0") (| "|") (number_literal "0x2000"))) (; ";")) (expression_statement "DAT_00309d58 = &DAT_00309c40;" (assignment_expression "DAT_00309d58 = &DAT_00309c40" (identifier "DAT_00309d58") (= "=") (pointer_expression "&DAT_00309c40" (& "&") (identifier "DAT_00309c40"))) (; ";")) (expression_statement "DAT_00309c14 = &DAT_00309c40;" (assignment_expression "DAT_00309c14 = &DAT_00309c40" (identifier "DAT_00309c14") (= "=") (pointer_expression "&DAT_00309c40" (& "&") (identifier "DAT_00309c40"))) (; ";")) (expression_statement "DAT_003095a8 = 0;" (assignment_expression "DAT_003095a8 = 0" (identifier "DAT_003095a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003095ac = 0;" (assignment_expression "DAT_003095ac = 0" (identifier "DAT_003095ac") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = *(undefined4 *)puVar5;" (assignment_expression "uVar1 = *(undefined4 *)puVar5" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)puVar5" (* "*") (cast_expression "(undefined4 *)puVar5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5")))) (; ";")) (expression_statement "DAT_003095b0 = 0;" (assignment_expression "DAT_003095b0 = 0" (identifier "DAT_003095b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003095a0 = &PTR_FUN_002ff0dc;" (assignment_expression "DAT_003095a0 = &PTR_FUN_002ff0dc" (identifier "DAT_003095a0") (= "=") (pointer_expression "&PTR_FUN_002ff0dc" (& "&") (identifier "PTR_FUN_002ff0dc"))) (; ";")) (expression_statement "DAT_003095b4 = 0;" (assignment_expression "DAT_003095b4 = 0" (identifier "DAT_003095b4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003095b8 = 0;" (assignment_expression "DAT_003095b8 = 0" (identifier "DAT_003095b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_001d1a60(&DAT_003095bc);" (call_expression "FUN_001d1a60(&DAT_003095bc)" (identifier "FUN_001d1a60") (argument_list "(&DAT_003095bc)" (( "(") (pointer_expression "&DAT_003095bc" (& "&") (identifier "DAT_003095bc")) () ")"))) (; ";")) (expression_statement "DAT_003095c4 = 0xffffffff;" (assignment_expression "DAT_003095c4 = 0xffffffff" (identifier "DAT_003095c4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_00309564 = 0;" (assignment_expression "DAT_00309564 = 0" (identifier "DAT_00309564") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003095a0 = &PTR_FUN_002ffc80;" (assignment_expression "DAT_003095a0 = &PTR_FUN_002ffc80" (identifier "DAT_003095a0") (= "=") (pointer_expression "&PTR_FUN_002ffc80" (& "&") (identifier "PTR_FUN_002ffc80"))) (; ";")) (expression_statement "DAT_00309568 = 0;" (assignment_expression "DAT_00309568 = 0" (identifier "DAT_00309568") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = *(undefined4 *)puVar4;" (assignment_expression "uVar2 = *(undefined4 *)puVar4" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) (; ";")) (expression_statement "DAT_0030956c = 0;" (assignment_expression "DAT_0030956c = 0" (identifier "DAT_0030956c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309560 = &PTR_FUN_002ff0dc;" (assignment_expression "DAT_00309560 = &PTR_FUN_002ff0dc" (identifier "DAT_00309560") (= "=") (pointer_expression "&PTR_FUN_002ff0dc" (& "&") (identifier "PTR_FUN_002ff0dc"))) (; ";")) (expression_statement "DAT_00309570 = 0;" (assignment_expression "DAT_00309570 = 0" (identifier "DAT_00309570") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309574 = 0;" (assignment_expression "DAT_00309574 = 0" (identifier "DAT_00309574") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309578 = 0;" (assignment_expression "DAT_00309578 = 0" (identifier "DAT_00309578") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003095c0 = uVar1;" (assignment_expression "DAT_003095c0 = uVar1" (identifier "DAT_003095c0") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "FUN_001d1a60(&DAT_0030957c);" (call_expression "FUN_001d1a60(&DAT_0030957c)" (identifier "FUN_001d1a60") (argument_list "(&DAT_0030957c)" (( "(") (pointer_expression "&DAT_0030957c" (& "&") (identifier "DAT_0030957c")) () ")"))) (; ";")) (expression_statement "DAT_00309560 = &PTR_FUN_002ffc80;" (assignment_expression "DAT_00309560 = &PTR_FUN_002ffc80" (identifier "DAT_00309560") (= "=") (pointer_expression "&PTR_FUN_002ffc80" (& "&") (identifier "PTR_FUN_002ffc80"))) (; ";")) (expression_statement "uVar1 = *(undefined4 *)puVar3;" (assignment_expression "uVar1 = *(undefined4 *)puVar3" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)puVar3" (* "*") (cast_expression "(undefined4 *)puVar3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) (; ";")) (expression_statement "DAT_00309584 = 0xffffffff;" (assignment_expression "DAT_00309584 = 0xffffffff" (identifier "DAT_00309584") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_00309520 = &PTR_FUN_002ff0dc;" (assignment_expression "DAT_00309520 = &PTR_FUN_002ff0dc" (identifier "DAT_00309520") (= "=") (pointer_expression "&PTR_FUN_002ff0dc" (& "&") (identifier "PTR_FUN_002ff0dc"))) (; ";")) (expression_statement "DAT_00309524 = 0;" (assignment_expression "DAT_00309524 = 0" (identifier "DAT_00309524") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309528 = 0;" (assignment_expression "DAT_00309528 = 0" (identifier "DAT_00309528") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0030952c = 0;" (assignment_expression "DAT_0030952c = 0" (identifier "DAT_0030952c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309530 = 0;" (assignment_expression "DAT_00309530 = 0" (identifier "DAT_00309530") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309534 = 0;" (assignment_expression "DAT_00309534 = 0" (identifier "DAT_00309534") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309538 = 0;" (assignment_expression "DAT_00309538 = 0" (identifier "DAT_00309538") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309580 = uVar2;" (assignment_expression "DAT_00309580 = uVar2" (identifier "DAT_00309580") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_001d1a60(&DAT_0030953c);" (call_expression "FUN_001d1a60(&DAT_0030953c)" (identifier "FUN_001d1a60") (argument_list "(&DAT_0030953c)" (( "(") (pointer_expression "&DAT_0030953c" (& "&") (identifier "DAT_0030953c")) () ")"))) (; ";")) (expression_statement "DAT_00309520 = &PTR_FUN_002ffc80;" (assignment_expression "DAT_00309520 = &PTR_FUN_002ffc80" (identifier "DAT_00309520") (= "=") (pointer_expression "&PTR_FUN_002ffc80" (& "&") (identifier "PTR_FUN_002ffc80"))) (; ";")) (expression_statement "DAT_00309544 = 0xffffffff;" (assignment_expression "DAT_00309544 = 0xffffffff" (identifier "DAT_00309544") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_00309540 = uVar1;" (assignment_expression "DAT_00309540 = uVar1" (identifier "DAT_00309540") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "FUN_001c5690(&DAT_003099c4);" (call_expression "FUN_001c5690(&DAT_003099c4)" (identifier "FUN_001c5690") (argument_list "(&DAT_003099c4)" (( "(") (pointer_expression "&DAT_003099c4" (& "&") (identifier "DAT_003099c4")) () ")"))) (; ";")) (expression_statement "DAT_00309a34 = 0;" (assignment_expression "DAT_00309a34 = 0" (identifier "DAT_00309a34") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003099c0 = &PTR_FUN_002ff188;" (assignment_expression "DAT_003099c0 = &PTR_FUN_002ff188" (identifier "DAT_003099c0") (= "=") (pointer_expression "&PTR_FUN_002ff188" (& "&") (identifier "PTR_FUN_002ff188"))) (; ";")) (expression_statement "DAT_00309a38 = 0;" (assignment_expression "DAT_00309a38 = 0" (identifier "DAT_00309a38") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309a3c = 0;" (assignment_expression "DAT_00309a3c = 0" (identifier "DAT_00309a3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309a40 = 0;" (assignment_expression "DAT_00309a40 = 0" (identifier "DAT_00309a40") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309a44 = 0;" (assignment_expression "DAT_00309a44 = 0" (identifier "DAT_00309a44") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309a48 = 0;" (assignment_expression "DAT_00309a48 = 0" (identifier "DAT_00309a48") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309a4c = 0;" (assignment_expression "DAT_00309a4c = 0" (identifier "DAT_00309a4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003099c4 = &PTR_FUN_002ff19c;" (assignment_expression "DAT_003099c4 = &PTR_FUN_002ff19c" (identifier "DAT_003099c4") (= "=") (pointer_expression "&PTR_FUN_002ff19c" (& "&") (identifier "PTR_FUN_002ff19c"))) (; ";")) (expression_statement "FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);" (call_expression "FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0)" (identifier "FUN_001ab7c0") (argument_list "(&DAT_003099c4,&DAT_003095a0)" (( "(") (pointer_expression "&DAT_003099c4" (& "&") (identifier "DAT_003099c4")) (, ",") (pointer_expression "&DAT_003095a0" (& "&") (identifier "DAT_003095a0")) () ")"))) (; ";")) (expression_statement "FUN_001c5690(&DAT_00309a68);" (call_expression "FUN_001c5690(&DAT_00309a68)" (identifier "FUN_001c5690") (argument_list "(&DAT_00309a68)" (( "(") (pointer_expression "&DAT_00309a68" (& "&") (identifier "DAT_00309a68")) () ")"))) (; ";")) (expression_statement "DAT_00309ad8 = (undefined4 *)0x0;" (assignment_expression "DAT_00309ad8 = (undefined4 *)0x0" (identifier "DAT_00309ad8") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00309adc = 0;" (assignment_expression "DAT_00309adc = 0" (identifier "DAT_00309adc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309ae0 = 0;" (assignment_expression "DAT_00309ae0 = 0" (identifier "DAT_00309ae0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309ae4 = 0;" (assignment_expression "DAT_00309ae4 = 0" (identifier "DAT_00309ae4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309ae8 = 0;" (assignment_expression "DAT_00309ae8 = 0" (identifier "DAT_00309ae8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309aec = 0;" (assignment_expression "DAT_00309aec = 0" (identifier "DAT_00309aec") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309af0 = 0;" (assignment_expression "DAT_00309af0 = 0" (identifier "DAT_00309af0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309a60 = &PTR_FUN_002ff774;" (assignment_expression "DAT_00309a60 = &PTR_FUN_002ff774" (identifier "DAT_00309a60") (= "=") (pointer_expression "&PTR_FUN_002ff774" (& "&") (identifier "PTR_FUN_002ff774"))) (; ";")) (expression_statement "DAT_00309a68 = &PTR_FUN_002ff788;" (assignment_expression "DAT_00309a68 = &PTR_FUN_002ff788" (identifier "DAT_00309a68") (= "=") (pointer_expression "&PTR_FUN_002ff788" (& "&") (identifier "PTR_FUN_002ff788"))) (; ";")) (expression_statement "DAT_00309a64 = 0;" (assignment_expression "DAT_00309a64 = 0" (identifier "DAT_00309a64") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);" (call_expression "FUN_001ab7c0(&DAT_00309a68,&DAT_00309560)" (identifier "FUN_001ab7c0") (argument_list "(&DAT_00309a68,&DAT_00309560)" (( "(") (pointer_expression "&DAT_00309a68" (& "&") (identifier "DAT_00309a68")) (, ",") (pointer_expression "&DAT_00309560" (& "&") (identifier "DAT_00309560")) () ")"))) (; ";")) (expression_statement "FUN_001c5690(&DAT_00309924);" (call_expression "FUN_001c5690(&DAT_00309924)" (identifier "FUN_001c5690") (argument_list "(&DAT_00309924)" (( "(") (pointer_expression "&DAT_00309924" (& "&") (identifier "DAT_00309924")) () ")"))) (; ";")) (expression_statement "DAT_0030999c = 0;" (assignment_expression "DAT_0030999c = 0" (identifier "DAT_0030999c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309994 = (undefined4 *)0x0;" (assignment_expression "DAT_00309994 = (undefined4 *)0x0" (identifier "DAT_00309994") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00309920 = &PTR_FUN_002ff188;" (assignment_expression "DAT_00309920 = &PTR_FUN_002ff188" (identifier "DAT_00309920") (= "=") (pointer_expression "&PTR_FUN_002ff188" (& "&") (identifier "PTR_FUN_002ff188"))) (; ";")) (expression_statement "DAT_00309998 = 0;" (assignment_expression "DAT_00309998 = 0" (identifier "DAT_00309998") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003099a0 = 0;" (assignment_expression "DAT_003099a0 = 0" (identifier "DAT_003099a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003099a4 = 0;" (assignment_expression "DAT_003099a4 = 0" (identifier "DAT_003099a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003099a8 = 0;" (assignment_expression "DAT_003099a8 = 0" (identifier "DAT_003099a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003099ac = 0;" (assignment_expression "DAT_003099ac = 0" (identifier "DAT_003099ac") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309924 = &PTR_FUN_002ff19c;" (assignment_expression "DAT_00309924 = &PTR_FUN_002ff19c" (identifier "DAT_00309924") (= "=") (pointer_expression "&PTR_FUN_002ff19c" (& "&") (identifier "PTR_FUN_002ff19c"))) (; ";")) (expression_statement "FUN_001ab7c0(&DAT_00309924,&DAT_00309520);" (call_expression "FUN_001ab7c0(&DAT_00309924,&DAT_00309520)" (identifier "FUN_001ab7c0") (argument_list "(&DAT_00309924,&DAT_00309520)" (( "(") (pointer_expression "&DAT_00309924" (& "&") (identifier "DAT_00309924")) (, ",") (pointer_expression "&DAT_00309520" (& "&") (identifier "DAT_00309520")) () ")"))) (; ";")) (expression_statement "FUN_001c5690(&DAT_00309884);" (call_expression "FUN_001c5690(&DAT_00309884)" (identifier "FUN_001c5690") (argument_list "(&DAT_00309884)" (( "(") (pointer_expression "&DAT_00309884" (& "&") (identifier "DAT_00309884")) () ")"))) (; ";")) (expression_statement "DAT_003098f4 = 0;" (assignment_expression "DAT_003098f4 = 0" (identifier "DAT_003098f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309880 = &PTR_FUN_002ff188;" (assignment_expression "DAT_00309880 = &PTR_FUN_002ff188" (identifier "DAT_00309880") (= "=") (pointer_expression "&PTR_FUN_002ff188" (& "&") (identifier "PTR_FUN_002ff188"))) (; ";")) (expression_statement "DAT_003098f8 = 0;" (assignment_expression "DAT_003098f8 = 0" (identifier "DAT_003098f8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003098fc = 0;" (assignment_expression "DAT_003098fc = 0" (identifier "DAT_003098fc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309900 = 0;" (assignment_expression "DAT_00309900 = 0" (identifier "DAT_00309900") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309904 = 0;" (assignment_expression "DAT_00309904 = 0" (identifier "DAT_00309904") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309908 = 0;" (assignment_expression "DAT_00309908 = 0" (identifier "DAT_00309908") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0030990c = 0;" (assignment_expression "DAT_0030990c = 0" (identifier "DAT_0030990c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00309884 = &PTR_FUN_002ff19c;" (assignment_expression "DAT_00309884 = &PTR_FUN_002ff19c" (identifier "DAT_00309884") (= "=") (pointer_expression "&PTR_FUN_002ff19c" (& "&") (identifier "PTR_FUN_002ff19c"))) (; ";")) (expression_statement "FUN_001ab7c0(&DAT_00309884,&DAT_00309520);" (call_expression "FUN_001ab7c0(&DAT_00309884,&DAT_00309520)" (identifier "FUN_001ab7c0") (argument_list "(&DAT_00309884,&DAT_00309520)" (( "(") (pointer_expression "&DAT_00309884" (& "&") (identifier "DAT_00309884")) (, ",") (pointer_expression "&DAT_00309520" (& "&") (identifier "DAT_00309520")) () ")"))) (; ";")) (expression_statement "DAT_00309930 = DAT_00309930 | 0x2000;" (assignment_expression "DAT_00309930 = DAT_00309930 | 0x2000" (identifier "DAT_00309930") (= "=") (binary_expression "DAT_00309930 | 0x2000" (identifier "DAT_00309930") (| "|") (number_literal "0x2000"))) (; ";")) (expression_statement "DAT_00309ad8 = &DAT_003099c0;" (assignment_expression "DAT_00309ad8 = &DAT_003099c0" (identifier "DAT_00309ad8") (= "=") (pointer_expression "&DAT_003099c0" (& "&") (identifier "DAT_003099c0"))) (; ";")) (expression_statement "DAT_00309994 = &DAT_003099c0;" (assignment_expression "DAT_00309994 = &DAT_003099c0" (identifier "DAT_00309994") (= "=") (pointer_expression "&DAT_003099c0" (& "&") (identifier "DAT_003099c0"))) (; ";")) (if_statement "if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }" (if "if") (parenthesized_expression "(puVar6 != (undefined *)0x0)" (( "(") (binary_expression "puVar6 != (undefined *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      LOCK();\n      DAT_00309e1c = DAT_00309e1c + 1;\n      UNLOCK();\n      return;\n    }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_00309e1c = DAT_00309e1c + 1;" (assignment_expression "DAT_00309e1c = DAT_00309e1c + 1" (identifier "DAT_00309e1c") (= "=") (binary_expression "DAT_00309e1c + 1" (identifier "DAT_00309e1c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "DAT_00309e1c = DAT_00309e1c + 1;" (assignment_expression "DAT_00309e1c = DAT_00309e1c + 1" (identifier "DAT_00309e1c") (= "=") (binary_expression "DAT_00309e1c + 1" (identifier "DAT_00309e1c") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* std::ios_base::Init::Init() */

void __thiscall std::var_7::function_1::function_1(function_1 *this)

{
  type_1 uVar1;
  type_1 uVar2;
  type_2 *puVar3;
  type_2 *puVar4;
  type_2 *puVar5;
  type_2 *var_11;
  int var_5;
  
  var_5 = var_4;
  var_11 = var_1;
  puVar5 = PTR_stdout_00301ea0;
  if (var_1 != (type_2 *)0x0) {
    var_2();
    var_3();
  }
  var_4 = var_4 + 1;
  if (var_5 == 0) {
    DAT_00309844 = 0;
    _S_synced_with_stdio = 1;
    DAT_00309848 = 0;
    uVar1 = *(type_1 *)PTR_stdout_00301ea0;
    DAT_0030984c = 0;
    __gnu_internal::buf_cout_sync = &PTR__streambuf_002ff09c;
    DAT_00309850 = 0;
    DAT_00309854 = 0;
    DAT_00309858 = 0;
    locale::var_6((var_6 *)&DAT_0030985c);
    puVar4 = PTR_stdin_00301e54;
    DAT_00309864 = 0xffffffff;
    _DAT_00309804 = 0;
    uVar2 = *(type_1 *)PTR_stdin_00301e54;
    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_002ffc40;
    __gnu_internal::buf_cin_sync = &PTR__streambuf_002ff09c;
    DAT_00309808 = 0;
    DAT_0030980c = 0;
    DAT_00309810 = 0;
    DAT_00309814 = 0;
    DAT_00309818 = 0;
    DAT_00309860 = uVar1;
    locale::var_6((var_6 *)&DAT_0030981c);
    puVar3 = PTR_stderr_00301d28;
    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_002ffc40;
    uVar1 = *(type_1 *)PTR_stderr_00301d28;
    __gnu_internal::buf_cerr_sync = &PTR__streambuf_002ff09c;
    DAT_00309824 = 0xffffffff;
    DAT_003097c4 = 0;
    DAT_003097c8 = 0;
    DAT_003097cc = 0;
    DAT_003097d0 = 0;
    DAT_003097d4 = 0;
    DAT_003097d8 = 0;
    DAT_00309820 = uVar2;
    locale::var_6((var_6 *)&DAT_003097dc);
    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_002ffc40;
    DAT_003097e4 = 0xffffffff;
    DAT_003097e0 = uVar1;
    var_7((var_7 *)&DAT_00309c44);
    _DAT_00309cb4 = 0;
    cout = 0x2ff158;
    DAT_00309cb8 = 0;
    DAT_00309cbc = 0;
    DAT_00309cc0 = 0;
    DAT_00309cc4 = 0;
    DAT_00309cc8 = 0;
    DAT_00309c44 = 0x2ff16c;
                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */
    ios::var_8((type_3 *)&DAT_00309c44,(streambuf *)&__gnu_internal::buf_cout_sync);
    var_7((var_7 *)&DAT_00309ce8);
    DAT_00309d58 = (type_1 *)0x0;
    _DAT_00309d5c = 0;
    _DAT_00309d60 = 0;
    _DAT_00309d64 = 0;
    _DAT_00309d68 = 0;
    _DAT_00309d6c = 0;
    cin = 0x2ff744;
    DAT_00309ce8 = 0x2ff758;
    DAT_00309ce4 = 0;
                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */
    ios::var_8((type_3 *)&DAT_00309ce8,(streambuf *)&__gnu_internal::buf_cin_sync);
    var_7((var_7 *)&DAT_00309ba4);
    DAT_00309c14 = (type_1 *)0x0;
    _DAT_00309c18 = 0;
    _DAT_00309c1c = 0;
    cerr = 0x2ff158;
    DAT_00309c20 = 0;
    DAT_00309c24 = 0;
    DAT_00309c28 = 0;
    DAT_00309ba4 = 0x2ff16c;
                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */
    ios::var_8((type_3 *)&DAT_00309ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);
    var_7((var_7 *)&DAT_00309b04);
    _DAT_00309b78 = 0;
    clog = 0x2ff158;
    DAT_00309b74 = 0;
    DAT_00309b7c = 0;
    DAT_00309b80 = 0;
    DAT_00309b84 = 0;
    DAT_00309b88 = 0;
    DAT_00309b04 = 0x2ff16c;
                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */
    ios::var_8((type_3 *)&DAT_00309b04,(streambuf *)&__gnu_internal::buf_cerr_sync);
    _DAT_003095a4 = 0;
    var_9 = var_9 | 0x2000;
    DAT_00309d58 = &cout;
    DAT_00309c14 = &cout;
    _DAT_003095a8 = 0;
    _DAT_003095ac = 0;
    uVar1 = *(type_1 *)puVar5;
    _DAT_003095b0 = 0;
    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_002ff0dc;
    DAT_003095b4 = 0;
    DAT_003095b8 = 0;
    locale::var_6((var_6 *)&DAT_003095bc);
    DAT_003095c4 = 0xffffffff;
    _DAT_00309564 = 0;
    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_002ffc80;
    _DAT_00309568 = 0;
    uVar2 = *(type_1 *)puVar4;
    _DAT_0030956c = 0;
    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_002ff0dc;
    DAT_00309570 = 0;
    DAT_00309574 = 0;
    DAT_00309578 = 0;
    DAT_003095c0 = uVar1;
    locale::var_6((var_6 *)&DAT_0030957c);
    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_002ffc80;
    uVar1 = *(type_1 *)puVar3;
    DAT_00309584 = 0xffffffff;
    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_002ff0dc;
    DAT_00309524 = 0;
    DAT_00309528 = 0;
    DAT_0030952c = 0;
    DAT_00309530 = 0;
    DAT_00309534 = 0;
    DAT_00309538 = 0;
    DAT_00309580 = uVar2;
    locale::var_6((var_6 *)&DAT_0030953c);
    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_002ffc80;
    DAT_00309544 = 0xffffffff;
    DAT_00309540 = uVar1;
    var_7((var_7 *)&DAT_003099c4);
    _DAT_00309a34 = 0;
    wcout = 0x2ff188;
    DAT_00309a38 = 0;
    DAT_00309a3c = 0;
    DAT_00309a40 = 0;
    DAT_00309a44 = 0;
    DAT_00309a48 = 0;
    DAT_00309a4c = 0;
    DAT_003099c4 = 0x2ff19c;
                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */
    wios::var_8((type_4 *)&DAT_003099c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);
    var_7((var_7 *)&DAT_00309a68);
    DAT_00309ad8 = (type_1 *)0x0;
    _DAT_00309adc = 0;
    DAT_00309ae0 = 0;
    _DAT_00309ae4 = 0;
    _DAT_00309ae8 = 0;
    _DAT_00309aec = 0;
    _DAT_00309af0 = 0;
    wcin = 0x2ff774;
    DAT_00309a68 = 0x2ff788;
    DAT_00309a64 = 0;
                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */
    wios::var_8((type_4 *)&DAT_00309a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);
    var_7((var_7 *)&DAT_00309924);
    DAT_0030999c = 0;
    DAT_00309994 = (type_1 *)0x0;
    wcerr = 0x2ff188;
    DAT_00309998 = 0;
    DAT_003099a0 = 0;
    DAT_003099a4 = 0;
    DAT_003099a8 = 0;
    DAT_003099ac = 0;
    DAT_00309924 = 0x2ff19c;
                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */
    wios::var_8((type_4 *)&DAT_00309924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);
    var_7((var_7 *)&DAT_00309884);
    _DAT_003098f4 = 0;
    wclog = 0x2ff188;
    DAT_003098f8 = 0;
    DAT_003098fc = 0;
    DAT_00309900 = 0;
    DAT_00309904 = 0;
    DAT_00309908 = 0;
    DAT_0030990c = 0;
    DAT_00309884 = 0x2ff19c;
                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */
    wios::var_8((type_4 *)&DAT_00309884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);
    var_10 = var_10 | 0x2000;
    DAT_00309ad8 = &wcout;
    DAT_00309994 = &wcout;
    if (var_11 != (type_2 *)0x0) {
      var_2();
      var_4 = var_4 + 1;
      var_3();
      return;
    }
    var_4 = var_4 + 1;
    return;
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void MASKED(void)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  int iVar7;
  
  iVar7 = DAT_00309e1c;
  puVar6 = PTR___pthread_key_create_00301f24;
  puVar5 = PTR_stdout_00301ea0;
  if (PTR___pthread_key_create_00301f24 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00309e1c = DAT_00309e1c + 1;
  if (iVar7 == 0) {
    DAT_00309844 = 0;
    DAT_003023a0 = 1;
    DAT_00309848 = 0;
    uVar1 = *(undefined4 *)PTR_stdout_00301ea0;
    DAT_0030984c = 0;
    DAT_00309840 = &PTR_FUN_002ff09c;
    DAT_00309850 = 0;
    DAT_00309854 = 0;
    DAT_00309858 = 0;
    FUN_001d1a60(&DAT_0030985c);
    puVar4 = PTR_stdin_00301e54;
    DAT_00309864 = 0xffffffff;
    DAT_00309804 = 0;
    uVar2 = *(undefined4 *)PTR_stdin_00301e54;
    DAT_00309840 = &PTR_FUN_002ffc40;
    DAT_00309800 = &PTR_FUN_002ff09c;
    DAT_00309808 = 0;
    DAT_0030980c = 0;
    DAT_00309810 = 0;
    DAT_00309814 = 0;
    DAT_00309818 = 0;
    DAT_00309860 = uVar1;
    FUN_001d1a60(&DAT_0030981c);
    puVar3 = PTR_stderr_00301d28;
    DAT_00309800 = &PTR_FUN_002ffc40;
    uVar1 = *(undefined4 *)PTR_stderr_00301d28;
    DAT_003097c0 = &PTR_FUN_002ff09c;
    DAT_00309824 = 0xffffffff;
    DAT_003097c4 = 0;
    DAT_003097c8 = 0;
    DAT_003097cc = 0;
    DAT_003097d0 = 0;
    DAT_003097d4 = 0;
    DAT_003097d8 = 0;
    DAT_00309820 = uVar2;
    FUN_001d1a60(&DAT_003097dc);
    DAT_003097c0 = &PTR_FUN_002ffc40;
    DAT_003097e4 = 0xffffffff;
    DAT_003097e0 = uVar1;
    FUN_001c5690(&DAT_00309c44);
    DAT_00309cb4 = 0;
    DAT_00309c40 = &PTR_FUN_002ff158;
    DAT_00309cb8 = 0;
    DAT_00309cbc = 0;
    DAT_00309cc0 = 0;
    DAT_00309cc4 = 0;
    DAT_00309cc8 = 0;
    DAT_00309c44 = &PTR_FUN_002ff16c;
                    /* try { // try from 00183be3 to 00183be7 has its CatchHandler @ 001840f9 */
    FUN_001aae40(&DAT_00309c44,&DAT_00309840);
    FUN_001c5690(&DAT_00309ce8);
    DAT_00309d58 = (undefined4 *)0x0;
    DAT_00309d5c = 0;
    DAT_00309d60 = 0;
    DAT_00309d64 = 0;
    DAT_00309d68 = 0;
    DAT_00309d6c = 0;
    DAT_00309ce0 = &PTR_FUN_002ff744;
    DAT_00309ce8 = &PTR_FUN_002ff758;
    DAT_00309ce4 = 0;
                    /* try { // try from 00183c58 to 00183c5c has its CatchHandler @ 001840ea */
    FUN_001aae40(&DAT_00309ce8,&DAT_00309800);
    FUN_001c5690(&DAT_00309ba4);
    DAT_00309c14 = (undefined4 *)0x0;
    DAT_00309c18 = 0;
    DAT_00309c1c = 0;
    DAT_00309ba0 = &PTR_FUN_002ff158;
    DAT_00309c20 = 0;
    DAT_00309c24 = 0;
    DAT_00309c28 = 0;
    DAT_00309ba4 = &PTR_FUN_002ff16c;
                    /* try { // try from 00183cc2 to 00183cc6 has its CatchHandler @ 001840f1 */
    FUN_001aae40(&DAT_00309ba4,&DAT_003097c0);
    FUN_001c5690(&DAT_00309b04);
    DAT_00309b78 = 0;
    DAT_00309b00 = &PTR_FUN_002ff158;
    DAT_00309b74 = 0;
    DAT_00309b7c = 0;
    DAT_00309b80 = 0;
    DAT_00309b84 = 0;
    DAT_00309b88 = 0;
    DAT_00309b04 = &PTR_FUN_002ff16c;
                    /* try { // try from 00183d2a to 00183d2e has its CatchHandler @ 001840cd */
    FUN_001aae40(&DAT_00309b04,&DAT_003097c0);
    DAT_003095a4 = 0;
    DAT_00309bb0 = DAT_00309bb0 | 0x2000;
    DAT_00309d58 = &DAT_00309c40;
    DAT_00309c14 = &DAT_00309c40;
    DAT_003095a8 = 0;
    DAT_003095ac = 0;
    uVar1 = *(undefined4 *)puVar5;
    DAT_003095b0 = 0;
    DAT_003095a0 = &PTR_FUN_002ff0dc;
    DAT_003095b4 = 0;
    DAT_003095b8 = 0;
    FUN_001d1a60(&DAT_003095bc);
    DAT_003095c4 = 0xffffffff;
    DAT_00309564 = 0;
    DAT_003095a0 = &PTR_FUN_002ffc80;
    DAT_00309568 = 0;
    uVar2 = *(undefined4 *)puVar4;
    DAT_0030956c = 0;
    DAT_00309560 = &PTR_FUN_002ff0dc;
    DAT_00309570 = 0;
    DAT_00309574 = 0;
    DAT_00309578 = 0;
    DAT_003095c0 = uVar1;
    FUN_001d1a60(&DAT_0030957c);
    DAT_00309560 = &PTR_FUN_002ffc80;
    uVar1 = *(undefined4 *)puVar3;
    DAT_00309584 = 0xffffffff;
    DAT_00309520 = &PTR_FUN_002ff0dc;
    DAT_00309524 = 0;
    DAT_00309528 = 0;
    DAT_0030952c = 0;
    DAT_00309530 = 0;
    DAT_00309534 = 0;
    DAT_00309538 = 0;
    DAT_00309580 = uVar2;
    FUN_001d1a60(&DAT_0030953c);
    DAT_00309520 = &PTR_FUN_002ffc80;
    DAT_00309544 = 0xffffffff;
    DAT_00309540 = uVar1;
    FUN_001c5690(&DAT_003099c4);
    DAT_00309a34 = 0;
    DAT_003099c0 = &PTR_FUN_002ff188;
    DAT_00309a38 = 0;
    DAT_00309a3c = 0;
    DAT_00309a40 = 0;
    DAT_00309a44 = 0;
    DAT_00309a48 = 0;
    DAT_00309a4c = 0;
    DAT_003099c4 = &PTR_FUN_002ff19c;
                    /* try { // try from 00183f23 to 00183f27 has its CatchHandler @ 001840d4 */
    FUN_001ab7c0(&DAT_003099c4,&DAT_003095a0);
    FUN_001c5690(&DAT_00309a68);
    DAT_00309ad8 = (undefined4 *)0x0;
    DAT_00309adc = 0;
    DAT_00309ae0 = 0;
    DAT_00309ae4 = 0;
    DAT_00309ae8 = 0;
    DAT_00309aec = 0;
    DAT_00309af0 = 0;
    DAT_00309a60 = &PTR_FUN_002ff774;
    DAT_00309a68 = &PTR_FUN_002ff788;
    DAT_00309a64 = 0;
                    /* try { // try from 00183f9e to 00183fa2 has its CatchHandler @ 001840db */
    FUN_001ab7c0(&DAT_00309a68,&DAT_00309560);
    FUN_001c5690(&DAT_00309924);
    DAT_0030999c = 0;
    DAT_00309994 = (undefined4 *)0x0;
    DAT_00309920 = &PTR_FUN_002ff188;
    DAT_00309998 = 0;
    DAT_003099a0 = 0;
    DAT_003099a4 = 0;
    DAT_003099a8 = 0;
    DAT_003099ac = 0;
    DAT_00309924 = &PTR_FUN_002ff19c;
                    /* try { // try from 00184010 to 00184014 has its CatchHandler @ 001840e2 */
    FUN_001ab7c0(&DAT_00309924,&DAT_00309520);
    FUN_001c5690(&DAT_00309884);
    DAT_003098f4 = 0;
    DAT_00309880 = &PTR_FUN_002ff188;
    DAT_003098f8 = 0;
    DAT_003098fc = 0;
    DAT_00309900 = 0;
    DAT_00309904 = 0;
    DAT_00309908 = 0;
    DAT_0030990c = 0;
    DAT_00309884 = &PTR_FUN_002ff19c;
                    /* try { // try from 00184080 to 00184084 has its CatchHandler @ 001840c6 */
    FUN_001ab7c0(&DAT_00309884,&DAT_00309520);
    DAT_00309930 = DAT_00309930 | 0x2000;
    DAT_00309ad8 = &DAT_003099c0;
    DAT_00309994 = &DAT_003099c0;
    if (puVar6 != (undefined *)0x0) {
      LOCK();
      DAT_00309e1c = DAT_00309e1c + 1;
      UNLOCK();
      return;
    }
    DAT_00309e1c = DAT_00309e1c + 1;
    return;
  }
  return;
}

