
/* 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_0038ef24;
  puVar5 = PTR_stdout_0038eea0;
  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  _S_refcount = _S_refcount + 1;
  if (iVar7 == 0) {
    DAT_00396844 = 0;
    _S_synced_with_stdio = 1;
    DAT_00396848 = 0;
    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;
    DAT_0039684c = 0;
    __gnu_internal::buf_cout_sync = &PTR__streambuf_0038c0a4;
    DAT_00396850 = 0;
    DAT_00396854 = 0;
    DAT_00396858 = 0;
    locale::locale((locale *)&DAT_0039685c);
    puVar4 = PTR_stdin_0038ee54;
    DAT_00396864 = 0xffffffff;
    DAT_00396804 = 0;
    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;
    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_0038cc48;
    __gnu_internal::buf_cin_sync = &PTR__streambuf_0038c0a4;
    DAT_00396808 = 0;
    DAT_0039680c = 0;
    DAT_00396810 = 0;
    DAT_00396814 = 0;
    DAT_00396818 = 0;
    DAT_00396860 = uVar1;
    locale::locale((locale *)&DAT_0039681c);
    puVar3 = PTR_stderr_0038ed28;
    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_0038cc48;
    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;
    __gnu_internal::buf_cerr_sync = &PTR__streambuf_0038c0a4;
    DAT_00396824 = 0xffffffff;
    DAT_003967c4 = 0;
    DAT_003967c8 = 0;
    DAT_003967cc = 0;
    DAT_003967d0 = 0;
    DAT_003967d4 = 0;
    DAT_003967d8 = 0;
    DAT_00396820 = uVar2;
    locale::locale((locale *)&DAT_003967dc);
    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_0038cc48;
    DAT_003967e4 = 0xffffffff;
    DAT_003967e0 = uVar1;
    ios_base((ios_base *)&DAT_00396c44);
    _DAT_00396cb4 = 0;
    cout = 0x38c160;
    DAT_00396cb8 = 0;
    DAT_00396cbc = 0;
    DAT_00396cc0 = 0;
    DAT_00396cc4 = 0;
    DAT_00396cc8 = 0;
    DAT_00396c44 = 0x38c174;
                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */
    ios::init((ios *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync);
    ios_base((ios_base *)&DAT_00396ce8);
    DAT_00396d58 = (undefined4 *)0x0;
    _DAT_00396d5c = 0;
    _DAT_00396d60 = 0;
    _DAT_00396d64 = 0;
    _DAT_00396d68 = 0;
    _DAT_00396d6c = 0;
    cin = 0x38c74c;
    DAT_00396ce8 = 0x38c760;
    DAT_00396ce4 = 0;
                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */
    ios::init((ios *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync);
    ios_base((ios_base *)&DAT_00396ba4);
    DAT_00396c14 = (undefined4 *)0x0;
    _DAT_00396c18 = 0;
    _DAT_00396c1c = 0;
    cerr = 0x38c160;
    DAT_00396c20 = 0;
    DAT_00396c24 = 0;
    DAT_00396c28 = 0;
    DAT_00396ba4 = 0x38c174;
                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */
    ios::init((ios *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);
    ios_base((ios_base *)&DAT_00396b04);
    _DAT_00396b78 = 0;
    clog = 0x38c160;
    DAT_00396b74 = 0;
    DAT_00396b7c = 0;
    DAT_00396b80 = 0;
    DAT_00396b84 = 0;
    DAT_00396b88 = 0;
    DAT_00396b04 = 0x38c174;
                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */
    ios::init((ios *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync);
    DAT_003965a4 = 0;
    DAT_00396bb0 = DAT_00396bb0 | 0x2000;
    DAT_00396d58 = &cout;
    DAT_00396c14 = &cout;
    DAT_003965a8 = 0;
    DAT_003965ac = 0;
    uVar1 = *(undefined4 *)puVar5;
    DAT_003965b0 = 0;
    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_0038c0e4;
    DAT_003965b4 = 0;
    DAT_003965b8 = 0;
    locale::locale((locale *)&DAT_003965bc);
    DAT_003965c4 = 0xffffffff;
    DAT_00396564 = 0;
    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_0038cc88;
    DAT_00396568 = 0;
    uVar2 = *(undefined4 *)puVar4;
    DAT_0039656c = 0;
    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_0038c0e4;
    DAT_00396570 = 0;
    DAT_00396574 = 0;
    DAT_00396578 = 0;
    DAT_003965c0 = uVar1;
    locale::locale((locale *)&DAT_0039657c);
    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_0038cc88;
    uVar1 = *(undefined4 *)puVar3;
    DAT_00396584 = 0xffffffff;
    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_0038c0e4;
    DAT_00396524 = 0;
    DAT_00396528 = 0;
    DAT_0039652c = 0;
    DAT_00396530 = 0;
    DAT_00396534 = 0;
    DAT_00396538 = 0;
    DAT_00396580 = uVar2;
    locale::locale((locale *)&DAT_0039653c);
    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_0038cc88;
    DAT_00396544 = 0xffffffff;
    DAT_00396540 = uVar1;
    ios_base((ios_base *)&DAT_003969c4);
    _DAT_00396a34 = 0;
    wcout = 0x38c190;
    DAT_00396a38 = 0;
    DAT_00396a3c = 0;
    DAT_00396a40 = 0;
    DAT_00396a44 = 0;
    DAT_00396a48 = 0;
    DAT_00396a4c = 0;
    DAT_003969c4 = 0x38c1a4;
                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */
    wios::init((wios *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);
    ios_base((ios_base *)&DAT_00396a68);
    DAT_00396ad8 = (undefined4 *)0x0;
    _DAT_00396adc = 0;
    DAT_00396ae0 = 0;
    _DAT_00396ae4 = 0;
    _DAT_00396ae8 = 0;
    _DAT_00396aec = 0;
    _DAT_00396af0 = 0;
    wcin = 0x38c77c;
    DAT_00396a68 = 0x38c790;
    DAT_00396a64 = 0;
                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */
    wios::init((wios *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);
    ios_base((ios_base *)&DAT_00396924);
    DAT_0039699c = 0;
    DAT_00396994 = (undefined4 *)0x0;
    wcerr = 0x38c190;
    DAT_00396998 = 0;
    DAT_003969a0 = 0;
    DAT_003969a4 = 0;
    DAT_003969a8 = 0;
    DAT_003969ac = 0;
    DAT_00396924 = 0x38c1a4;
                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */
    wios::init((wios *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);
    ios_base((ios_base *)&DAT_00396884);
    _DAT_003968f4 = 0;
    wclog = 0x38c190;
    DAT_003968f8 = 0;
    DAT_003968fc = 0;
    DAT_00396900 = 0;
    DAT_00396904 = 0;
    DAT_00396908 = 0;
    DAT_0039690c = 0;
    DAT_00396884 = 0x38c1a4;
                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */
    wios::init((wios *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);
    DAT_00396930 = DAT_00396930 | 0x2000;
    DAT_00396ad8 = &wcout;
    DAT_00396994 = &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_001e9fa0(void)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  int iVar7;
  
  iVar7 = DAT_00396e1c;
  puVar6 = PTR___pthread_key_create_0038ef24;
  puVar5 = PTR_stdout_0038eea0;
  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00396e1c = DAT_00396e1c + 1;
  if (iVar7 == 0) {
    DAT_00396844 = 0;
    DAT_0038f3a0 = 1;
    DAT_00396848 = 0;
    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;
    DAT_0039684c = 0;
    DAT_00396840 = &PTR_FUN_0038c0a4;
    DAT_00396850 = 0;
    DAT_00396854 = 0;
    DAT_00396858 = 0;
    FUN_00238070(&DAT_0039685c);
    puVar4 = PTR_stdin_0038ee54;
    DAT_00396864 = 0xffffffff;
    DAT_00396804 = 0;
    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;
    DAT_00396840 = &PTR_FUN_0038cc48;
    DAT_00396800 = &PTR_FUN_0038c0a4;
    DAT_00396808 = 0;
    DAT_0039680c = 0;
    DAT_00396810 = 0;
    DAT_00396814 = 0;
    DAT_00396818 = 0;
    DAT_00396860 = uVar1;
    FUN_00238070(&DAT_0039681c);
    puVar3 = PTR_stderr_0038ed28;
    DAT_00396800 = &PTR_FUN_0038cc48;
    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;
    DAT_003967c0 = &PTR_FUN_0038c0a4;
    DAT_00396824 = 0xffffffff;
    DAT_003967c4 = 0;
    DAT_003967c8 = 0;
    DAT_003967cc = 0;
    DAT_003967d0 = 0;
    DAT_003967d4 = 0;
    DAT_003967d8 = 0;
    DAT_00396820 = uVar2;
    FUN_00238070(&DAT_003967dc);
    DAT_003967c0 = &PTR_FUN_0038cc48;
    DAT_003967e4 = 0xffffffff;
    DAT_003967e0 = uVar1;
    FUN_0022bca0(&DAT_00396c44);
    DAT_00396cb4 = 0;
    DAT_00396c40 = &PTR_FUN_0038c160;
    DAT_00396cb8 = 0;
    DAT_00396cbc = 0;
    DAT_00396cc0 = 0;
    DAT_00396cc4 = 0;
    DAT_00396cc8 = 0;
    DAT_00396c44 = &PTR_FUN_0038c174;
                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */
    FUN_00211450(&DAT_00396c44,&DAT_00396840);
    FUN_0022bca0(&DAT_00396ce8);
    DAT_00396d58 = (undefined4 *)0x0;
    DAT_00396d5c = 0;
    DAT_00396d60 = 0;
    DAT_00396d64 = 0;
    DAT_00396d68 = 0;
    DAT_00396d6c = 0;
    DAT_00396ce0 = &PTR_FUN_0038c74c;
    DAT_00396ce8 = &PTR_FUN_0038c760;
    DAT_00396ce4 = 0;
                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */
    FUN_00211450(&DAT_00396ce8,&DAT_00396800);
    FUN_0022bca0(&DAT_00396ba4);
    DAT_00396c14 = (undefined4 *)0x0;
    DAT_00396c18 = 0;
    DAT_00396c1c = 0;
    DAT_00396ba0 = &PTR_FUN_0038c160;
    DAT_00396c20 = 0;
    DAT_00396c24 = 0;
    DAT_00396c28 = 0;
    DAT_00396ba4 = &PTR_FUN_0038c174;
                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */
    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);
    FUN_0022bca0(&DAT_00396b04);
    DAT_00396b78 = 0;
    DAT_00396b00 = &PTR_FUN_0038c160;
    DAT_00396b74 = 0;
    DAT_00396b7c = 0;
    DAT_00396b80 = 0;
    DAT_00396b84 = 0;
    DAT_00396b88 = 0;
    DAT_00396b04 = &PTR_FUN_0038c174;
                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */
    FUN_00211450(&DAT_00396b04,&DAT_003967c0);
    DAT_003965a4 = 0;
    DAT_00396bb0 = DAT_00396bb0 | 0x2000;
    DAT_00396d58 = &DAT_00396c40;
    DAT_00396c14 = &DAT_00396c40;
    DAT_003965a8 = 0;
    DAT_003965ac = 0;
    uVar1 = *(undefined4 *)puVar5;
    DAT_003965b0 = 0;
    DAT_003965a0 = &PTR_FUN_0038c0e4;
    DAT_003965b4 = 0;
    DAT_003965b8 = 0;
    FUN_00238070(&DAT_003965bc);
    DAT_003965c4 = 0xffffffff;
    DAT_00396564 = 0;
    DAT_003965a0 = &PTR_FUN_0038cc88;
    DAT_00396568 = 0;
    uVar2 = *(undefined4 *)puVar4;
    DAT_0039656c = 0;
    DAT_00396560 = &PTR_FUN_0038c0e4;
    DAT_00396570 = 0;
    DAT_00396574 = 0;
    DAT_00396578 = 0;
    DAT_003965c0 = uVar1;
    FUN_00238070(&DAT_0039657c);
    DAT_00396560 = &PTR_FUN_0038cc88;
    uVar1 = *(undefined4 *)puVar3;
    DAT_00396584 = 0xffffffff;
    DAT_00396520 = &PTR_FUN_0038c0e4;
    DAT_00396524 = 0;
    DAT_00396528 = 0;
    DAT_0039652c = 0;
    DAT_00396530 = 0;
    DAT_00396534 = 0;
    DAT_00396538 = 0;
    DAT_00396580 = uVar2;
    FUN_00238070(&DAT_0039653c);
    DAT_00396520 = &PTR_FUN_0038cc88;
    DAT_00396544 = 0xffffffff;
    DAT_00396540 = uVar1;
    FUN_0022bca0(&DAT_003969c4);
    DAT_00396a34 = 0;
    DAT_003969c0 = &PTR_FUN_0038c190;
    DAT_00396a38 = 0;
    DAT_00396a3c = 0;
    DAT_00396a40 = 0;
    DAT_00396a44 = 0;
    DAT_00396a48 = 0;
    DAT_00396a4c = 0;
    DAT_003969c4 = &PTR_FUN_0038c1a4;
                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */
    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);
    FUN_0022bca0(&DAT_00396a68);
    DAT_00396ad8 = (undefined4 *)0x0;
    DAT_00396adc = 0;
    DAT_00396ae0 = 0;
    DAT_00396ae4 = 0;
    DAT_00396ae8 = 0;
    DAT_00396aec = 0;
    DAT_00396af0 = 0;
    DAT_00396a60 = &PTR_FUN_0038c77c;
    DAT_00396a68 = &PTR_FUN_0038c790;
    DAT_00396a64 = 0;
                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */
    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);
    FUN_0022bca0(&DAT_00396924);
    DAT_0039699c = 0;
    DAT_00396994 = (undefined4 *)0x0;
    DAT_00396920 = &PTR_FUN_0038c190;
    DAT_00396998 = 0;
    DAT_003969a0 = 0;
    DAT_003969a4 = 0;
    DAT_003969a8 = 0;
    DAT_003969ac = 0;
    DAT_00396924 = &PTR_FUN_0038c1a4;
                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */
    FUN_00211dd0(&DAT_00396924,&DAT_00396520);
    FUN_0022bca0(&DAT_00396884);
    DAT_003968f4 = 0;
    DAT_00396880 = &PTR_FUN_0038c190;
    DAT_003968f8 = 0;
    DAT_003968fc = 0;
    DAT_00396900 = 0;
    DAT_00396904 = 0;
    DAT_00396908 = 0;
    DAT_0039690c = 0;
    DAT_00396884 = &PTR_FUN_0038c1a4;
                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */
    FUN_00211dd0(&DAT_00396884,&DAT_00396520);
    DAT_00396930 = DAT_00396930 | 0x2000;
    DAT_00396ad8 = &DAT_003969c0;
    DAT_00396994 = &DAT_003969c0;
    if (puVar6 != (undefined *)0x0) {
      LOCK();
      DAT_00396e1c = DAT_00396e1c + 1;
      UNLOCK();
      return;
    }
    DAT_00396e1c = DAT_00396e1c + 1;
    return;
  }
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
CALL 0x000559ea
ADD ESI,0x1a5056
PUSH EBX
SUB ESP,0x3c
MOV EAX,dword ptr [ESI + 0xffffff24]
MOV dword ptr [EBP + -0x1c],EAX
TEST EAX,EAX
JZ 0x001e9fe8
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 0x001e9ffc
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 0x001e9fd9
LEA EAX,[ESI + 0x3a0]
LEA EDX,[ESI + 0xffffd09c]
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 0x00238070
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 + 0xffffdc40]
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 0x00238070
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 0x00238070
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 0x0022bca0
LEA EBX,[ESI + 0xffffd154]
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 0x00211450
LEA EAX,[ESI + 0x7ce0]
LEA EDI,[EAX + 0x8]
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [ESP],EDI
CALL 0x0022bca0
LEA EAX,[ESI + 0xffffd740]
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 0x00211450
LEA EDI,[ESI + 0x7ba0]
LEA EAX,[EDI + 0x4]
MOV dword ptr [ESP],EAX
MOV dword ptr [EBP + -0x2c],EAX
CALL 0x0022bca0
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 0x00211450
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 0x0022bca0
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 0x00211450
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 + 0xffffd0dc]
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 0x00238070
LEA EDX,[ESI + 0xffffdc80]
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 0x00238070
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 0x00238070
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 0x0022bca0
LEA EDX,[ESI + 0xffffd184]
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 0x00211dd0
LEA EAX,[ESI + 0x7a60]
LEA EDI,[EAX + 0x8]
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [ESP],EDI
CALL 0x0022bca0
LEA EAX,[ESI + 0xffffd770]
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 0x00211dd0
LEA EDI,[ESI + 0x7920]
LEA EAX,[EDI + 0x4]
MOV dword ptr [ESP],EAX
MOV dword ptr [EBP + -0x2c],EAX
CALL 0x0022bca0
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 0x00211dd0
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 0x0022bca0
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 0x00211dd0
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 0x001ea6c8
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_001e9fa0(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_00396e1c;\n  puVar6 = PTR___pthread_key_create_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00396e1c = DAT_00396e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */\n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */\n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */\n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */\n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */\n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */\n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */\n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */\n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_001e9fa0(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_00396e1c;\n  puVar6 = PTR___pthread_key_create_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00396e1c = DAT_00396e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */\n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */\n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */\n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */\n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */\n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */\n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */\n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */\n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001e9fa0(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_00396e1c;\n  puVar6 = PTR___pthread_key_create_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00396e1c = DAT_00396e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */\n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */\n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */\n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */\n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */\n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */\n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */\n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */\n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 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_00396e1c;" (assignment_expression "iVar7 = DAT_00396e1c" identifier = identifier) ;) (expression_statement "puVar6 = PTR___pthread_key_create_0038ef24;" (assignment_expression "puVar6 = PTR___pthread_key_create_0038ef24" identifier = identifier) ;) (expression_statement "puVar5 = PTR_stdout_0038eea0;" (assignment_expression "puVar5 = PTR_stdout_0038eea0" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_0038ef24 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_0038ef24 != (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_00396e1c = DAT_00396e1c + 1;" (assignment_expression "DAT_00396e1c = DAT_00396e1c + 1" identifier = (binary_expression "DAT_00396e1c + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */\n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */\n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */\n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */\n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */\n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */\n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */\n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */\n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */\n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */\n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */\n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */\n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */\n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */\n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */\n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */\n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }" { (expression_statement "DAT_00396844 = 0;" (assignment_expression "DAT_00396844 = 0" identifier = number_literal) ;) (expression_statement "DAT_0038f3a0 = 1;" (assignment_expression "DAT_0038f3a0 = 1" identifier = number_literal) ;) (expression_statement "DAT_00396848 = 0;" (assignment_expression "DAT_00396848 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)PTR_stdout_0038eea0;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stdout_0038eea0" identifier = (pointer_expression "*(undefined4 *)PTR_stdout_0038eea0" * (cast_expression "(undefined4 *)PTR_stdout_0038eea0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_0039684c = 0;" (assignment_expression "DAT_0039684c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396840 = &PTR_FUN_0038c0a4;" (assignment_expression "DAT_00396840 = &PTR_FUN_0038c0a4" identifier = (pointer_expression "&PTR_FUN_0038c0a4" & identifier)) ;) (expression_statement "DAT_00396850 = 0;" (assignment_expression "DAT_00396850 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396854 = 0;" (assignment_expression "DAT_00396854 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396858 = 0;" (assignment_expression "DAT_00396858 = 0" identifier = number_literal) ;) (expression_statement "FUN_00238070(&DAT_0039685c);" (call_expression "FUN_00238070(&DAT_0039685c)" identifier (argument_list "(&DAT_0039685c)" ( (pointer_expression "&DAT_0039685c" & identifier) ))) ;) (expression_statement "puVar4 = PTR_stdin_0038ee54;" (assignment_expression "puVar4 = PTR_stdin_0038ee54" identifier = identifier) ;) (expression_statement "DAT_00396864 = 0xffffffff;" (assignment_expression "DAT_00396864 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396804 = 0;" (assignment_expression "DAT_00396804 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)PTR_stdin_0038ee54;" (assignment_expression "uVar2 = *(undefined4 *)PTR_stdin_0038ee54" identifier = (pointer_expression "*(undefined4 *)PTR_stdin_0038ee54" * (cast_expression "(undefined4 *)PTR_stdin_0038ee54" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_00396840 = &PTR_FUN_0038cc48;" (assignment_expression "DAT_00396840 = &PTR_FUN_0038cc48" identifier = (pointer_expression "&PTR_FUN_0038cc48" & identifier)) ;) (expression_statement "DAT_00396800 = &PTR_FUN_0038c0a4;" (assignment_expression "DAT_00396800 = &PTR_FUN_0038c0a4" identifier = (pointer_expression "&PTR_FUN_0038c0a4" & identifier)) ;) (expression_statement "DAT_00396808 = 0;" (assignment_expression "DAT_00396808 = 0" identifier = number_literal) ;) (expression_statement "DAT_0039680c = 0;" (assignment_expression "DAT_0039680c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396810 = 0;" (assignment_expression "DAT_00396810 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396814 = 0;" (assignment_expression "DAT_00396814 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396818 = 0;" (assignment_expression "DAT_00396818 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396860 = uVar1;" (assignment_expression "DAT_00396860 = uVar1" identifier = identifier) ;) (expression_statement "FUN_00238070(&DAT_0039681c);" (call_expression "FUN_00238070(&DAT_0039681c)" identifier (argument_list "(&DAT_0039681c)" ( (pointer_expression "&DAT_0039681c" & identifier) ))) ;) (expression_statement "puVar3 = PTR_stderr_0038ed28;" (assignment_expression "puVar3 = PTR_stderr_0038ed28" identifier = identifier) ;) (expression_statement "DAT_00396800 = &PTR_FUN_0038cc48;" (assignment_expression "DAT_00396800 = &PTR_FUN_0038cc48" identifier = (pointer_expression "&PTR_FUN_0038cc48" & identifier)) ;) (expression_statement "uVar1 = *(undefined4 *)PTR_stderr_0038ed28;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stderr_0038ed28" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_0038ed28" * (cast_expression "(undefined4 *)PTR_stderr_0038ed28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_003967c0 = &PTR_FUN_0038c0a4;" (assignment_expression "DAT_003967c0 = &PTR_FUN_0038c0a4" identifier = (pointer_expression "&PTR_FUN_0038c0a4" & identifier)) ;) (expression_statement "DAT_00396824 = 0xffffffff;" (assignment_expression "DAT_00396824 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003967c4 = 0;" (assignment_expression "DAT_003967c4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967c8 = 0;" (assignment_expression "DAT_003967c8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967cc = 0;" (assignment_expression "DAT_003967cc = 0" identifier = number_literal) ;) (expression_statement "DAT_003967d0 = 0;" (assignment_expression "DAT_003967d0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967d4 = 0;" (assignment_expression "DAT_003967d4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967d8 = 0;" (assignment_expression "DAT_003967d8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396820 = uVar2;" (assignment_expression "DAT_00396820 = uVar2" identifier = identifier) ;) (expression_statement "FUN_00238070(&DAT_003967dc);" (call_expression "FUN_00238070(&DAT_003967dc)" identifier (argument_list "(&DAT_003967dc)" ( (pointer_expression "&DAT_003967dc" & identifier) ))) ;) (expression_statement "DAT_003967c0 = &PTR_FUN_0038cc48;" (assignment_expression "DAT_003967c0 = &PTR_FUN_0038cc48" identifier = (pointer_expression "&PTR_FUN_0038cc48" & identifier)) ;) (expression_statement "DAT_003967e4 = 0xffffffff;" (assignment_expression "DAT_003967e4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003967e0 = uVar1;" (assignment_expression "DAT_003967e0 = uVar1" identifier = identifier) ;) (expression_statement "FUN_0022bca0(&DAT_00396c44);" (call_expression "FUN_0022bca0(&DAT_00396c44)" identifier (argument_list "(&DAT_00396c44)" ( (pointer_expression "&DAT_00396c44" & identifier) ))) ;) (expression_statement "DAT_00396cb4 = 0;" (assignment_expression "DAT_00396cb4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c40 = &PTR_FUN_0038c160;" (assignment_expression "DAT_00396c40 = &PTR_FUN_0038c160" identifier = (pointer_expression "&PTR_FUN_0038c160" & identifier)) ;) (expression_statement "DAT_00396cb8 = 0;" (assignment_expression "DAT_00396cb8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cbc = 0;" (assignment_expression "DAT_00396cbc = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cc0 = 0;" (assignment_expression "DAT_00396cc0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cc4 = 0;" (assignment_expression "DAT_00396cc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cc8 = 0;" (assignment_expression "DAT_00396cc8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c44 = &PTR_FUN_0038c174;" (assignment_expression "DAT_00396c44 = &PTR_FUN_0038c174" identifier = (pointer_expression "&PTR_FUN_0038c174" & identifier)) ;) comment (expression_statement "FUN_00211450(&DAT_00396c44,&DAT_00396840);" (call_expression "FUN_00211450(&DAT_00396c44,&DAT_00396840)" identifier (argument_list "(&DAT_00396c44,&DAT_00396840)" ( (pointer_expression "&DAT_00396c44" & identifier) , (pointer_expression "&DAT_00396840" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396ce8);" (call_expression "FUN_0022bca0(&DAT_00396ce8)" identifier (argument_list "(&DAT_00396ce8)" ( (pointer_expression "&DAT_00396ce8" & identifier) ))) ;) (expression_statement "DAT_00396d58 = (undefined4 *)0x0;" (assignment_expression "DAT_00396d58 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00396d5c = 0;" (assignment_expression "DAT_00396d5c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396d60 = 0;" (assignment_expression "DAT_00396d60 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396d64 = 0;" (assignment_expression "DAT_00396d64 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396d68 = 0;" (assignment_expression "DAT_00396d68 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396d6c = 0;" (assignment_expression "DAT_00396d6c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ce0 = &PTR_FUN_0038c74c;" (assignment_expression "DAT_00396ce0 = &PTR_FUN_0038c74c" identifier = (pointer_expression "&PTR_FUN_0038c74c" & identifier)) ;) (expression_statement "DAT_00396ce8 = &PTR_FUN_0038c760;" (assignment_expression "DAT_00396ce8 = &PTR_FUN_0038c760" identifier = (pointer_expression "&PTR_FUN_0038c760" & identifier)) ;) (expression_statement "DAT_00396ce4 = 0;" (assignment_expression "DAT_00396ce4 = 0" identifier = number_literal) ;) comment (expression_statement "FUN_00211450(&DAT_00396ce8,&DAT_00396800);" (call_expression "FUN_00211450(&DAT_00396ce8,&DAT_00396800)" identifier (argument_list "(&DAT_00396ce8,&DAT_00396800)" ( (pointer_expression "&DAT_00396ce8" & identifier) , (pointer_expression "&DAT_00396800" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396ba4);" (call_expression "FUN_0022bca0(&DAT_00396ba4)" identifier (argument_list "(&DAT_00396ba4)" ( (pointer_expression "&DAT_00396ba4" & identifier) ))) ;) (expression_statement "DAT_00396c14 = (undefined4 *)0x0;" (assignment_expression "DAT_00396c14 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00396c18 = 0;" (assignment_expression "DAT_00396c18 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c1c = 0;" (assignment_expression "DAT_00396c1c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ba0 = &PTR_FUN_0038c160;" (assignment_expression "DAT_00396ba0 = &PTR_FUN_0038c160" identifier = (pointer_expression "&PTR_FUN_0038c160" & identifier)) ;) (expression_statement "DAT_00396c20 = 0;" (assignment_expression "DAT_00396c20 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c24 = 0;" (assignment_expression "DAT_00396c24 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c28 = 0;" (assignment_expression "DAT_00396c28 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ba4 = &PTR_FUN_0038c174;" (assignment_expression "DAT_00396ba4 = &PTR_FUN_0038c174" identifier = (pointer_expression "&PTR_FUN_0038c174" & identifier)) ;) comment (expression_statement "FUN_00211450(&DAT_00396ba4,&DAT_003967c0);" (call_expression "FUN_00211450(&DAT_00396ba4,&DAT_003967c0)" identifier (argument_list "(&DAT_00396ba4,&DAT_003967c0)" ( (pointer_expression "&DAT_00396ba4" & identifier) , (pointer_expression "&DAT_003967c0" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396b04);" (call_expression "FUN_0022bca0(&DAT_00396b04)" identifier (argument_list "(&DAT_00396b04)" ( (pointer_expression "&DAT_00396b04" & identifier) ))) ;) (expression_statement "DAT_00396b78 = 0;" (assignment_expression "DAT_00396b78 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b00 = &PTR_FUN_0038c160;" (assignment_expression "DAT_00396b00 = &PTR_FUN_0038c160" identifier = (pointer_expression "&PTR_FUN_0038c160" & identifier)) ;) (expression_statement "DAT_00396b74 = 0;" (assignment_expression "DAT_00396b74 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b7c = 0;" (assignment_expression "DAT_00396b7c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b80 = 0;" (assignment_expression "DAT_00396b80 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b84 = 0;" (assignment_expression "DAT_00396b84 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b88 = 0;" (assignment_expression "DAT_00396b88 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b04 = &PTR_FUN_0038c174;" (assignment_expression "DAT_00396b04 = &PTR_FUN_0038c174" identifier = (pointer_expression "&PTR_FUN_0038c174" & identifier)) ;) comment (expression_statement "FUN_00211450(&DAT_00396b04,&DAT_003967c0);" (call_expression "FUN_00211450(&DAT_00396b04,&DAT_003967c0)" identifier (argument_list "(&DAT_00396b04,&DAT_003967c0)" ( (pointer_expression "&DAT_00396b04" & identifier) , (pointer_expression "&DAT_003967c0" & identifier) ))) ;) (expression_statement "DAT_003965a4 = 0;" (assignment_expression "DAT_003965a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396bb0 = DAT_00396bb0 | 0x2000;" (assignment_expression "DAT_00396bb0 = DAT_00396bb0 | 0x2000" identifier = (binary_expression "DAT_00396bb0 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00396d58 = &DAT_00396c40;" (assignment_expression "DAT_00396d58 = &DAT_00396c40" identifier = (pointer_expression "&DAT_00396c40" & identifier)) ;) (expression_statement "DAT_00396c14 = &DAT_00396c40;" (assignment_expression "DAT_00396c14 = &DAT_00396c40" identifier = (pointer_expression "&DAT_00396c40" & identifier)) ;) (expression_statement "DAT_003965a8 = 0;" (assignment_expression "DAT_003965a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965ac = 0;" (assignment_expression "DAT_003965ac = 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_003965b0 = 0;" (assignment_expression "DAT_003965b0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965a0 = &PTR_FUN_0038c0e4;" (assignment_expression "DAT_003965a0 = &PTR_FUN_0038c0e4" identifier = (pointer_expression "&PTR_FUN_0038c0e4" & identifier)) ;) (expression_statement "DAT_003965b4 = 0;" (assignment_expression "DAT_003965b4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965b8 = 0;" (assignment_expression "DAT_003965b8 = 0" identifier = number_literal) ;) (expression_statement "FUN_00238070(&DAT_003965bc);" (call_expression "FUN_00238070(&DAT_003965bc)" identifier (argument_list "(&DAT_003965bc)" ( (pointer_expression "&DAT_003965bc" & identifier) ))) ;) (expression_statement "DAT_003965c4 = 0xffffffff;" (assignment_expression "DAT_003965c4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396564 = 0;" (assignment_expression "DAT_00396564 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965a0 = &PTR_FUN_0038cc88;" (assignment_expression "DAT_003965a0 = &PTR_FUN_0038cc88" identifier = (pointer_expression "&PTR_FUN_0038cc88" & identifier)) ;) (expression_statement "DAT_00396568 = 0;" (assignment_expression "DAT_00396568 = 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_0039656c = 0;" (assignment_expression "DAT_0039656c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396560 = &PTR_FUN_0038c0e4;" (assignment_expression "DAT_00396560 = &PTR_FUN_0038c0e4" identifier = (pointer_expression "&PTR_FUN_0038c0e4" & identifier)) ;) (expression_statement "DAT_00396570 = 0;" (assignment_expression "DAT_00396570 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396574 = 0;" (assignment_expression "DAT_00396574 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396578 = 0;" (assignment_expression "DAT_00396578 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965c0 = uVar1;" (assignment_expression "DAT_003965c0 = uVar1" identifier = identifier) ;) (expression_statement "FUN_00238070(&DAT_0039657c);" (call_expression "FUN_00238070(&DAT_0039657c)" identifier (argument_list "(&DAT_0039657c)" ( (pointer_expression "&DAT_0039657c" & identifier) ))) ;) (expression_statement "DAT_00396560 = &PTR_FUN_0038cc88;" (assignment_expression "DAT_00396560 = &PTR_FUN_0038cc88" identifier = (pointer_expression "&PTR_FUN_0038cc88" & 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_00396584 = 0xffffffff;" (assignment_expression "DAT_00396584 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396520 = &PTR_FUN_0038c0e4;" (assignment_expression "DAT_00396520 = &PTR_FUN_0038c0e4" identifier = (pointer_expression "&PTR_FUN_0038c0e4" & identifier)) ;) (expression_statement "DAT_00396524 = 0;" (assignment_expression "DAT_00396524 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396528 = 0;" (assignment_expression "DAT_00396528 = 0" identifier = number_literal) ;) (expression_statement "DAT_0039652c = 0;" (assignment_expression "DAT_0039652c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396530 = 0;" (assignment_expression "DAT_00396530 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396534 = 0;" (assignment_expression "DAT_00396534 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396538 = 0;" (assignment_expression "DAT_00396538 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396580 = uVar2;" (assignment_expression "DAT_00396580 = uVar2" identifier = identifier) ;) (expression_statement "FUN_00238070(&DAT_0039653c);" (call_expression "FUN_00238070(&DAT_0039653c)" identifier (argument_list "(&DAT_0039653c)" ( (pointer_expression "&DAT_0039653c" & identifier) ))) ;) (expression_statement "DAT_00396520 = &PTR_FUN_0038cc88;" (assignment_expression "DAT_00396520 = &PTR_FUN_0038cc88" identifier = (pointer_expression "&PTR_FUN_0038cc88" & identifier)) ;) (expression_statement "DAT_00396544 = 0xffffffff;" (assignment_expression "DAT_00396544 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396540 = uVar1;" (assignment_expression "DAT_00396540 = uVar1" identifier = identifier) ;) (expression_statement "FUN_0022bca0(&DAT_003969c4);" (call_expression "FUN_0022bca0(&DAT_003969c4)" identifier (argument_list "(&DAT_003969c4)" ( (pointer_expression "&DAT_003969c4" & identifier) ))) ;) (expression_statement "DAT_00396a34 = 0;" (assignment_expression "DAT_00396a34 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969c0 = &PTR_FUN_0038c190;" (assignment_expression "DAT_003969c0 = &PTR_FUN_0038c190" identifier = (pointer_expression "&PTR_FUN_0038c190" & identifier)) ;) (expression_statement "DAT_00396a38 = 0;" (assignment_expression "DAT_00396a38 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a3c = 0;" (assignment_expression "DAT_00396a3c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a40 = 0;" (assignment_expression "DAT_00396a40 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a44 = 0;" (assignment_expression "DAT_00396a44 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a48 = 0;" (assignment_expression "DAT_00396a48 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a4c = 0;" (assignment_expression "DAT_00396a4c = 0" identifier = number_literal) ;) (expression_statement "DAT_003969c4 = &PTR_FUN_0038c1a4;" (assignment_expression "DAT_003969c4 = &PTR_FUN_0038c1a4" identifier = (pointer_expression "&PTR_FUN_0038c1a4" & identifier)) ;) comment (expression_statement "FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);" (call_expression "FUN_00211dd0(&DAT_003969c4,&DAT_003965a0)" identifier (argument_list "(&DAT_003969c4,&DAT_003965a0)" ( (pointer_expression "&DAT_003969c4" & identifier) , (pointer_expression "&DAT_003965a0" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396a68);" (call_expression "FUN_0022bca0(&DAT_00396a68)" identifier (argument_list "(&DAT_00396a68)" ( (pointer_expression "&DAT_00396a68" & identifier) ))) ;) (expression_statement "DAT_00396ad8 = (undefined4 *)0x0;" (assignment_expression "DAT_00396ad8 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00396adc = 0;" (assignment_expression "DAT_00396adc = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ae0 = 0;" (assignment_expression "DAT_00396ae0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ae4 = 0;" (assignment_expression "DAT_00396ae4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ae8 = 0;" (assignment_expression "DAT_00396ae8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396aec = 0;" (assignment_expression "DAT_00396aec = 0" identifier = number_literal) ;) (expression_statement "DAT_00396af0 = 0;" (assignment_expression "DAT_00396af0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a60 = &PTR_FUN_0038c77c;" (assignment_expression "DAT_00396a60 = &PTR_FUN_0038c77c" identifier = (pointer_expression "&PTR_FUN_0038c77c" & identifier)) ;) (expression_statement "DAT_00396a68 = &PTR_FUN_0038c790;" (assignment_expression "DAT_00396a68 = &PTR_FUN_0038c790" identifier = (pointer_expression "&PTR_FUN_0038c790" & identifier)) ;) (expression_statement "DAT_00396a64 = 0;" (assignment_expression "DAT_00396a64 = 0" identifier = number_literal) ;) comment (expression_statement "FUN_00211dd0(&DAT_00396a68,&DAT_00396560);" (call_expression "FUN_00211dd0(&DAT_00396a68,&DAT_00396560)" identifier (argument_list "(&DAT_00396a68,&DAT_00396560)" ( (pointer_expression "&DAT_00396a68" & identifier) , (pointer_expression "&DAT_00396560" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396924);" (call_expression "FUN_0022bca0(&DAT_00396924)" identifier (argument_list "(&DAT_00396924)" ( (pointer_expression "&DAT_00396924" & identifier) ))) ;) (expression_statement "DAT_0039699c = 0;" (assignment_expression "DAT_0039699c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396994 = (undefined4 *)0x0;" (assignment_expression "DAT_00396994 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00396920 = &PTR_FUN_0038c190;" (assignment_expression "DAT_00396920 = &PTR_FUN_0038c190" identifier = (pointer_expression "&PTR_FUN_0038c190" & identifier)) ;) (expression_statement "DAT_00396998 = 0;" (assignment_expression "DAT_00396998 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969a0 = 0;" (assignment_expression "DAT_003969a0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969a4 = 0;" (assignment_expression "DAT_003969a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969a8 = 0;" (assignment_expression "DAT_003969a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969ac = 0;" (assignment_expression "DAT_003969ac = 0" identifier = number_literal) ;) (expression_statement "DAT_00396924 = &PTR_FUN_0038c1a4;" (assignment_expression "DAT_00396924 = &PTR_FUN_0038c1a4" identifier = (pointer_expression "&PTR_FUN_0038c1a4" & identifier)) ;) comment (expression_statement "FUN_00211dd0(&DAT_00396924,&DAT_00396520);" (call_expression "FUN_00211dd0(&DAT_00396924,&DAT_00396520)" identifier (argument_list "(&DAT_00396924,&DAT_00396520)" ( (pointer_expression "&DAT_00396924" & identifier) , (pointer_expression "&DAT_00396520" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396884);" (call_expression "FUN_0022bca0(&DAT_00396884)" identifier (argument_list "(&DAT_00396884)" ( (pointer_expression "&DAT_00396884" & identifier) ))) ;) (expression_statement "DAT_003968f4 = 0;" (assignment_expression "DAT_003968f4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396880 = &PTR_FUN_0038c190;" (assignment_expression "DAT_00396880 = &PTR_FUN_0038c190" identifier = (pointer_expression "&PTR_FUN_0038c190" & identifier)) ;) (expression_statement "DAT_003968f8 = 0;" (assignment_expression "DAT_003968f8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003968fc = 0;" (assignment_expression "DAT_003968fc = 0" identifier = number_literal) ;) (expression_statement "DAT_00396900 = 0;" (assignment_expression "DAT_00396900 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396904 = 0;" (assignment_expression "DAT_00396904 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396908 = 0;" (assignment_expression "DAT_00396908 = 0" identifier = number_literal) ;) (expression_statement "DAT_0039690c = 0;" (assignment_expression "DAT_0039690c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396884 = &PTR_FUN_0038c1a4;" (assignment_expression "DAT_00396884 = &PTR_FUN_0038c1a4" identifier = (pointer_expression "&PTR_FUN_0038c1a4" & identifier)) ;) comment (expression_statement "FUN_00211dd0(&DAT_00396884,&DAT_00396520);" (call_expression "FUN_00211dd0(&DAT_00396884,&DAT_00396520)" identifier (argument_list "(&DAT_00396884,&DAT_00396520)" ( (pointer_expression "&DAT_00396884" & identifier) , (pointer_expression "&DAT_00396520" & identifier) ))) ;) (expression_statement "DAT_00396930 = DAT_00396930 | 0x2000;" (assignment_expression "DAT_00396930 = DAT_00396930 | 0x2000" identifier = (binary_expression "DAT_00396930 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00396ad8 = &DAT_003969c0;" (assignment_expression "DAT_00396ad8 = &DAT_003969c0" identifier = (pointer_expression "&DAT_003969c0" & identifier)) ;) (expression_statement "DAT_00396994 = &DAT_003969c0;" (assignment_expression "DAT_00396994 = &DAT_003969c0" identifier = (pointer_expression "&DAT_003969c0" & identifier)) ;) (if_statement "if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 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_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00396e1c = DAT_00396e1c + 1;" (assignment_expression "DAT_00396e1c = DAT_00396e1c + 1" identifier = (binary_expression "DAT_00396e1c + 1" identifier + number_literal)) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "DAT_00396e1c = DAT_00396e1c + 1;" (assignment_expression "DAT_00396e1c = DAT_00396e1c + 1" identifier = (binary_expression "DAT_00396e1c + 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_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _S_refcount = _S_refcount + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    _S_synced_with_stdio = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    __gnu_internal::buf_cout_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    locale::locale((locale *)&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    __gnu_internal::buf_cin_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    locale::locale((locale *)&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    __gnu_internal::buf_cerr_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    locale::locale((locale *)&DAT_003967dc);\n    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    ios_base((ios_base *)&DAT_00396c44);\n    _DAT_00396cb4 = 0;\n    cout = 0x38c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = 0x38c174;\n                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */\n    ios::init((ios *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync);\n    ios_base((ios_base *)&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    _DAT_00396d5c = 0;\n    _DAT_00396d60 = 0;\n    _DAT_00396d64 = 0;\n    _DAT_00396d68 = 0;\n    _DAT_00396d6c = 0;\n    cin = 0x38c74c;\n    DAT_00396ce8 = 0x38c760;\n    DAT_00396ce4 = 0;\n                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */\n    ios::init((ios *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync);\n    ios_base((ios_base *)&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    _DAT_00396c18 = 0;\n    _DAT_00396c1c = 0;\n    cerr = 0x38c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = 0x38c174;\n                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */\n    ios::init((ios *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    ios_base((ios_base *)&DAT_00396b04);\n    _DAT_00396b78 = 0;\n    clog = 0x38c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = 0x38c174;\n                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */\n    ios::init((ios *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &cout;\n    DAT_00396c14 = &cout;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    locale::locale((locale *)&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    locale::locale((locale *)&DAT_0039657c);\n    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    locale::locale((locale *)&DAT_0039653c);\n    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    ios_base((ios_base *)&DAT_003969c4);\n    _DAT_00396a34 = 0;\n    wcout = 0x38c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = 0x38c1a4;\n                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */\n    wios::init((wios *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);\n    ios_base((ios_base *)&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    _DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    _DAT_00396ae4 = 0;\n    _DAT_00396ae8 = 0;\n    _DAT_00396aec = 0;\n    _DAT_00396af0 = 0;\n    wcin = 0x38c77c;\n    DAT_00396a68 = 0x38c790;\n    DAT_00396a64 = 0;\n                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */\n    wios::init((wios *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);\n    ios_base((ios_base *)&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    wcerr = 0x38c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = 0x38c1a4;\n                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */\n    wios::init((wios *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    ios_base((ios_base *)&DAT_00396884);\n    _DAT_003968f4 = 0;\n    wclog = 0x38c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = 0x38c1a4;\n                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */\n    wios::init((wios *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &wcout;\n    DAT_00396994 = &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_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _S_refcount = _S_refcount + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    _S_synced_with_stdio = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    __gnu_internal::buf_cout_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    locale::locale((locale *)&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    __gnu_internal::buf_cin_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    locale::locale((locale *)&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    __gnu_internal::buf_cerr_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    locale::locale((locale *)&DAT_003967dc);\n    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    ios_base((ios_base *)&DAT_00396c44);\n    _DAT_00396cb4 = 0;\n    cout = 0x38c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = 0x38c174;\n                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */\n    ios::init((ios *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync);\n    ios_base((ios_base *)&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    _DAT_00396d5c = 0;\n    _DAT_00396d60 = 0;\n    _DAT_00396d64 = 0;\n    _DAT_00396d68 = 0;\n    _DAT_00396d6c = 0;\n    cin = 0x38c74c;\n    DAT_00396ce8 = 0x38c760;\n    DAT_00396ce4 = 0;\n                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */\n    ios::init((ios *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync);\n    ios_base((ios_base *)&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    _DAT_00396c18 = 0;\n    _DAT_00396c1c = 0;\n    cerr = 0x38c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = 0x38c174;\n                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */\n    ios::init((ios *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    ios_base((ios_base *)&DAT_00396b04);\n    _DAT_00396b78 = 0;\n    clog = 0x38c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = 0x38c174;\n                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */\n    ios::init((ios *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &cout;\n    DAT_00396c14 = &cout;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    locale::locale((locale *)&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    locale::locale((locale *)&DAT_0039657c);\n    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    locale::locale((locale *)&DAT_0039653c);\n    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    ios_base((ios_base *)&DAT_003969c4);\n    _DAT_00396a34 = 0;\n    wcout = 0x38c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = 0x38c1a4;\n                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */\n    wios::init((wios *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);\n    ios_base((ios_base *)&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    _DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    _DAT_00396ae4 = 0;\n    _DAT_00396ae8 = 0;\n    _DAT_00396aec = 0;\n    _DAT_00396af0 = 0;\n    wcin = 0x38c77c;\n    DAT_00396a68 = 0x38c790;\n    DAT_00396a64 = 0;\n                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */\n    wios::init((wios *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);\n    ios_base((ios_base *)&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    wcerr = 0x38c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = 0x38c1a4;\n                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */\n    wios::init((wios *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    ios_base((ios_base *)&DAT_00396884);\n    _DAT_003968f4 = 0;\n    wclog = 0x38c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = 0x38c1a4;\n                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */\n    wios::init((wios *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &wcout;\n    DAT_00396994 = &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_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  _S_refcount = _S_refcount + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    _S_synced_with_stdio = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    __gnu_internal::buf_cout_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    locale::locale((locale *)&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    __gnu_internal::buf_cin_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    locale::locale((locale *)&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    __gnu_internal::buf_cerr_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    locale::locale((locale *)&DAT_003967dc);\n    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    ios_base((ios_base *)&DAT_00396c44);\n    _DAT_00396cb4 = 0;\n    cout = 0x38c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = 0x38c174;\n                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */\n    ios::init((ios *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync);\n    ios_base((ios_base *)&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    _DAT_00396d5c = 0;\n    _DAT_00396d60 = 0;\n    _DAT_00396d64 = 0;\n    _DAT_00396d68 = 0;\n    _DAT_00396d6c = 0;\n    cin = 0x38c74c;\n    DAT_00396ce8 = 0x38c760;\n    DAT_00396ce4 = 0;\n                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */\n    ios::init((ios *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync);\n    ios_base((ios_base *)&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    _DAT_00396c18 = 0;\n    _DAT_00396c1c = 0;\n    cerr = 0x38c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = 0x38c174;\n                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */\n    ios::init((ios *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    ios_base((ios_base *)&DAT_00396b04);\n    _DAT_00396b78 = 0;\n    clog = 0x38c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = 0x38c174;\n                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */\n    ios::init((ios *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &cout;\n    DAT_00396c14 = &cout;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    locale::locale((locale *)&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    locale::locale((locale *)&DAT_0039657c);\n    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    locale::locale((locale *)&DAT_0039653c);\n    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    ios_base((ios_base *)&DAT_003969c4);\n    _DAT_00396a34 = 0;\n    wcout = 0x38c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = 0x38c1a4;\n                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */\n    wios::init((wios *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);\n    ios_base((ios_base *)&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    _DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    _DAT_00396ae4 = 0;\n    _DAT_00396ae8 = 0;\n    _DAT_00396aec = 0;\n    _DAT_00396af0 = 0;\n    wcin = 0x38c77c;\n    DAT_00396a68 = 0x38c790;\n    DAT_00396a64 = 0;\n                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */\n    wios::init((wios *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);\n    ios_base((ios_base *)&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    wcerr = 0x38c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = 0x38c1a4;\n                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */\n    wios::init((wios *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    ios_base((ios_base *)&DAT_00396884);\n    _DAT_003968f4 = 0;\n    wclog = 0x38c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = 0x38c1a4;\n                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */\n    wios::init((wios *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &wcout;\n    DAT_00396994 = &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_0038ef24;" (assignment_expression "puVar6 = PTR___pthread_key_create_0038ef24" identifier = identifier) ;) (expression_statement "puVar5 = PTR_stdout_0038eea0;" (assignment_expression "puVar5 = PTR_stdout_0038eea0" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_0038ef24 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_0038ef24 != (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_00396844 = 0;\n    _S_synced_with_stdio = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    __gnu_internal::buf_cout_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    locale::locale((locale *)&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    __gnu_internal::buf_cin_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    locale::locale((locale *)&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    __gnu_internal::buf_cerr_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    locale::locale((locale *)&DAT_003967dc);\n    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    ios_base((ios_base *)&DAT_00396c44);\n    _DAT_00396cb4 = 0;\n    cout = 0x38c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = 0x38c174;\n                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */\n    ios::init((ios *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync);\n    ios_base((ios_base *)&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    _DAT_00396d5c = 0;\n    _DAT_00396d60 = 0;\n    _DAT_00396d64 = 0;\n    _DAT_00396d68 = 0;\n    _DAT_00396d6c = 0;\n    cin = 0x38c74c;\n    DAT_00396ce8 = 0x38c760;\n    DAT_00396ce4 = 0;\n                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */\n    ios::init((ios *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync);\n    ios_base((ios_base *)&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    _DAT_00396c18 = 0;\n    _DAT_00396c1c = 0;\n    cerr = 0x38c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = 0x38c174;\n                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */\n    ios::init((ios *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    ios_base((ios_base *)&DAT_00396b04);\n    _DAT_00396b78 = 0;\n    clog = 0x38c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = 0x38c174;\n                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */\n    ios::init((ios *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &cout;\n    DAT_00396c14 = &cout;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    locale::locale((locale *)&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    locale::locale((locale *)&DAT_0039657c);\n    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    locale::locale((locale *)&DAT_0039653c);\n    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    ios_base((ios_base *)&DAT_003969c4);\n    _DAT_00396a34 = 0;\n    wcout = 0x38c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = 0x38c1a4;\n                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */\n    wios::init((wios *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);\n    ios_base((ios_base *)&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    _DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    _DAT_00396ae4 = 0;\n    _DAT_00396ae8 = 0;\n    _DAT_00396aec = 0;\n    _DAT_00396af0 = 0;\n    wcin = 0x38c77c;\n    DAT_00396a68 = 0x38c790;\n    DAT_00396a64 = 0;\n                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */\n    wios::init((wios *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);\n    ios_base((ios_base *)&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    wcerr = 0x38c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = 0x38c1a4;\n                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */\n    wios::init((wios *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    ios_base((ios_base *)&DAT_00396884);\n    _DAT_003968f4 = 0;\n    wclog = 0x38c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = 0x38c1a4;\n                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */\n    wios::init((wios *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &wcout;\n    DAT_00396994 = &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_00396844 = 0;\n    _S_synced_with_stdio = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    __gnu_internal::buf_cout_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    locale::locale((locale *)&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    __gnu_internal::buf_cin_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    locale::locale((locale *)&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    __gnu_internal::buf_cerr_sync = &PTR__streambuf_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    locale::locale((locale *)&DAT_003967dc);\n    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    ios_base((ios_base *)&DAT_00396c44);\n    _DAT_00396cb4 = 0;\n    cout = 0x38c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = 0x38c174;\n                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */\n    ios::init((ios *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync);\n    ios_base((ios_base *)&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    _DAT_00396d5c = 0;\n    _DAT_00396d60 = 0;\n    _DAT_00396d64 = 0;\n    _DAT_00396d68 = 0;\n    _DAT_00396d6c = 0;\n    cin = 0x38c74c;\n    DAT_00396ce8 = 0x38c760;\n    DAT_00396ce4 = 0;\n                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */\n    ios::init((ios *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync);\n    ios_base((ios_base *)&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    _DAT_00396c18 = 0;\n    _DAT_00396c1c = 0;\n    cerr = 0x38c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = 0x38c174;\n                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */\n    ios::init((ios *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    ios_base((ios_base *)&DAT_00396b04);\n    _DAT_00396b78 = 0;\n    clog = 0x38c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = 0x38c174;\n                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */\n    ios::init((ios *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &cout;\n    DAT_00396c14 = &cout;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    locale::locale((locale *)&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    locale::locale((locale *)&DAT_0039657c);\n    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    locale::locale((locale *)&DAT_0039653c);\n    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    ios_base((ios_base *)&DAT_003969c4);\n    _DAT_00396a34 = 0;\n    wcout = 0x38c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = 0x38c1a4;\n                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */\n    wios::init((wios *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);\n    ios_base((ios_base *)&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    _DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    _DAT_00396ae4 = 0;\n    _DAT_00396ae8 = 0;\n    _DAT_00396aec = 0;\n    _DAT_00396af0 = 0;\n    wcin = 0x38c77c;\n    DAT_00396a68 = 0x38c790;\n    DAT_00396a64 = 0;\n                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */\n    wios::init((wios *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);\n    ios_base((ios_base *)&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    wcerr = 0x38c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = 0x38c1a4;\n                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */\n    wios::init((wios *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    ios_base((ios_base *)&DAT_00396884);\n    _DAT_003968f4 = 0;\n    wclog = 0x38c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = 0x38c1a4;\n                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */\n    wios::init((wios *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &wcout;\n    DAT_00396994 = &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_00396844 = 0;" (assignment_expression "DAT_00396844 = 0" identifier = number_literal) ;) (expression_statement "_S_synced_with_stdio = 1;" (assignment_expression "_S_synced_with_stdio = 1" identifier = number_literal) ;) (expression_statement "DAT_00396848 = 0;" (assignment_expression "DAT_00396848 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)PTR_stdout_0038eea0;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stdout_0038eea0" identifier = (pointer_expression "*(undefined4 *)PTR_stdout_0038eea0" * (cast_expression "(undefined4 *)PTR_stdout_0038eea0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_0039684c = 0;" (assignment_expression "DAT_0039684c = 0" identifier = number_literal) ;) (labeled_statement "__gnu_internal::buf_cout_sync = &PTR__streambuf_0038c0a4;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cout_sync = &PTR__streambuf_0038c0a4;" (assignment_expression "buf_cout_sync = &PTR__streambuf_0038c0a4" identifier = (pointer_expression "&PTR__streambuf_0038c0a4" & identifier)) ;)) (expression_statement "DAT_00396850 = 0;" (assignment_expression "DAT_00396850 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396854 = 0;" (assignment_expression "DAT_00396854 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396858 = 0;" (assignment_expression "DAT_00396858 = 0" identifier = number_literal) ;) (labeled_statement "locale::locale((locale *)&DAT_0039685c);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_0039685c);" (call_expression "locale((locale *)&DAT_0039685c)" identifier (argument_list "((locale *)&DAT_0039685c)" ( (cast_expression "(locale *)&DAT_0039685c" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0039685c" & identifier)) ))) ;)) (expression_statement "puVar4 = PTR_stdin_0038ee54;" (assignment_expression "puVar4 = PTR_stdin_0038ee54" identifier = identifier) ;) (expression_statement "DAT_00396864 = 0xffffffff;" (assignment_expression "DAT_00396864 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396804 = 0;" (assignment_expression "DAT_00396804 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)PTR_stdin_0038ee54;" (assignment_expression "uVar2 = *(undefined4 *)PTR_stdin_0038ee54" identifier = (pointer_expression "*(undefined4 *)PTR_stdin_0038ee54" * (cast_expression "(undefined4 *)PTR_stdin_0038ee54" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "__gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_0038cc48;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cout_sync = &PTR__stdio_sync_filebuf_0038cc48;" (assignment_expression "buf_cout_sync = &PTR__stdio_sync_filebuf_0038cc48" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_0038cc48" & identifier)) ;)) (labeled_statement "__gnu_internal::buf_cin_sync = &PTR__streambuf_0038c0a4;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cin_sync = &PTR__streambuf_0038c0a4;" (assignment_expression "buf_cin_sync = &PTR__streambuf_0038c0a4" identifier = (pointer_expression "&PTR__streambuf_0038c0a4" & identifier)) ;)) (expression_statement "DAT_00396808 = 0;" (assignment_expression "DAT_00396808 = 0" identifier = number_literal) ;) (expression_statement "DAT_0039680c = 0;" (assignment_expression "DAT_0039680c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396810 = 0;" (assignment_expression "DAT_00396810 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396814 = 0;" (assignment_expression "DAT_00396814 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396818 = 0;" (assignment_expression "DAT_00396818 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396860 = uVar1;" (assignment_expression "DAT_00396860 = uVar1" identifier = identifier) ;) (labeled_statement "locale::locale((locale *)&DAT_0039681c);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_0039681c);" (call_expression "locale((locale *)&DAT_0039681c)" identifier (argument_list "((locale *)&DAT_0039681c)" ( (cast_expression "(locale *)&DAT_0039681c" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0039681c" & identifier)) ))) ;)) (expression_statement "puVar3 = PTR_stderr_0038ed28;" (assignment_expression "puVar3 = PTR_stderr_0038ed28" identifier = identifier) ;) (labeled_statement "__gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_0038cc48;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cin_sync = &PTR__stdio_sync_filebuf_0038cc48;" (assignment_expression "buf_cin_sync = &PTR__stdio_sync_filebuf_0038cc48" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_0038cc48" & identifier)) ;)) (expression_statement "uVar1 = *(undefined4 *)PTR_stderr_0038ed28;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stderr_0038ed28" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_0038ed28" * (cast_expression "(undefined4 *)PTR_stderr_0038ed28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "__gnu_internal::buf_cerr_sync = &PTR__streambuf_0038c0a4;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cerr_sync = &PTR__streambuf_0038c0a4;" (assignment_expression "buf_cerr_sync = &PTR__streambuf_0038c0a4" identifier = (pointer_expression "&PTR__streambuf_0038c0a4" & identifier)) ;)) (expression_statement "DAT_00396824 = 0xffffffff;" (assignment_expression "DAT_00396824 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003967c4 = 0;" (assignment_expression "DAT_003967c4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967c8 = 0;" (assignment_expression "DAT_003967c8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967cc = 0;" (assignment_expression "DAT_003967cc = 0" identifier = number_literal) ;) (expression_statement "DAT_003967d0 = 0;" (assignment_expression "DAT_003967d0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967d4 = 0;" (assignment_expression "DAT_003967d4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967d8 = 0;" (assignment_expression "DAT_003967d8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396820 = uVar2;" (assignment_expression "DAT_00396820 = uVar2" identifier = identifier) ;) (labeled_statement "locale::locale((locale *)&DAT_003967dc);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_003967dc);" (call_expression "locale((locale *)&DAT_003967dc)" identifier (argument_list "((locale *)&DAT_003967dc)" ( (cast_expression "(locale *)&DAT_003967dc" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_003967dc" & identifier)) ))) ;)) (labeled_statement "__gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_0038cc48;" statement_identifier : (ERROR ":" :) (expression_statement "buf_cerr_sync = &PTR__stdio_sync_filebuf_0038cc48;" (assignment_expression "buf_cerr_sync = &PTR__stdio_sync_filebuf_0038cc48" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_0038cc48" & identifier)) ;)) (expression_statement "DAT_003967e4 = 0xffffffff;" (assignment_expression "DAT_003967e4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003967e0 = uVar1;" (assignment_expression "DAT_003967e0 = uVar1" identifier = identifier) ;) (expression_statement "ios_base((ios_base *)&DAT_00396c44);" (call_expression "ios_base((ios_base *)&DAT_00396c44)" identifier (argument_list "((ios_base *)&DAT_00396c44)" ( (cast_expression "(ios_base *)&DAT_00396c44" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396c44" & identifier)) ))) ;) (expression_statement "_DAT_00396cb4 = 0;" (assignment_expression "_DAT_00396cb4 = 0" identifier = number_literal) ;) (expression_statement "cout = 0x38c160;" (assignment_expression "cout = 0x38c160" identifier = number_literal) ;) (expression_statement "DAT_00396cb8 = 0;" (assignment_expression "DAT_00396cb8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cbc = 0;" (assignment_expression "DAT_00396cbc = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cc0 = 0;" (assignment_expression "DAT_00396cc0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cc4 = 0;" (assignment_expression "DAT_00396cc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cc8 = 0;" (assignment_expression "DAT_00396cc8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c44 = 0x38c174;" (assignment_expression "DAT_00396c44 = 0x38c174" identifier = number_literal) ;) comment (labeled_statement "ios::init((ios *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((ios *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync);" (call_expression "init((ios *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync)" identifier (argument_list "((ios *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync)" ( (cast_expression "(ios *)&DAT_00396c44" ( (type_descriptor "ios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396c44" & 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_00396ce8);" (call_expression "ios_base((ios_base *)&DAT_00396ce8)" identifier (argument_list "((ios_base *)&DAT_00396ce8)" ( (cast_expression "(ios_base *)&DAT_00396ce8" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396ce8" & identifier)) ))) ;) (expression_statement "DAT_00396d58 = (undefined4 *)0x0;" (assignment_expression "DAT_00396d58 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_DAT_00396d5c = 0;" (assignment_expression "_DAT_00396d5c = 0" identifier = number_literal) ;) (expression_statement "_DAT_00396d60 = 0;" (assignment_expression "_DAT_00396d60 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00396d64 = 0;" (assignment_expression "_DAT_00396d64 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00396d68 = 0;" (assignment_expression "_DAT_00396d68 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00396d6c = 0;" (assignment_expression "_DAT_00396d6c = 0" identifier = number_literal) ;) (expression_statement "cin = 0x38c74c;" (assignment_expression "cin = 0x38c74c" identifier = number_literal) ;) (expression_statement "DAT_00396ce8 = 0x38c760;" (assignment_expression "DAT_00396ce8 = 0x38c760" identifier = number_literal) ;) (expression_statement "DAT_00396ce4 = 0;" (assignment_expression "DAT_00396ce4 = 0" identifier = number_literal) ;) comment (labeled_statement "ios::init((ios *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((ios *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync);" (call_expression "init((ios *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync)" identifier (argument_list "((ios *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync)" ( (cast_expression "(ios *)&DAT_00396ce8" ( (type_descriptor "ios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396ce8" & 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_00396ba4);" (call_expression "ios_base((ios_base *)&DAT_00396ba4)" identifier (argument_list "((ios_base *)&DAT_00396ba4)" ( (cast_expression "(ios_base *)&DAT_00396ba4" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396ba4" & identifier)) ))) ;) (expression_statement "DAT_00396c14 = (undefined4 *)0x0;" (assignment_expression "DAT_00396c14 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_DAT_00396c18 = 0;" (assignment_expression "_DAT_00396c18 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00396c1c = 0;" (assignment_expression "_DAT_00396c1c = 0" identifier = number_literal) ;) (expression_statement "cerr = 0x38c160;" (assignment_expression "cerr = 0x38c160" identifier = number_literal) ;) (expression_statement "DAT_00396c20 = 0;" (assignment_expression "DAT_00396c20 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c24 = 0;" (assignment_expression "DAT_00396c24 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c28 = 0;" (assignment_expression "DAT_00396c28 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ba4 = 0x38c174;" (assignment_expression "DAT_00396ba4 = 0x38c174" identifier = number_literal) ;) comment (labeled_statement "ios::init((ios *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((ios *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);" (call_expression "init((ios *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync)" identifier (argument_list "((ios *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync)" ( (cast_expression "(ios *)&DAT_00396ba4" ( (type_descriptor "ios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396ba4" & 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_00396b04);" (call_expression "ios_base((ios_base *)&DAT_00396b04)" identifier (argument_list "((ios_base *)&DAT_00396b04)" ( (cast_expression "(ios_base *)&DAT_00396b04" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396b04" & identifier)) ))) ;) (expression_statement "_DAT_00396b78 = 0;" (assignment_expression "_DAT_00396b78 = 0" identifier = number_literal) ;) (expression_statement "clog = 0x38c160;" (assignment_expression "clog = 0x38c160" identifier = number_literal) ;) (expression_statement "DAT_00396b74 = 0;" (assignment_expression "DAT_00396b74 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b7c = 0;" (assignment_expression "DAT_00396b7c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b80 = 0;" (assignment_expression "DAT_00396b80 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b84 = 0;" (assignment_expression "DAT_00396b84 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b88 = 0;" (assignment_expression "DAT_00396b88 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b04 = 0x38c174;" (assignment_expression "DAT_00396b04 = 0x38c174" identifier = number_literal) ;) comment (labeled_statement "ios::init((ios *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((ios *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync);" (call_expression "init((ios *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync)" identifier (argument_list "((ios *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync)" ( (cast_expression "(ios *)&DAT_00396b04" ( (type_descriptor "ios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396b04" & 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_003965a4 = 0;" (assignment_expression "DAT_003965a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396bb0 = DAT_00396bb0 | 0x2000;" (assignment_expression "DAT_00396bb0 = DAT_00396bb0 | 0x2000" identifier = (binary_expression "DAT_00396bb0 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00396d58 = &cout;" (assignment_expression "DAT_00396d58 = &cout" identifier = (pointer_expression "&cout" & identifier)) ;) (expression_statement "DAT_00396c14 = &cout;" (assignment_expression "DAT_00396c14 = &cout" identifier = (pointer_expression "&cout" & identifier)) ;) (expression_statement "DAT_003965a8 = 0;" (assignment_expression "DAT_003965a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965ac = 0;" (assignment_expression "DAT_003965ac = 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_003965b0 = 0;" (assignment_expression "DAT_003965b0 = 0" identifier = number_literal) ;) (labeled_statement "__gnu_internal::buf_wcout_sync = &PTR__wstreambuf_0038c0e4;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcout_sync = &PTR__wstreambuf_0038c0e4;" (assignment_expression "buf_wcout_sync = &PTR__wstreambuf_0038c0e4" identifier = (pointer_expression "&PTR__wstreambuf_0038c0e4" & identifier)) ;)) (expression_statement "DAT_003965b4 = 0;" (assignment_expression "DAT_003965b4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965b8 = 0;" (assignment_expression "DAT_003965b8 = 0" identifier = number_literal) ;) (labeled_statement "locale::locale((locale *)&DAT_003965bc);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_003965bc);" (call_expression "locale((locale *)&DAT_003965bc)" identifier (argument_list "((locale *)&DAT_003965bc)" ( (cast_expression "(locale *)&DAT_003965bc" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_003965bc" & identifier)) ))) ;)) (expression_statement "DAT_003965c4 = 0xffffffff;" (assignment_expression "DAT_003965c4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396564 = 0;" (assignment_expression "DAT_00396564 = 0" identifier = number_literal) ;) (labeled_statement "__gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_0038cc88;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcout_sync = &PTR__stdio_sync_filebuf_0038cc88;" (assignment_expression "buf_wcout_sync = &PTR__stdio_sync_filebuf_0038cc88" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_0038cc88" & identifier)) ;)) (expression_statement "DAT_00396568 = 0;" (assignment_expression "DAT_00396568 = 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_0039656c = 0;" (assignment_expression "DAT_0039656c = 0" identifier = number_literal) ;) (labeled_statement "__gnu_internal::buf_wcin_sync = &PTR__wstreambuf_0038c0e4;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcin_sync = &PTR__wstreambuf_0038c0e4;" (assignment_expression "buf_wcin_sync = &PTR__wstreambuf_0038c0e4" identifier = (pointer_expression "&PTR__wstreambuf_0038c0e4" & identifier)) ;)) (expression_statement "DAT_00396570 = 0;" (assignment_expression "DAT_00396570 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396574 = 0;" (assignment_expression "DAT_00396574 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396578 = 0;" (assignment_expression "DAT_00396578 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965c0 = uVar1;" (assignment_expression "DAT_003965c0 = uVar1" identifier = identifier) ;) (labeled_statement "locale::locale((locale *)&DAT_0039657c);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_0039657c);" (call_expression "locale((locale *)&DAT_0039657c)" identifier (argument_list "((locale *)&DAT_0039657c)" ( (cast_expression "(locale *)&DAT_0039657c" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0039657c" & identifier)) ))) ;)) (labeled_statement "__gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_0038cc88;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcin_sync = &PTR__stdio_sync_filebuf_0038cc88;" (assignment_expression "buf_wcin_sync = &PTR__stdio_sync_filebuf_0038cc88" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_0038cc88" & 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_00396584 = 0xffffffff;" (assignment_expression "DAT_00396584 = 0xffffffff" identifier = number_literal) ;) (labeled_statement "__gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_0038c0e4;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcerr_sync = &PTR__wstreambuf_0038c0e4;" (assignment_expression "buf_wcerr_sync = &PTR__wstreambuf_0038c0e4" identifier = (pointer_expression "&PTR__wstreambuf_0038c0e4" & identifier)) ;)) (expression_statement "DAT_00396524 = 0;" (assignment_expression "DAT_00396524 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396528 = 0;" (assignment_expression "DAT_00396528 = 0" identifier = number_literal) ;) (expression_statement "DAT_0039652c = 0;" (assignment_expression "DAT_0039652c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396530 = 0;" (assignment_expression "DAT_00396530 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396534 = 0;" (assignment_expression "DAT_00396534 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396538 = 0;" (assignment_expression "DAT_00396538 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396580 = uVar2;" (assignment_expression "DAT_00396580 = uVar2" identifier = identifier) ;) (labeled_statement "locale::locale((locale *)&DAT_0039653c);" statement_identifier : (ERROR ":" :) (expression_statement "locale((locale *)&DAT_0039653c);" (call_expression "locale((locale *)&DAT_0039653c)" identifier (argument_list "((locale *)&DAT_0039653c)" ( (cast_expression "(locale *)&DAT_0039653c" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0039653c" & identifier)) ))) ;)) (labeled_statement "__gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_0038cc88;" statement_identifier : (ERROR ":" :) (expression_statement "buf_wcerr_sync = &PTR__stdio_sync_filebuf_0038cc88;" (assignment_expression "buf_wcerr_sync = &PTR__stdio_sync_filebuf_0038cc88" identifier = (pointer_expression "&PTR__stdio_sync_filebuf_0038cc88" & identifier)) ;)) (expression_statement "DAT_00396544 = 0xffffffff;" (assignment_expression "DAT_00396544 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396540 = uVar1;" (assignment_expression "DAT_00396540 = uVar1" identifier = identifier) ;) (expression_statement "ios_base((ios_base *)&DAT_003969c4);" (call_expression "ios_base((ios_base *)&DAT_003969c4)" identifier (argument_list "((ios_base *)&DAT_003969c4)" ( (cast_expression "(ios_base *)&DAT_003969c4" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_003969c4" & identifier)) ))) ;) (expression_statement "_DAT_00396a34 = 0;" (assignment_expression "_DAT_00396a34 = 0" identifier = number_literal) ;) (expression_statement "wcout = 0x38c190;" (assignment_expression "wcout = 0x38c190" identifier = number_literal) ;) (expression_statement "DAT_00396a38 = 0;" (assignment_expression "DAT_00396a38 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a3c = 0;" (assignment_expression "DAT_00396a3c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a40 = 0;" (assignment_expression "DAT_00396a40 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a44 = 0;" (assignment_expression "DAT_00396a44 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a48 = 0;" (assignment_expression "DAT_00396a48 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a4c = 0;" (assignment_expression "DAT_00396a4c = 0" identifier = number_literal) ;) (expression_statement "DAT_003969c4 = 0x38c1a4;" (assignment_expression "DAT_003969c4 = 0x38c1a4" identifier = number_literal) ;) comment (labeled_statement "wios::init((wios *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((wios *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);" (call_expression "init((wios *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync)" identifier (argument_list "((wios *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync)" ( (cast_expression "(wios *)&DAT_003969c4" ( (type_descriptor "wios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_003969c4" & 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_00396a68);" (call_expression "ios_base((ios_base *)&DAT_00396a68)" identifier (argument_list "((ios_base *)&DAT_00396a68)" ( (cast_expression "(ios_base *)&DAT_00396a68" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396a68" & identifier)) ))) ;) (expression_statement "DAT_00396ad8 = (undefined4 *)0x0;" (assignment_expression "DAT_00396ad8 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_DAT_00396adc = 0;" (assignment_expression "_DAT_00396adc = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ae0 = 0;" (assignment_expression "DAT_00396ae0 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00396ae4 = 0;" (assignment_expression "_DAT_00396ae4 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00396ae8 = 0;" (assignment_expression "_DAT_00396ae8 = 0" identifier = number_literal) ;) (expression_statement "_DAT_00396aec = 0;" (assignment_expression "_DAT_00396aec = 0" identifier = number_literal) ;) (expression_statement "_DAT_00396af0 = 0;" (assignment_expression "_DAT_00396af0 = 0" identifier = number_literal) ;) (expression_statement "wcin = 0x38c77c;" (assignment_expression "wcin = 0x38c77c" identifier = number_literal) ;) (expression_statement "DAT_00396a68 = 0x38c790;" (assignment_expression "DAT_00396a68 = 0x38c790" identifier = number_literal) ;) (expression_statement "DAT_00396a64 = 0;" (assignment_expression "DAT_00396a64 = 0" identifier = number_literal) ;) comment (labeled_statement "wios::init((wios *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((wios *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);" (call_expression "init((wios *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync)" identifier (argument_list "((wios *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync)" ( (cast_expression "(wios *)&DAT_00396a68" ( (type_descriptor "wios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396a68" & 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_00396924);" (call_expression "ios_base((ios_base *)&DAT_00396924)" identifier (argument_list "((ios_base *)&DAT_00396924)" ( (cast_expression "(ios_base *)&DAT_00396924" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396924" & identifier)) ))) ;) (expression_statement "DAT_0039699c = 0;" (assignment_expression "DAT_0039699c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396994 = (undefined4 *)0x0;" (assignment_expression "DAT_00396994 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "wcerr = 0x38c190;" (assignment_expression "wcerr = 0x38c190" identifier = number_literal) ;) (expression_statement "DAT_00396998 = 0;" (assignment_expression "DAT_00396998 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969a0 = 0;" (assignment_expression "DAT_003969a0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969a4 = 0;" (assignment_expression "DAT_003969a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969a8 = 0;" (assignment_expression "DAT_003969a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969ac = 0;" (assignment_expression "DAT_003969ac = 0" identifier = number_literal) ;) (expression_statement "DAT_00396924 = 0x38c1a4;" (assignment_expression "DAT_00396924 = 0x38c1a4" identifier = number_literal) ;) comment (labeled_statement "wios::init((wios *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((wios *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);" (call_expression "init((wios *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync)" identifier (argument_list "((wios *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync)" ( (cast_expression "(wios *)&DAT_00396924" ( (type_descriptor "wios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396924" & 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_00396884);" (call_expression "ios_base((ios_base *)&DAT_00396884)" identifier (argument_list "((ios_base *)&DAT_00396884)" ( (cast_expression "(ios_base *)&DAT_00396884" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396884" & identifier)) ))) ;) (expression_statement "_DAT_003968f4 = 0;" (assignment_expression "_DAT_003968f4 = 0" identifier = number_literal) ;) (expression_statement "wclog = 0x38c190;" (assignment_expression "wclog = 0x38c190" identifier = number_literal) ;) (expression_statement "DAT_003968f8 = 0;" (assignment_expression "DAT_003968f8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003968fc = 0;" (assignment_expression "DAT_003968fc = 0" identifier = number_literal) ;) (expression_statement "DAT_00396900 = 0;" (assignment_expression "DAT_00396900 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396904 = 0;" (assignment_expression "DAT_00396904 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396908 = 0;" (assignment_expression "DAT_00396908 = 0" identifier = number_literal) ;) (expression_statement "DAT_0039690c = 0;" (assignment_expression "DAT_0039690c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396884 = 0x38c1a4;" (assignment_expression "DAT_00396884 = 0x38c1a4" identifier = number_literal) ;) comment (labeled_statement "wios::init((wios *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);" statement_identifier : (ERROR ":" :) (expression_statement "init((wios *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);" (call_expression "init((wios *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync)" identifier (argument_list "((wios *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync)" ( (cast_expression "(wios *)&DAT_00396884" ( (type_descriptor "wios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00396884" & 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_00396930 = DAT_00396930 | 0x2000;" (assignment_expression "DAT_00396930 = DAT_00396930 | 0x2000" identifier = (binary_expression "DAT_00396930 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00396ad8 = &wcout;" (assignment_expression "DAT_00396ad8 = &wcout" identifier = (pointer_expression "&wcout" & identifier)) ;) (expression_statement "DAT_00396994 = &wcout;" (assignment_expression "DAT_00396994 = &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_001e9fa0(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_00396e1c;\n  puVar6 = PTR___pthread_key_create_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00396e1c = DAT_00396e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    \n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    \n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_001e9fa0(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_00396e1c;\n  puVar6 = PTR___pthread_key_create_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00396e1c = DAT_00396e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    \n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    \n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001e9fa0(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_00396e1c;\n  puVar6 = PTR___pthread_key_create_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00396e1c = DAT_00396e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    \n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    \n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 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_00396e1c;" (assignment_expression "iVar7 = DAT_00396e1c" identifier = identifier) ;) (expression_statement "puVar6 = PTR___pthread_key_create_0038ef24;" (assignment_expression "puVar6 = PTR___pthread_key_create_0038ef24" identifier = identifier) ;) (expression_statement "puVar5 = PTR_stdout_0038eea0;" (assignment_expression "puVar5 = PTR_stdout_0038eea0" identifier = identifier) ;) (if_statement "if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" if (parenthesized_expression "(PTR___pthread_key_create_0038ef24 != (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_0038ef24 != (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_00396e1c = DAT_00396e1c + 1;" (assignment_expression "DAT_00396e1c = DAT_00396e1c + 1" identifier = (binary_expression "DAT_00396e1c + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    \n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    \n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    \n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    \n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }" { (expression_statement "DAT_00396844 = 0;" (assignment_expression "DAT_00396844 = 0" identifier = number_literal) ;) (expression_statement "DAT_0038f3a0 = 1;" (assignment_expression "DAT_0038f3a0 = 1" identifier = number_literal) ;) (expression_statement "DAT_00396848 = 0;" (assignment_expression "DAT_00396848 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)PTR_stdout_0038eea0;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stdout_0038eea0" identifier = (pointer_expression "*(undefined4 *)PTR_stdout_0038eea0" * (cast_expression "(undefined4 *)PTR_stdout_0038eea0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_0039684c = 0;" (assignment_expression "DAT_0039684c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396840 = &PTR_FUN_0038c0a4;" (assignment_expression "DAT_00396840 = &PTR_FUN_0038c0a4" identifier = (pointer_expression "&PTR_FUN_0038c0a4" & identifier)) ;) (expression_statement "DAT_00396850 = 0;" (assignment_expression "DAT_00396850 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396854 = 0;" (assignment_expression "DAT_00396854 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396858 = 0;" (assignment_expression "DAT_00396858 = 0" identifier = number_literal) ;) (expression_statement "FUN_00238070(&DAT_0039685c);" (call_expression "FUN_00238070(&DAT_0039685c)" identifier (argument_list "(&DAT_0039685c)" ( (pointer_expression "&DAT_0039685c" & identifier) ))) ;) (expression_statement "puVar4 = PTR_stdin_0038ee54;" (assignment_expression "puVar4 = PTR_stdin_0038ee54" identifier = identifier) ;) (expression_statement "DAT_00396864 = 0xffffffff;" (assignment_expression "DAT_00396864 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396804 = 0;" (assignment_expression "DAT_00396804 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)PTR_stdin_0038ee54;" (assignment_expression "uVar2 = *(undefined4 *)PTR_stdin_0038ee54" identifier = (pointer_expression "*(undefined4 *)PTR_stdin_0038ee54" * (cast_expression "(undefined4 *)PTR_stdin_0038ee54" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_00396840 = &PTR_FUN_0038cc48;" (assignment_expression "DAT_00396840 = &PTR_FUN_0038cc48" identifier = (pointer_expression "&PTR_FUN_0038cc48" & identifier)) ;) (expression_statement "DAT_00396800 = &PTR_FUN_0038c0a4;" (assignment_expression "DAT_00396800 = &PTR_FUN_0038c0a4" identifier = (pointer_expression "&PTR_FUN_0038c0a4" & identifier)) ;) (expression_statement "DAT_00396808 = 0;" (assignment_expression "DAT_00396808 = 0" identifier = number_literal) ;) (expression_statement "DAT_0039680c = 0;" (assignment_expression "DAT_0039680c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396810 = 0;" (assignment_expression "DAT_00396810 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396814 = 0;" (assignment_expression "DAT_00396814 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396818 = 0;" (assignment_expression "DAT_00396818 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396860 = uVar1;" (assignment_expression "DAT_00396860 = uVar1" identifier = identifier) ;) (expression_statement "FUN_00238070(&DAT_0039681c);" (call_expression "FUN_00238070(&DAT_0039681c)" identifier (argument_list "(&DAT_0039681c)" ( (pointer_expression "&DAT_0039681c" & identifier) ))) ;) (expression_statement "puVar3 = PTR_stderr_0038ed28;" (assignment_expression "puVar3 = PTR_stderr_0038ed28" identifier = identifier) ;) (expression_statement "DAT_00396800 = &PTR_FUN_0038cc48;" (assignment_expression "DAT_00396800 = &PTR_FUN_0038cc48" identifier = (pointer_expression "&PTR_FUN_0038cc48" & identifier)) ;) (expression_statement "uVar1 = *(undefined4 *)PTR_stderr_0038ed28;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stderr_0038ed28" identifier = (pointer_expression "*(undefined4 *)PTR_stderr_0038ed28" * (cast_expression "(undefined4 *)PTR_stderr_0038ed28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "DAT_003967c0 = &PTR_FUN_0038c0a4;" (assignment_expression "DAT_003967c0 = &PTR_FUN_0038c0a4" identifier = (pointer_expression "&PTR_FUN_0038c0a4" & identifier)) ;) (expression_statement "DAT_00396824 = 0xffffffff;" (assignment_expression "DAT_00396824 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003967c4 = 0;" (assignment_expression "DAT_003967c4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967c8 = 0;" (assignment_expression "DAT_003967c8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967cc = 0;" (assignment_expression "DAT_003967cc = 0" identifier = number_literal) ;) (expression_statement "DAT_003967d0 = 0;" (assignment_expression "DAT_003967d0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967d4 = 0;" (assignment_expression "DAT_003967d4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003967d8 = 0;" (assignment_expression "DAT_003967d8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396820 = uVar2;" (assignment_expression "DAT_00396820 = uVar2" identifier = identifier) ;) (expression_statement "FUN_00238070(&DAT_003967dc);" (call_expression "FUN_00238070(&DAT_003967dc)" identifier (argument_list "(&DAT_003967dc)" ( (pointer_expression "&DAT_003967dc" & identifier) ))) ;) (expression_statement "DAT_003967c0 = &PTR_FUN_0038cc48;" (assignment_expression "DAT_003967c0 = &PTR_FUN_0038cc48" identifier = (pointer_expression "&PTR_FUN_0038cc48" & identifier)) ;) (expression_statement "DAT_003967e4 = 0xffffffff;" (assignment_expression "DAT_003967e4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_003967e0 = uVar1;" (assignment_expression "DAT_003967e0 = uVar1" identifier = identifier) ;) (expression_statement "FUN_0022bca0(&DAT_00396c44);" (call_expression "FUN_0022bca0(&DAT_00396c44)" identifier (argument_list "(&DAT_00396c44)" ( (pointer_expression "&DAT_00396c44" & identifier) ))) ;) (expression_statement "DAT_00396cb4 = 0;" (assignment_expression "DAT_00396cb4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c40 = &PTR_FUN_0038c160;" (assignment_expression "DAT_00396c40 = &PTR_FUN_0038c160" identifier = (pointer_expression "&PTR_FUN_0038c160" & identifier)) ;) (expression_statement "DAT_00396cb8 = 0;" (assignment_expression "DAT_00396cb8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cbc = 0;" (assignment_expression "DAT_00396cbc = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cc0 = 0;" (assignment_expression "DAT_00396cc0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cc4 = 0;" (assignment_expression "DAT_00396cc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396cc8 = 0;" (assignment_expression "DAT_00396cc8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c44 = &PTR_FUN_0038c174;" (assignment_expression "DAT_00396c44 = &PTR_FUN_0038c174" identifier = (pointer_expression "&PTR_FUN_0038c174" & identifier)) ;) (expression_statement "FUN_00211450(&DAT_00396c44,&DAT_00396840);" (call_expression "FUN_00211450(&DAT_00396c44,&DAT_00396840)" identifier (argument_list "(&DAT_00396c44,&DAT_00396840)" ( (pointer_expression "&DAT_00396c44" & identifier) , (pointer_expression "&DAT_00396840" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396ce8);" (call_expression "FUN_0022bca0(&DAT_00396ce8)" identifier (argument_list "(&DAT_00396ce8)" ( (pointer_expression "&DAT_00396ce8" & identifier) ))) ;) (expression_statement "DAT_00396d58 = (undefined4 *)0x0;" (assignment_expression "DAT_00396d58 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00396d5c = 0;" (assignment_expression "DAT_00396d5c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396d60 = 0;" (assignment_expression "DAT_00396d60 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396d64 = 0;" (assignment_expression "DAT_00396d64 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396d68 = 0;" (assignment_expression "DAT_00396d68 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396d6c = 0;" (assignment_expression "DAT_00396d6c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ce0 = &PTR_FUN_0038c74c;" (assignment_expression "DAT_00396ce0 = &PTR_FUN_0038c74c" identifier = (pointer_expression "&PTR_FUN_0038c74c" & identifier)) ;) (expression_statement "DAT_00396ce8 = &PTR_FUN_0038c760;" (assignment_expression "DAT_00396ce8 = &PTR_FUN_0038c760" identifier = (pointer_expression "&PTR_FUN_0038c760" & identifier)) ;) (expression_statement "DAT_00396ce4 = 0;" (assignment_expression "DAT_00396ce4 = 0" identifier = number_literal) ;) (expression_statement "FUN_00211450(&DAT_00396ce8,&DAT_00396800);" (call_expression "FUN_00211450(&DAT_00396ce8,&DAT_00396800)" identifier (argument_list "(&DAT_00396ce8,&DAT_00396800)" ( (pointer_expression "&DAT_00396ce8" & identifier) , (pointer_expression "&DAT_00396800" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396ba4);" (call_expression "FUN_0022bca0(&DAT_00396ba4)" identifier (argument_list "(&DAT_00396ba4)" ( (pointer_expression "&DAT_00396ba4" & identifier) ))) ;) (expression_statement "DAT_00396c14 = (undefined4 *)0x0;" (assignment_expression "DAT_00396c14 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00396c18 = 0;" (assignment_expression "DAT_00396c18 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c1c = 0;" (assignment_expression "DAT_00396c1c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ba0 = &PTR_FUN_0038c160;" (assignment_expression "DAT_00396ba0 = &PTR_FUN_0038c160" identifier = (pointer_expression "&PTR_FUN_0038c160" & identifier)) ;) (expression_statement "DAT_00396c20 = 0;" (assignment_expression "DAT_00396c20 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c24 = 0;" (assignment_expression "DAT_00396c24 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396c28 = 0;" (assignment_expression "DAT_00396c28 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ba4 = &PTR_FUN_0038c174;" (assignment_expression "DAT_00396ba4 = &PTR_FUN_0038c174" identifier = (pointer_expression "&PTR_FUN_0038c174" & identifier)) ;) (expression_statement "FUN_00211450(&DAT_00396ba4,&DAT_003967c0);" (call_expression "FUN_00211450(&DAT_00396ba4,&DAT_003967c0)" identifier (argument_list "(&DAT_00396ba4,&DAT_003967c0)" ( (pointer_expression "&DAT_00396ba4" & identifier) , (pointer_expression "&DAT_003967c0" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396b04);" (call_expression "FUN_0022bca0(&DAT_00396b04)" identifier (argument_list "(&DAT_00396b04)" ( (pointer_expression "&DAT_00396b04" & identifier) ))) ;) (expression_statement "DAT_00396b78 = 0;" (assignment_expression "DAT_00396b78 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b00 = &PTR_FUN_0038c160;" (assignment_expression "DAT_00396b00 = &PTR_FUN_0038c160" identifier = (pointer_expression "&PTR_FUN_0038c160" & identifier)) ;) (expression_statement "DAT_00396b74 = 0;" (assignment_expression "DAT_00396b74 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b7c = 0;" (assignment_expression "DAT_00396b7c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b80 = 0;" (assignment_expression "DAT_00396b80 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b84 = 0;" (assignment_expression "DAT_00396b84 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b88 = 0;" (assignment_expression "DAT_00396b88 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396b04 = &PTR_FUN_0038c174;" (assignment_expression "DAT_00396b04 = &PTR_FUN_0038c174" identifier = (pointer_expression "&PTR_FUN_0038c174" & identifier)) ;) (expression_statement "FUN_00211450(&DAT_00396b04,&DAT_003967c0);" (call_expression "FUN_00211450(&DAT_00396b04,&DAT_003967c0)" identifier (argument_list "(&DAT_00396b04,&DAT_003967c0)" ( (pointer_expression "&DAT_00396b04" & identifier) , (pointer_expression "&DAT_003967c0" & identifier) ))) ;) (expression_statement "DAT_003965a4 = 0;" (assignment_expression "DAT_003965a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396bb0 = DAT_00396bb0 | 0x2000;" (assignment_expression "DAT_00396bb0 = DAT_00396bb0 | 0x2000" identifier = (binary_expression "DAT_00396bb0 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00396d58 = &DAT_00396c40;" (assignment_expression "DAT_00396d58 = &DAT_00396c40" identifier = (pointer_expression "&DAT_00396c40" & identifier)) ;) (expression_statement "DAT_00396c14 = &DAT_00396c40;" (assignment_expression "DAT_00396c14 = &DAT_00396c40" identifier = (pointer_expression "&DAT_00396c40" & identifier)) ;) (expression_statement "DAT_003965a8 = 0;" (assignment_expression "DAT_003965a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965ac = 0;" (assignment_expression "DAT_003965ac = 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_003965b0 = 0;" (assignment_expression "DAT_003965b0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965a0 = &PTR_FUN_0038c0e4;" (assignment_expression "DAT_003965a0 = &PTR_FUN_0038c0e4" identifier = (pointer_expression "&PTR_FUN_0038c0e4" & identifier)) ;) (expression_statement "DAT_003965b4 = 0;" (assignment_expression "DAT_003965b4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965b8 = 0;" (assignment_expression "DAT_003965b8 = 0" identifier = number_literal) ;) (expression_statement "FUN_00238070(&DAT_003965bc);" (call_expression "FUN_00238070(&DAT_003965bc)" identifier (argument_list "(&DAT_003965bc)" ( (pointer_expression "&DAT_003965bc" & identifier) ))) ;) (expression_statement "DAT_003965c4 = 0xffffffff;" (assignment_expression "DAT_003965c4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396564 = 0;" (assignment_expression "DAT_00396564 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965a0 = &PTR_FUN_0038cc88;" (assignment_expression "DAT_003965a0 = &PTR_FUN_0038cc88" identifier = (pointer_expression "&PTR_FUN_0038cc88" & identifier)) ;) (expression_statement "DAT_00396568 = 0;" (assignment_expression "DAT_00396568 = 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_0039656c = 0;" (assignment_expression "DAT_0039656c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396560 = &PTR_FUN_0038c0e4;" (assignment_expression "DAT_00396560 = &PTR_FUN_0038c0e4" identifier = (pointer_expression "&PTR_FUN_0038c0e4" & identifier)) ;) (expression_statement "DAT_00396570 = 0;" (assignment_expression "DAT_00396570 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396574 = 0;" (assignment_expression "DAT_00396574 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396578 = 0;" (assignment_expression "DAT_00396578 = 0" identifier = number_literal) ;) (expression_statement "DAT_003965c0 = uVar1;" (assignment_expression "DAT_003965c0 = uVar1" identifier = identifier) ;) (expression_statement "FUN_00238070(&DAT_0039657c);" (call_expression "FUN_00238070(&DAT_0039657c)" identifier (argument_list "(&DAT_0039657c)" ( (pointer_expression "&DAT_0039657c" & identifier) ))) ;) (expression_statement "DAT_00396560 = &PTR_FUN_0038cc88;" (assignment_expression "DAT_00396560 = &PTR_FUN_0038cc88" identifier = (pointer_expression "&PTR_FUN_0038cc88" & 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_00396584 = 0xffffffff;" (assignment_expression "DAT_00396584 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396520 = &PTR_FUN_0038c0e4;" (assignment_expression "DAT_00396520 = &PTR_FUN_0038c0e4" identifier = (pointer_expression "&PTR_FUN_0038c0e4" & identifier)) ;) (expression_statement "DAT_00396524 = 0;" (assignment_expression "DAT_00396524 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396528 = 0;" (assignment_expression "DAT_00396528 = 0" identifier = number_literal) ;) (expression_statement "DAT_0039652c = 0;" (assignment_expression "DAT_0039652c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396530 = 0;" (assignment_expression "DAT_00396530 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396534 = 0;" (assignment_expression "DAT_00396534 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396538 = 0;" (assignment_expression "DAT_00396538 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396580 = uVar2;" (assignment_expression "DAT_00396580 = uVar2" identifier = identifier) ;) (expression_statement "FUN_00238070(&DAT_0039653c);" (call_expression "FUN_00238070(&DAT_0039653c)" identifier (argument_list "(&DAT_0039653c)" ( (pointer_expression "&DAT_0039653c" & identifier) ))) ;) (expression_statement "DAT_00396520 = &PTR_FUN_0038cc88;" (assignment_expression "DAT_00396520 = &PTR_FUN_0038cc88" identifier = (pointer_expression "&PTR_FUN_0038cc88" & identifier)) ;) (expression_statement "DAT_00396544 = 0xffffffff;" (assignment_expression "DAT_00396544 = 0xffffffff" identifier = number_literal) ;) (expression_statement "DAT_00396540 = uVar1;" (assignment_expression "DAT_00396540 = uVar1" identifier = identifier) ;) (expression_statement "FUN_0022bca0(&DAT_003969c4);" (call_expression "FUN_0022bca0(&DAT_003969c4)" identifier (argument_list "(&DAT_003969c4)" ( (pointer_expression "&DAT_003969c4" & identifier) ))) ;) (expression_statement "DAT_00396a34 = 0;" (assignment_expression "DAT_00396a34 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969c0 = &PTR_FUN_0038c190;" (assignment_expression "DAT_003969c0 = &PTR_FUN_0038c190" identifier = (pointer_expression "&PTR_FUN_0038c190" & identifier)) ;) (expression_statement "DAT_00396a38 = 0;" (assignment_expression "DAT_00396a38 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a3c = 0;" (assignment_expression "DAT_00396a3c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a40 = 0;" (assignment_expression "DAT_00396a40 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a44 = 0;" (assignment_expression "DAT_00396a44 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a48 = 0;" (assignment_expression "DAT_00396a48 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a4c = 0;" (assignment_expression "DAT_00396a4c = 0" identifier = number_literal) ;) (expression_statement "DAT_003969c4 = &PTR_FUN_0038c1a4;" (assignment_expression "DAT_003969c4 = &PTR_FUN_0038c1a4" identifier = (pointer_expression "&PTR_FUN_0038c1a4" & identifier)) ;) (expression_statement "FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);" (call_expression "FUN_00211dd0(&DAT_003969c4,&DAT_003965a0)" identifier (argument_list "(&DAT_003969c4,&DAT_003965a0)" ( (pointer_expression "&DAT_003969c4" & identifier) , (pointer_expression "&DAT_003965a0" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396a68);" (call_expression "FUN_0022bca0(&DAT_00396a68)" identifier (argument_list "(&DAT_00396a68)" ( (pointer_expression "&DAT_00396a68" & identifier) ))) ;) (expression_statement "DAT_00396ad8 = (undefined4 *)0x0;" (assignment_expression "DAT_00396ad8 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00396adc = 0;" (assignment_expression "DAT_00396adc = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ae0 = 0;" (assignment_expression "DAT_00396ae0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ae4 = 0;" (assignment_expression "DAT_00396ae4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396ae8 = 0;" (assignment_expression "DAT_00396ae8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396aec = 0;" (assignment_expression "DAT_00396aec = 0" identifier = number_literal) ;) (expression_statement "DAT_00396af0 = 0;" (assignment_expression "DAT_00396af0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396a60 = &PTR_FUN_0038c77c;" (assignment_expression "DAT_00396a60 = &PTR_FUN_0038c77c" identifier = (pointer_expression "&PTR_FUN_0038c77c" & identifier)) ;) (expression_statement "DAT_00396a68 = &PTR_FUN_0038c790;" (assignment_expression "DAT_00396a68 = &PTR_FUN_0038c790" identifier = (pointer_expression "&PTR_FUN_0038c790" & identifier)) ;) (expression_statement "DAT_00396a64 = 0;" (assignment_expression "DAT_00396a64 = 0" identifier = number_literal) ;) (expression_statement "FUN_00211dd0(&DAT_00396a68,&DAT_00396560);" (call_expression "FUN_00211dd0(&DAT_00396a68,&DAT_00396560)" identifier (argument_list "(&DAT_00396a68,&DAT_00396560)" ( (pointer_expression "&DAT_00396a68" & identifier) , (pointer_expression "&DAT_00396560" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396924);" (call_expression "FUN_0022bca0(&DAT_00396924)" identifier (argument_list "(&DAT_00396924)" ( (pointer_expression "&DAT_00396924" & identifier) ))) ;) (expression_statement "DAT_0039699c = 0;" (assignment_expression "DAT_0039699c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396994 = (undefined4 *)0x0;" (assignment_expression "DAT_00396994 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00396920 = &PTR_FUN_0038c190;" (assignment_expression "DAT_00396920 = &PTR_FUN_0038c190" identifier = (pointer_expression "&PTR_FUN_0038c190" & identifier)) ;) (expression_statement "DAT_00396998 = 0;" (assignment_expression "DAT_00396998 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969a0 = 0;" (assignment_expression "DAT_003969a0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969a4 = 0;" (assignment_expression "DAT_003969a4 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969a8 = 0;" (assignment_expression "DAT_003969a8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003969ac = 0;" (assignment_expression "DAT_003969ac = 0" identifier = number_literal) ;) (expression_statement "DAT_00396924 = &PTR_FUN_0038c1a4;" (assignment_expression "DAT_00396924 = &PTR_FUN_0038c1a4" identifier = (pointer_expression "&PTR_FUN_0038c1a4" & identifier)) ;) (expression_statement "FUN_00211dd0(&DAT_00396924,&DAT_00396520);" (call_expression "FUN_00211dd0(&DAT_00396924,&DAT_00396520)" identifier (argument_list "(&DAT_00396924,&DAT_00396520)" ( (pointer_expression "&DAT_00396924" & identifier) , (pointer_expression "&DAT_00396520" & identifier) ))) ;) (expression_statement "FUN_0022bca0(&DAT_00396884);" (call_expression "FUN_0022bca0(&DAT_00396884)" identifier (argument_list "(&DAT_00396884)" ( (pointer_expression "&DAT_00396884" & identifier) ))) ;) (expression_statement "DAT_003968f4 = 0;" (assignment_expression "DAT_003968f4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396880 = &PTR_FUN_0038c190;" (assignment_expression "DAT_00396880 = &PTR_FUN_0038c190" identifier = (pointer_expression "&PTR_FUN_0038c190" & identifier)) ;) (expression_statement "DAT_003968f8 = 0;" (assignment_expression "DAT_003968f8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003968fc = 0;" (assignment_expression "DAT_003968fc = 0" identifier = number_literal) ;) (expression_statement "DAT_00396900 = 0;" (assignment_expression "DAT_00396900 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396904 = 0;" (assignment_expression "DAT_00396904 = 0" identifier = number_literal) ;) (expression_statement "DAT_00396908 = 0;" (assignment_expression "DAT_00396908 = 0" identifier = number_literal) ;) (expression_statement "DAT_0039690c = 0;" (assignment_expression "DAT_0039690c = 0" identifier = number_literal) ;) (expression_statement "DAT_00396884 = &PTR_FUN_0038c1a4;" (assignment_expression "DAT_00396884 = &PTR_FUN_0038c1a4" identifier = (pointer_expression "&PTR_FUN_0038c1a4" & identifier)) ;) (expression_statement "FUN_00211dd0(&DAT_00396884,&DAT_00396520);" (call_expression "FUN_00211dd0(&DAT_00396884,&DAT_00396520)" identifier (argument_list "(&DAT_00396884,&DAT_00396520)" ( (pointer_expression "&DAT_00396884" & identifier) , (pointer_expression "&DAT_00396520" & identifier) ))) ;) (expression_statement "DAT_00396930 = DAT_00396930 | 0x2000;" (assignment_expression "DAT_00396930 = DAT_00396930 | 0x2000" identifier = (binary_expression "DAT_00396930 | 0x2000" identifier | number_literal)) ;) (expression_statement "DAT_00396ad8 = &DAT_003969c0;" (assignment_expression "DAT_00396ad8 = &DAT_003969c0" identifier = (pointer_expression "&DAT_003969c0" & identifier)) ;) (expression_statement "DAT_00396994 = &DAT_003969c0;" (assignment_expression "DAT_00396994 = &DAT_003969c0" identifier = (pointer_expression "&DAT_003969c0" & identifier)) ;) (if_statement "if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 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_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }" { (expression_statement "LOCK();" (call_expression "LOCK()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00396e1c = DAT_00396e1c + 1;" (assignment_expression "DAT_00396e1c = DAT_00396e1c + 1" identifier = (binary_expression "DAT_00396e1c + 1" identifier + number_literal)) ;) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "DAT_00396e1c = DAT_00396e1c + 1;" (assignment_expression "DAT_00396e1c = DAT_00396e1c + 1" identifier = (binary_expression "DAT_00396e1c + 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_001e9fa0(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_00396e1c;\n  puVar6 = PTR___pthread_key_create_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00396e1c = DAT_00396e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    \n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    \n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001e9fa0(void)" (identifier "FUN_001e9fa0") (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_00396e1c;\n  puVar6 = PTR___pthread_key_create_0038ef24;\n  puVar5 = PTR_stdout_0038eea0;\n  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }\n  DAT_00396e1c = DAT_00396e1c + 1;\n  if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    \n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    \n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 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_00396e1c;" (assignment_expression "iVar7 = DAT_00396e1c" (identifier "iVar7") (= "=") (identifier "DAT_00396e1c")) (; ";")) (expression_statement "puVar6 = PTR___pthread_key_create_0038ef24;" (assignment_expression "puVar6 = PTR___pthread_key_create_0038ef24" (identifier "puVar6") (= "=") (identifier "PTR___pthread_key_create_0038ef24")) (; ";")) (expression_statement "puVar5 = PTR_stdout_0038eea0;" (assignment_expression "puVar5 = PTR_stdout_0038eea0" (identifier "puVar5") (= "=") (identifier "PTR_stdout_0038eea0")) (; ";")) (if_statement "if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {\n    LOCK();\n    UNLOCK();\n  }" (if "if") (parenthesized_expression "(PTR___pthread_key_create_0038ef24 != (undefined *)0x0)" (( "(") (binary_expression "PTR___pthread_key_create_0038ef24 != (undefined *)0x0" (identifier "PTR___pthread_key_create_0038ef24") (!= "!=") (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_00396e1c = DAT_00396e1c + 1;" (assignment_expression "DAT_00396e1c = DAT_00396e1c + 1" (identifier "DAT_00396e1c") (= "=") (binary_expression "DAT_00396e1c + 1" (identifier "DAT_00396e1c") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar7 == 0) {\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    \n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    \n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    DAT_00396844 = 0;\n    DAT_0038f3a0 = 1;\n    DAT_00396848 = 0;\n    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;\n    DAT_0039684c = 0;\n    DAT_00396840 = &PTR_FUN_0038c0a4;\n    DAT_00396850 = 0;\n    DAT_00396854 = 0;\n    DAT_00396858 = 0;\n    FUN_00238070(&DAT_0039685c);\n    puVar4 = PTR_stdin_0038ee54;\n    DAT_00396864 = 0xffffffff;\n    DAT_00396804 = 0;\n    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;\n    DAT_00396840 = &PTR_FUN_0038cc48;\n    DAT_00396800 = &PTR_FUN_0038c0a4;\n    DAT_00396808 = 0;\n    DAT_0039680c = 0;\n    DAT_00396810 = 0;\n    DAT_00396814 = 0;\n    DAT_00396818 = 0;\n    DAT_00396860 = uVar1;\n    FUN_00238070(&DAT_0039681c);\n    puVar3 = PTR_stderr_0038ed28;\n    DAT_00396800 = &PTR_FUN_0038cc48;\n    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;\n    DAT_003967c0 = &PTR_FUN_0038c0a4;\n    DAT_00396824 = 0xffffffff;\n    DAT_003967c4 = 0;\n    DAT_003967c8 = 0;\n    DAT_003967cc = 0;\n    DAT_003967d0 = 0;\n    DAT_003967d4 = 0;\n    DAT_003967d8 = 0;\n    DAT_00396820 = uVar2;\n    FUN_00238070(&DAT_003967dc);\n    DAT_003967c0 = &PTR_FUN_0038cc48;\n    DAT_003967e4 = 0xffffffff;\n    DAT_003967e0 = uVar1;\n    FUN_0022bca0(&DAT_00396c44);\n    DAT_00396cb4 = 0;\n    DAT_00396c40 = &PTR_FUN_0038c160;\n    DAT_00396cb8 = 0;\n    DAT_00396cbc = 0;\n    DAT_00396cc0 = 0;\n    DAT_00396cc4 = 0;\n    DAT_00396cc8 = 0;\n    DAT_00396c44 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396c44,&DAT_00396840);\n    FUN_0022bca0(&DAT_00396ce8);\n    DAT_00396d58 = (undefined4 *)0x0;\n    DAT_00396d5c = 0;\n    DAT_00396d60 = 0;\n    DAT_00396d64 = 0;\n    DAT_00396d68 = 0;\n    DAT_00396d6c = 0;\n    DAT_00396ce0 = &PTR_FUN_0038c74c;\n    DAT_00396ce8 = &PTR_FUN_0038c760;\n    DAT_00396ce4 = 0;\n                    \n    FUN_00211450(&DAT_00396ce8,&DAT_00396800);\n    FUN_0022bca0(&DAT_00396ba4);\n    DAT_00396c14 = (undefined4 *)0x0;\n    DAT_00396c18 = 0;\n    DAT_00396c1c = 0;\n    DAT_00396ba0 = &PTR_FUN_0038c160;\n    DAT_00396c20 = 0;\n    DAT_00396c24 = 0;\n    DAT_00396c28 = 0;\n    DAT_00396ba4 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);\n    FUN_0022bca0(&DAT_00396b04);\n    DAT_00396b78 = 0;\n    DAT_00396b00 = &PTR_FUN_0038c160;\n    DAT_00396b74 = 0;\n    DAT_00396b7c = 0;\n    DAT_00396b80 = 0;\n    DAT_00396b84 = 0;\n    DAT_00396b88 = 0;\n    DAT_00396b04 = &PTR_FUN_0038c174;\n                    \n    FUN_00211450(&DAT_00396b04,&DAT_003967c0);\n    DAT_003965a4 = 0;\n    DAT_00396bb0 = DAT_00396bb0 | 0x2000;\n    DAT_00396d58 = &DAT_00396c40;\n    DAT_00396c14 = &DAT_00396c40;\n    DAT_003965a8 = 0;\n    DAT_003965ac = 0;\n    uVar1 = *(undefined4 *)puVar5;\n    DAT_003965b0 = 0;\n    DAT_003965a0 = &PTR_FUN_0038c0e4;\n    DAT_003965b4 = 0;\n    DAT_003965b8 = 0;\n    FUN_00238070(&DAT_003965bc);\n    DAT_003965c4 = 0xffffffff;\n    DAT_00396564 = 0;\n    DAT_003965a0 = &PTR_FUN_0038cc88;\n    DAT_00396568 = 0;\n    uVar2 = *(undefined4 *)puVar4;\n    DAT_0039656c = 0;\n    DAT_00396560 = &PTR_FUN_0038c0e4;\n    DAT_00396570 = 0;\n    DAT_00396574 = 0;\n    DAT_00396578 = 0;\n    DAT_003965c0 = uVar1;\n    FUN_00238070(&DAT_0039657c);\n    DAT_00396560 = &PTR_FUN_0038cc88;\n    uVar1 = *(undefined4 *)puVar3;\n    DAT_00396584 = 0xffffffff;\n    DAT_00396520 = &PTR_FUN_0038c0e4;\n    DAT_00396524 = 0;\n    DAT_00396528 = 0;\n    DAT_0039652c = 0;\n    DAT_00396530 = 0;\n    DAT_00396534 = 0;\n    DAT_00396538 = 0;\n    DAT_00396580 = uVar2;\n    FUN_00238070(&DAT_0039653c);\n    DAT_00396520 = &PTR_FUN_0038cc88;\n    DAT_00396544 = 0xffffffff;\n    DAT_00396540 = uVar1;\n    FUN_0022bca0(&DAT_003969c4);\n    DAT_00396a34 = 0;\n    DAT_003969c0 = &PTR_FUN_0038c190;\n    DAT_00396a38 = 0;\n    DAT_00396a3c = 0;\n    DAT_00396a40 = 0;\n    DAT_00396a44 = 0;\n    DAT_00396a48 = 0;\n    DAT_00396a4c = 0;\n    DAT_003969c4 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);\n    FUN_0022bca0(&DAT_00396a68);\n    DAT_00396ad8 = (undefined4 *)0x0;\n    DAT_00396adc = 0;\n    DAT_00396ae0 = 0;\n    DAT_00396ae4 = 0;\n    DAT_00396ae8 = 0;\n    DAT_00396aec = 0;\n    DAT_00396af0 = 0;\n    DAT_00396a60 = &PTR_FUN_0038c77c;\n    DAT_00396a68 = &PTR_FUN_0038c790;\n    DAT_00396a64 = 0;\n                    \n    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);\n    FUN_0022bca0(&DAT_00396924);\n    DAT_0039699c = 0;\n    DAT_00396994 = (undefined4 *)0x0;\n    DAT_00396920 = &PTR_FUN_0038c190;\n    DAT_00396998 = 0;\n    DAT_003969a0 = 0;\n    DAT_003969a4 = 0;\n    DAT_003969a8 = 0;\n    DAT_003969ac = 0;\n    DAT_00396924 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396924,&DAT_00396520);\n    FUN_0022bca0(&DAT_00396884);\n    DAT_003968f4 = 0;\n    DAT_00396880 = &PTR_FUN_0038c190;\n    DAT_003968f8 = 0;\n    DAT_003968fc = 0;\n    DAT_00396900 = 0;\n    DAT_00396904 = 0;\n    DAT_00396908 = 0;\n    DAT_0039690c = 0;\n    DAT_00396884 = &PTR_FUN_0038c1a4;\n                    \n    FUN_00211dd0(&DAT_00396884,&DAT_00396520);\n    DAT_00396930 = DAT_00396930 | 0x2000;\n    DAT_00396ad8 = &DAT_003969c0;\n    DAT_00396994 = &DAT_003969c0;\n    if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }\n    DAT_00396e1c = DAT_00396e1c + 1;\n    return;\n  }" ({ "{") (expression_statement "DAT_00396844 = 0;" (assignment_expression "DAT_00396844 = 0" (identifier "DAT_00396844") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0038f3a0 = 1;" (assignment_expression "DAT_0038f3a0 = 1" (identifier "DAT_0038f3a0") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00396848 = 0;" (assignment_expression "DAT_00396848 = 0" (identifier "DAT_00396848") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = *(undefined4 *)PTR_stdout_0038eea0;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stdout_0038eea0" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)PTR_stdout_0038eea0" (* "*") (cast_expression "(undefined4 *)PTR_stdout_0038eea0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_0038eea0")))) (; ";")) (expression_statement "DAT_0039684c = 0;" (assignment_expression "DAT_0039684c = 0" (identifier "DAT_0039684c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396840 = &PTR_FUN_0038c0a4;" (assignment_expression "DAT_00396840 = &PTR_FUN_0038c0a4" (identifier "DAT_00396840") (= "=") (pointer_expression "&PTR_FUN_0038c0a4" (& "&") (identifier "PTR_FUN_0038c0a4"))) (; ";")) (expression_statement "DAT_00396850 = 0;" (assignment_expression "DAT_00396850 = 0" (identifier "DAT_00396850") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396854 = 0;" (assignment_expression "DAT_00396854 = 0" (identifier "DAT_00396854") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396858 = 0;" (assignment_expression "DAT_00396858 = 0" (identifier "DAT_00396858") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00238070(&DAT_0039685c);" (call_expression "FUN_00238070(&DAT_0039685c)" (identifier "FUN_00238070") (argument_list "(&DAT_0039685c)" (( "(") (pointer_expression "&DAT_0039685c" (& "&") (identifier "DAT_0039685c")) () ")"))) (; ";")) (expression_statement "puVar4 = PTR_stdin_0038ee54;" (assignment_expression "puVar4 = PTR_stdin_0038ee54" (identifier "puVar4") (= "=") (identifier "PTR_stdin_0038ee54")) (; ";")) (expression_statement "DAT_00396864 = 0xffffffff;" (assignment_expression "DAT_00396864 = 0xffffffff" (identifier "DAT_00396864") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_00396804 = 0;" (assignment_expression "DAT_00396804 = 0" (identifier "DAT_00396804") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = *(undefined4 *)PTR_stdin_0038ee54;" (assignment_expression "uVar2 = *(undefined4 *)PTR_stdin_0038ee54" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)PTR_stdin_0038ee54" (* "*") (cast_expression "(undefined4 *)PTR_stdin_0038ee54" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdin_0038ee54")))) (; ";")) (expression_statement "DAT_00396840 = &PTR_FUN_0038cc48;" (assignment_expression "DAT_00396840 = &PTR_FUN_0038cc48" (identifier "DAT_00396840") (= "=") (pointer_expression "&PTR_FUN_0038cc48" (& "&") (identifier "PTR_FUN_0038cc48"))) (; ";")) (expression_statement "DAT_00396800 = &PTR_FUN_0038c0a4;" (assignment_expression "DAT_00396800 = &PTR_FUN_0038c0a4" (identifier "DAT_00396800") (= "=") (pointer_expression "&PTR_FUN_0038c0a4" (& "&") (identifier "PTR_FUN_0038c0a4"))) (; ";")) (expression_statement "DAT_00396808 = 0;" (assignment_expression "DAT_00396808 = 0" (identifier "DAT_00396808") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0039680c = 0;" (assignment_expression "DAT_0039680c = 0" (identifier "DAT_0039680c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396810 = 0;" (assignment_expression "DAT_00396810 = 0" (identifier "DAT_00396810") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396814 = 0;" (assignment_expression "DAT_00396814 = 0" (identifier "DAT_00396814") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396818 = 0;" (assignment_expression "DAT_00396818 = 0" (identifier "DAT_00396818") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396860 = uVar1;" (assignment_expression "DAT_00396860 = uVar1" (identifier "DAT_00396860") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "FUN_00238070(&DAT_0039681c);" (call_expression "FUN_00238070(&DAT_0039681c)" (identifier "FUN_00238070") (argument_list "(&DAT_0039681c)" (( "(") (pointer_expression "&DAT_0039681c" (& "&") (identifier "DAT_0039681c")) () ")"))) (; ";")) (expression_statement "puVar3 = PTR_stderr_0038ed28;" (assignment_expression "puVar3 = PTR_stderr_0038ed28" (identifier "puVar3") (= "=") (identifier "PTR_stderr_0038ed28")) (; ";")) (expression_statement "DAT_00396800 = &PTR_FUN_0038cc48;" (assignment_expression "DAT_00396800 = &PTR_FUN_0038cc48" (identifier "DAT_00396800") (= "=") (pointer_expression "&PTR_FUN_0038cc48" (& "&") (identifier "PTR_FUN_0038cc48"))) (; ";")) (expression_statement "uVar1 = *(undefined4 *)PTR_stderr_0038ed28;" (assignment_expression "uVar1 = *(undefined4 *)PTR_stderr_0038ed28" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)PTR_stderr_0038ed28" (* "*") (cast_expression "(undefined4 *)PTR_stderr_0038ed28" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_0038ed28")))) (; ";")) (expression_statement "DAT_003967c0 = &PTR_FUN_0038c0a4;" (assignment_expression "DAT_003967c0 = &PTR_FUN_0038c0a4" (identifier "DAT_003967c0") (= "=") (pointer_expression "&PTR_FUN_0038c0a4" (& "&") (identifier "PTR_FUN_0038c0a4"))) (; ";")) (expression_statement "DAT_00396824 = 0xffffffff;" (assignment_expression "DAT_00396824 = 0xffffffff" (identifier "DAT_00396824") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_003967c4 = 0;" (assignment_expression "DAT_003967c4 = 0" (identifier "DAT_003967c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003967c8 = 0;" (assignment_expression "DAT_003967c8 = 0" (identifier "DAT_003967c8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003967cc = 0;" (assignment_expression "DAT_003967cc = 0" (identifier "DAT_003967cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003967d0 = 0;" (assignment_expression "DAT_003967d0 = 0" (identifier "DAT_003967d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003967d4 = 0;" (assignment_expression "DAT_003967d4 = 0" (identifier "DAT_003967d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003967d8 = 0;" (assignment_expression "DAT_003967d8 = 0" (identifier "DAT_003967d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396820 = uVar2;" (assignment_expression "DAT_00396820 = uVar2" (identifier "DAT_00396820") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_00238070(&DAT_003967dc);" (call_expression "FUN_00238070(&DAT_003967dc)" (identifier "FUN_00238070") (argument_list "(&DAT_003967dc)" (( "(") (pointer_expression "&DAT_003967dc" (& "&") (identifier "DAT_003967dc")) () ")"))) (; ";")) (expression_statement "DAT_003967c0 = &PTR_FUN_0038cc48;" (assignment_expression "DAT_003967c0 = &PTR_FUN_0038cc48" (identifier "DAT_003967c0") (= "=") (pointer_expression "&PTR_FUN_0038cc48" (& "&") (identifier "PTR_FUN_0038cc48"))) (; ";")) (expression_statement "DAT_003967e4 = 0xffffffff;" (assignment_expression "DAT_003967e4 = 0xffffffff" (identifier "DAT_003967e4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_003967e0 = uVar1;" (assignment_expression "DAT_003967e0 = uVar1" (identifier "DAT_003967e0") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "FUN_0022bca0(&DAT_00396c44);" (call_expression "FUN_0022bca0(&DAT_00396c44)" (identifier "FUN_0022bca0") (argument_list "(&DAT_00396c44)" (( "(") (pointer_expression "&DAT_00396c44" (& "&") (identifier "DAT_00396c44")) () ")"))) (; ";")) (expression_statement "DAT_00396cb4 = 0;" (assignment_expression "DAT_00396cb4 = 0" (identifier "DAT_00396cb4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396c40 = &PTR_FUN_0038c160;" (assignment_expression "DAT_00396c40 = &PTR_FUN_0038c160" (identifier "DAT_00396c40") (= "=") (pointer_expression "&PTR_FUN_0038c160" (& "&") (identifier "PTR_FUN_0038c160"))) (; ";")) (expression_statement "DAT_00396cb8 = 0;" (assignment_expression "DAT_00396cb8 = 0" (identifier "DAT_00396cb8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396cbc = 0;" (assignment_expression "DAT_00396cbc = 0" (identifier "DAT_00396cbc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396cc0 = 0;" (assignment_expression "DAT_00396cc0 = 0" (identifier "DAT_00396cc0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396cc4 = 0;" (assignment_expression "DAT_00396cc4 = 0" (identifier "DAT_00396cc4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396cc8 = 0;" (assignment_expression "DAT_00396cc8 = 0" (identifier "DAT_00396cc8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396c44 = &PTR_FUN_0038c174;" (assignment_expression "DAT_00396c44 = &PTR_FUN_0038c174" (identifier "DAT_00396c44") (= "=") (pointer_expression "&PTR_FUN_0038c174" (& "&") (identifier "PTR_FUN_0038c174"))) (; ";")) (expression_statement "FUN_00211450(&DAT_00396c44,&DAT_00396840);" (call_expression "FUN_00211450(&DAT_00396c44,&DAT_00396840)" (identifier "FUN_00211450") (argument_list "(&DAT_00396c44,&DAT_00396840)" (( "(") (pointer_expression "&DAT_00396c44" (& "&") (identifier "DAT_00396c44")) (, ",") (pointer_expression "&DAT_00396840" (& "&") (identifier "DAT_00396840")) () ")"))) (; ";")) (expression_statement "FUN_0022bca0(&DAT_00396ce8);" (call_expression "FUN_0022bca0(&DAT_00396ce8)" (identifier "FUN_0022bca0") (argument_list "(&DAT_00396ce8)" (( "(") (pointer_expression "&DAT_00396ce8" (& "&") (identifier "DAT_00396ce8")) () ")"))) (; ";")) (expression_statement "DAT_00396d58 = (undefined4 *)0x0;" (assignment_expression "DAT_00396d58 = (undefined4 *)0x0" (identifier "DAT_00396d58") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00396d5c = 0;" (assignment_expression "DAT_00396d5c = 0" (identifier "DAT_00396d5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396d60 = 0;" (assignment_expression "DAT_00396d60 = 0" (identifier "DAT_00396d60") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396d64 = 0;" (assignment_expression "DAT_00396d64 = 0" (identifier "DAT_00396d64") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396d68 = 0;" (assignment_expression "DAT_00396d68 = 0" (identifier "DAT_00396d68") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396d6c = 0;" (assignment_expression "DAT_00396d6c = 0" (identifier "DAT_00396d6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396ce0 = &PTR_FUN_0038c74c;" (assignment_expression "DAT_00396ce0 = &PTR_FUN_0038c74c" (identifier "DAT_00396ce0") (= "=") (pointer_expression "&PTR_FUN_0038c74c" (& "&") (identifier "PTR_FUN_0038c74c"))) (; ";")) (expression_statement "DAT_00396ce8 = &PTR_FUN_0038c760;" (assignment_expression "DAT_00396ce8 = &PTR_FUN_0038c760" (identifier "DAT_00396ce8") (= "=") (pointer_expression "&PTR_FUN_0038c760" (& "&") (identifier "PTR_FUN_0038c760"))) (; ";")) (expression_statement "DAT_00396ce4 = 0;" (assignment_expression "DAT_00396ce4 = 0" (identifier "DAT_00396ce4") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00211450(&DAT_00396ce8,&DAT_00396800);" (call_expression "FUN_00211450(&DAT_00396ce8,&DAT_00396800)" (identifier "FUN_00211450") (argument_list "(&DAT_00396ce8,&DAT_00396800)" (( "(") (pointer_expression "&DAT_00396ce8" (& "&") (identifier "DAT_00396ce8")) (, ",") (pointer_expression "&DAT_00396800" (& "&") (identifier "DAT_00396800")) () ")"))) (; ";")) (expression_statement "FUN_0022bca0(&DAT_00396ba4);" (call_expression "FUN_0022bca0(&DAT_00396ba4)" (identifier "FUN_0022bca0") (argument_list "(&DAT_00396ba4)" (( "(") (pointer_expression "&DAT_00396ba4" (& "&") (identifier "DAT_00396ba4")) () ")"))) (; ";")) (expression_statement "DAT_00396c14 = (undefined4 *)0x0;" (assignment_expression "DAT_00396c14 = (undefined4 *)0x0" (identifier "DAT_00396c14") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00396c18 = 0;" (assignment_expression "DAT_00396c18 = 0" (identifier "DAT_00396c18") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396c1c = 0;" (assignment_expression "DAT_00396c1c = 0" (identifier "DAT_00396c1c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396ba0 = &PTR_FUN_0038c160;" (assignment_expression "DAT_00396ba0 = &PTR_FUN_0038c160" (identifier "DAT_00396ba0") (= "=") (pointer_expression "&PTR_FUN_0038c160" (& "&") (identifier "PTR_FUN_0038c160"))) (; ";")) (expression_statement "DAT_00396c20 = 0;" (assignment_expression "DAT_00396c20 = 0" (identifier "DAT_00396c20") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396c24 = 0;" (assignment_expression "DAT_00396c24 = 0" (identifier "DAT_00396c24") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396c28 = 0;" (assignment_expression "DAT_00396c28 = 0" (identifier "DAT_00396c28") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396ba4 = &PTR_FUN_0038c174;" (assignment_expression "DAT_00396ba4 = &PTR_FUN_0038c174" (identifier "DAT_00396ba4") (= "=") (pointer_expression "&PTR_FUN_0038c174" (& "&") (identifier "PTR_FUN_0038c174"))) (; ";")) (expression_statement "FUN_00211450(&DAT_00396ba4,&DAT_003967c0);" (call_expression "FUN_00211450(&DAT_00396ba4,&DAT_003967c0)" (identifier "FUN_00211450") (argument_list "(&DAT_00396ba4,&DAT_003967c0)" (( "(") (pointer_expression "&DAT_00396ba4" (& "&") (identifier "DAT_00396ba4")) (, ",") (pointer_expression "&DAT_003967c0" (& "&") (identifier "DAT_003967c0")) () ")"))) (; ";")) (expression_statement "FUN_0022bca0(&DAT_00396b04);" (call_expression "FUN_0022bca0(&DAT_00396b04)" (identifier "FUN_0022bca0") (argument_list "(&DAT_00396b04)" (( "(") (pointer_expression "&DAT_00396b04" (& "&") (identifier "DAT_00396b04")) () ")"))) (; ";")) (expression_statement "DAT_00396b78 = 0;" (assignment_expression "DAT_00396b78 = 0" (identifier "DAT_00396b78") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396b00 = &PTR_FUN_0038c160;" (assignment_expression "DAT_00396b00 = &PTR_FUN_0038c160" (identifier "DAT_00396b00") (= "=") (pointer_expression "&PTR_FUN_0038c160" (& "&") (identifier "PTR_FUN_0038c160"))) (; ";")) (expression_statement "DAT_00396b74 = 0;" (assignment_expression "DAT_00396b74 = 0" (identifier "DAT_00396b74") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396b7c = 0;" (assignment_expression "DAT_00396b7c = 0" (identifier "DAT_00396b7c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396b80 = 0;" (assignment_expression "DAT_00396b80 = 0" (identifier "DAT_00396b80") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396b84 = 0;" (assignment_expression "DAT_00396b84 = 0" (identifier "DAT_00396b84") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396b88 = 0;" (assignment_expression "DAT_00396b88 = 0" (identifier "DAT_00396b88") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396b04 = &PTR_FUN_0038c174;" (assignment_expression "DAT_00396b04 = &PTR_FUN_0038c174" (identifier "DAT_00396b04") (= "=") (pointer_expression "&PTR_FUN_0038c174" (& "&") (identifier "PTR_FUN_0038c174"))) (; ";")) (expression_statement "FUN_00211450(&DAT_00396b04,&DAT_003967c0);" (call_expression "FUN_00211450(&DAT_00396b04,&DAT_003967c0)" (identifier "FUN_00211450") (argument_list "(&DAT_00396b04,&DAT_003967c0)" (( "(") (pointer_expression "&DAT_00396b04" (& "&") (identifier "DAT_00396b04")) (, ",") (pointer_expression "&DAT_003967c0" (& "&") (identifier "DAT_003967c0")) () ")"))) (; ";")) (expression_statement "DAT_003965a4 = 0;" (assignment_expression "DAT_003965a4 = 0" (identifier "DAT_003965a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396bb0 = DAT_00396bb0 | 0x2000;" (assignment_expression "DAT_00396bb0 = DAT_00396bb0 | 0x2000" (identifier "DAT_00396bb0") (= "=") (binary_expression "DAT_00396bb0 | 0x2000" (identifier "DAT_00396bb0") (| "|") (number_literal "0x2000"))) (; ";")) (expression_statement "DAT_00396d58 = &DAT_00396c40;" (assignment_expression "DAT_00396d58 = &DAT_00396c40" (identifier "DAT_00396d58") (= "=") (pointer_expression "&DAT_00396c40" (& "&") (identifier "DAT_00396c40"))) (; ";")) (expression_statement "DAT_00396c14 = &DAT_00396c40;" (assignment_expression "DAT_00396c14 = &DAT_00396c40" (identifier "DAT_00396c14") (= "=") (pointer_expression "&DAT_00396c40" (& "&") (identifier "DAT_00396c40"))) (; ";")) (expression_statement "DAT_003965a8 = 0;" (assignment_expression "DAT_003965a8 = 0" (identifier "DAT_003965a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003965ac = 0;" (assignment_expression "DAT_003965ac = 0" (identifier "DAT_003965ac") (= "=") (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_003965b0 = 0;" (assignment_expression "DAT_003965b0 = 0" (identifier "DAT_003965b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003965a0 = &PTR_FUN_0038c0e4;" (assignment_expression "DAT_003965a0 = &PTR_FUN_0038c0e4" (identifier "DAT_003965a0") (= "=") (pointer_expression "&PTR_FUN_0038c0e4" (& "&") (identifier "PTR_FUN_0038c0e4"))) (; ";")) (expression_statement "DAT_003965b4 = 0;" (assignment_expression "DAT_003965b4 = 0" (identifier "DAT_003965b4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003965b8 = 0;" (assignment_expression "DAT_003965b8 = 0" (identifier "DAT_003965b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00238070(&DAT_003965bc);" (call_expression "FUN_00238070(&DAT_003965bc)" (identifier "FUN_00238070") (argument_list "(&DAT_003965bc)" (( "(") (pointer_expression "&DAT_003965bc" (& "&") (identifier "DAT_003965bc")) () ")"))) (; ";")) (expression_statement "DAT_003965c4 = 0xffffffff;" (assignment_expression "DAT_003965c4 = 0xffffffff" (identifier "DAT_003965c4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_00396564 = 0;" (assignment_expression "DAT_00396564 = 0" (identifier "DAT_00396564") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003965a0 = &PTR_FUN_0038cc88;" (assignment_expression "DAT_003965a0 = &PTR_FUN_0038cc88" (identifier "DAT_003965a0") (= "=") (pointer_expression "&PTR_FUN_0038cc88" (& "&") (identifier "PTR_FUN_0038cc88"))) (; ";")) (expression_statement "DAT_00396568 = 0;" (assignment_expression "DAT_00396568 = 0" (identifier "DAT_00396568") (= "=") (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_0039656c = 0;" (assignment_expression "DAT_0039656c = 0" (identifier "DAT_0039656c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396560 = &PTR_FUN_0038c0e4;" (assignment_expression "DAT_00396560 = &PTR_FUN_0038c0e4" (identifier "DAT_00396560") (= "=") (pointer_expression "&PTR_FUN_0038c0e4" (& "&") (identifier "PTR_FUN_0038c0e4"))) (; ";")) (expression_statement "DAT_00396570 = 0;" (assignment_expression "DAT_00396570 = 0" (identifier "DAT_00396570") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396574 = 0;" (assignment_expression "DAT_00396574 = 0" (identifier "DAT_00396574") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396578 = 0;" (assignment_expression "DAT_00396578 = 0" (identifier "DAT_00396578") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003965c0 = uVar1;" (assignment_expression "DAT_003965c0 = uVar1" (identifier "DAT_003965c0") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "FUN_00238070(&DAT_0039657c);" (call_expression "FUN_00238070(&DAT_0039657c)" (identifier "FUN_00238070") (argument_list "(&DAT_0039657c)" (( "(") (pointer_expression "&DAT_0039657c" (& "&") (identifier "DAT_0039657c")) () ")"))) (; ";")) (expression_statement "DAT_00396560 = &PTR_FUN_0038cc88;" (assignment_expression "DAT_00396560 = &PTR_FUN_0038cc88" (identifier "DAT_00396560") (= "=") (pointer_expression "&PTR_FUN_0038cc88" (& "&") (identifier "PTR_FUN_0038cc88"))) (; ";")) (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_00396584 = 0xffffffff;" (assignment_expression "DAT_00396584 = 0xffffffff" (identifier "DAT_00396584") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_00396520 = &PTR_FUN_0038c0e4;" (assignment_expression "DAT_00396520 = &PTR_FUN_0038c0e4" (identifier "DAT_00396520") (= "=") (pointer_expression "&PTR_FUN_0038c0e4" (& "&") (identifier "PTR_FUN_0038c0e4"))) (; ";")) (expression_statement "DAT_00396524 = 0;" (assignment_expression "DAT_00396524 = 0" (identifier "DAT_00396524") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396528 = 0;" (assignment_expression "DAT_00396528 = 0" (identifier "DAT_00396528") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0039652c = 0;" (assignment_expression "DAT_0039652c = 0" (identifier "DAT_0039652c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396530 = 0;" (assignment_expression "DAT_00396530 = 0" (identifier "DAT_00396530") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396534 = 0;" (assignment_expression "DAT_00396534 = 0" (identifier "DAT_00396534") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396538 = 0;" (assignment_expression "DAT_00396538 = 0" (identifier "DAT_00396538") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396580 = uVar2;" (assignment_expression "DAT_00396580 = uVar2" (identifier "DAT_00396580") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_00238070(&DAT_0039653c);" (call_expression "FUN_00238070(&DAT_0039653c)" (identifier "FUN_00238070") (argument_list "(&DAT_0039653c)" (( "(") (pointer_expression "&DAT_0039653c" (& "&") (identifier "DAT_0039653c")) () ")"))) (; ";")) (expression_statement "DAT_00396520 = &PTR_FUN_0038cc88;" (assignment_expression "DAT_00396520 = &PTR_FUN_0038cc88" (identifier "DAT_00396520") (= "=") (pointer_expression "&PTR_FUN_0038cc88" (& "&") (identifier "PTR_FUN_0038cc88"))) (; ";")) (expression_statement "DAT_00396544 = 0xffffffff;" (assignment_expression "DAT_00396544 = 0xffffffff" (identifier "DAT_00396544") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "DAT_00396540 = uVar1;" (assignment_expression "DAT_00396540 = uVar1" (identifier "DAT_00396540") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "FUN_0022bca0(&DAT_003969c4);" (call_expression "FUN_0022bca0(&DAT_003969c4)" (identifier "FUN_0022bca0") (argument_list "(&DAT_003969c4)" (( "(") (pointer_expression "&DAT_003969c4" (& "&") (identifier "DAT_003969c4")) () ")"))) (; ";")) (expression_statement "DAT_00396a34 = 0;" (assignment_expression "DAT_00396a34 = 0" (identifier "DAT_00396a34") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003969c0 = &PTR_FUN_0038c190;" (assignment_expression "DAT_003969c0 = &PTR_FUN_0038c190" (identifier "DAT_003969c0") (= "=") (pointer_expression "&PTR_FUN_0038c190" (& "&") (identifier "PTR_FUN_0038c190"))) (; ";")) (expression_statement "DAT_00396a38 = 0;" (assignment_expression "DAT_00396a38 = 0" (identifier "DAT_00396a38") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396a3c = 0;" (assignment_expression "DAT_00396a3c = 0" (identifier "DAT_00396a3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396a40 = 0;" (assignment_expression "DAT_00396a40 = 0" (identifier "DAT_00396a40") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396a44 = 0;" (assignment_expression "DAT_00396a44 = 0" (identifier "DAT_00396a44") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396a48 = 0;" (assignment_expression "DAT_00396a48 = 0" (identifier "DAT_00396a48") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396a4c = 0;" (assignment_expression "DAT_00396a4c = 0" (identifier "DAT_00396a4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003969c4 = &PTR_FUN_0038c1a4;" (assignment_expression "DAT_003969c4 = &PTR_FUN_0038c1a4" (identifier "DAT_003969c4") (= "=") (pointer_expression "&PTR_FUN_0038c1a4" (& "&") (identifier "PTR_FUN_0038c1a4"))) (; ";")) (expression_statement "FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);" (call_expression "FUN_00211dd0(&DAT_003969c4,&DAT_003965a0)" (identifier "FUN_00211dd0") (argument_list "(&DAT_003969c4,&DAT_003965a0)" (( "(") (pointer_expression "&DAT_003969c4" (& "&") (identifier "DAT_003969c4")) (, ",") (pointer_expression "&DAT_003965a0" (& "&") (identifier "DAT_003965a0")) () ")"))) (; ";")) (expression_statement "FUN_0022bca0(&DAT_00396a68);" (call_expression "FUN_0022bca0(&DAT_00396a68)" (identifier "FUN_0022bca0") (argument_list "(&DAT_00396a68)" (( "(") (pointer_expression "&DAT_00396a68" (& "&") (identifier "DAT_00396a68")) () ")"))) (; ";")) (expression_statement "DAT_00396ad8 = (undefined4 *)0x0;" (assignment_expression "DAT_00396ad8 = (undefined4 *)0x0" (identifier "DAT_00396ad8") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00396adc = 0;" (assignment_expression "DAT_00396adc = 0" (identifier "DAT_00396adc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396ae0 = 0;" (assignment_expression "DAT_00396ae0 = 0" (identifier "DAT_00396ae0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396ae4 = 0;" (assignment_expression "DAT_00396ae4 = 0" (identifier "DAT_00396ae4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396ae8 = 0;" (assignment_expression "DAT_00396ae8 = 0" (identifier "DAT_00396ae8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396aec = 0;" (assignment_expression "DAT_00396aec = 0" (identifier "DAT_00396aec") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396af0 = 0;" (assignment_expression "DAT_00396af0 = 0" (identifier "DAT_00396af0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396a60 = &PTR_FUN_0038c77c;" (assignment_expression "DAT_00396a60 = &PTR_FUN_0038c77c" (identifier "DAT_00396a60") (= "=") (pointer_expression "&PTR_FUN_0038c77c" (& "&") (identifier "PTR_FUN_0038c77c"))) (; ";")) (expression_statement "DAT_00396a68 = &PTR_FUN_0038c790;" (assignment_expression "DAT_00396a68 = &PTR_FUN_0038c790" (identifier "DAT_00396a68") (= "=") (pointer_expression "&PTR_FUN_0038c790" (& "&") (identifier "PTR_FUN_0038c790"))) (; ";")) (expression_statement "DAT_00396a64 = 0;" (assignment_expression "DAT_00396a64 = 0" (identifier "DAT_00396a64") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00211dd0(&DAT_00396a68,&DAT_00396560);" (call_expression "FUN_00211dd0(&DAT_00396a68,&DAT_00396560)" (identifier "FUN_00211dd0") (argument_list "(&DAT_00396a68,&DAT_00396560)" (( "(") (pointer_expression "&DAT_00396a68" (& "&") (identifier "DAT_00396a68")) (, ",") (pointer_expression "&DAT_00396560" (& "&") (identifier "DAT_00396560")) () ")"))) (; ";")) (expression_statement "FUN_0022bca0(&DAT_00396924);" (call_expression "FUN_0022bca0(&DAT_00396924)" (identifier "FUN_0022bca0") (argument_list "(&DAT_00396924)" (( "(") (pointer_expression "&DAT_00396924" (& "&") (identifier "DAT_00396924")) () ")"))) (; ";")) (expression_statement "DAT_0039699c = 0;" (assignment_expression "DAT_0039699c = 0" (identifier "DAT_0039699c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396994 = (undefined4 *)0x0;" (assignment_expression "DAT_00396994 = (undefined4 *)0x0" (identifier "DAT_00396994") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00396920 = &PTR_FUN_0038c190;" (assignment_expression "DAT_00396920 = &PTR_FUN_0038c190" (identifier "DAT_00396920") (= "=") (pointer_expression "&PTR_FUN_0038c190" (& "&") (identifier "PTR_FUN_0038c190"))) (; ";")) (expression_statement "DAT_00396998 = 0;" (assignment_expression "DAT_00396998 = 0" (identifier "DAT_00396998") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003969a0 = 0;" (assignment_expression "DAT_003969a0 = 0" (identifier "DAT_003969a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003969a4 = 0;" (assignment_expression "DAT_003969a4 = 0" (identifier "DAT_003969a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003969a8 = 0;" (assignment_expression "DAT_003969a8 = 0" (identifier "DAT_003969a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003969ac = 0;" (assignment_expression "DAT_003969ac = 0" (identifier "DAT_003969ac") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396924 = &PTR_FUN_0038c1a4;" (assignment_expression "DAT_00396924 = &PTR_FUN_0038c1a4" (identifier "DAT_00396924") (= "=") (pointer_expression "&PTR_FUN_0038c1a4" (& "&") (identifier "PTR_FUN_0038c1a4"))) (; ";")) (expression_statement "FUN_00211dd0(&DAT_00396924,&DAT_00396520);" (call_expression "FUN_00211dd0(&DAT_00396924,&DAT_00396520)" (identifier "FUN_00211dd0") (argument_list "(&DAT_00396924,&DAT_00396520)" (( "(") (pointer_expression "&DAT_00396924" (& "&") (identifier "DAT_00396924")) (, ",") (pointer_expression "&DAT_00396520" (& "&") (identifier "DAT_00396520")) () ")"))) (; ";")) (expression_statement "FUN_0022bca0(&DAT_00396884);" (call_expression "FUN_0022bca0(&DAT_00396884)" (identifier "FUN_0022bca0") (argument_list "(&DAT_00396884)" (( "(") (pointer_expression "&DAT_00396884" (& "&") (identifier "DAT_00396884")) () ")"))) (; ";")) (expression_statement "DAT_003968f4 = 0;" (assignment_expression "DAT_003968f4 = 0" (identifier "DAT_003968f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396880 = &PTR_FUN_0038c190;" (assignment_expression "DAT_00396880 = &PTR_FUN_0038c190" (identifier "DAT_00396880") (= "=") (pointer_expression "&PTR_FUN_0038c190" (& "&") (identifier "PTR_FUN_0038c190"))) (; ";")) (expression_statement "DAT_003968f8 = 0;" (assignment_expression "DAT_003968f8 = 0" (identifier "DAT_003968f8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003968fc = 0;" (assignment_expression "DAT_003968fc = 0" (identifier "DAT_003968fc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396900 = 0;" (assignment_expression "DAT_00396900 = 0" (identifier "DAT_00396900") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396904 = 0;" (assignment_expression "DAT_00396904 = 0" (identifier "DAT_00396904") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396908 = 0;" (assignment_expression "DAT_00396908 = 0" (identifier "DAT_00396908") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0039690c = 0;" (assignment_expression "DAT_0039690c = 0" (identifier "DAT_0039690c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00396884 = &PTR_FUN_0038c1a4;" (assignment_expression "DAT_00396884 = &PTR_FUN_0038c1a4" (identifier "DAT_00396884") (= "=") (pointer_expression "&PTR_FUN_0038c1a4" (& "&") (identifier "PTR_FUN_0038c1a4"))) (; ";")) (expression_statement "FUN_00211dd0(&DAT_00396884,&DAT_00396520);" (call_expression "FUN_00211dd0(&DAT_00396884,&DAT_00396520)" (identifier "FUN_00211dd0") (argument_list "(&DAT_00396884,&DAT_00396520)" (( "(") (pointer_expression "&DAT_00396884" (& "&") (identifier "DAT_00396884")) (, ",") (pointer_expression "&DAT_00396520" (& "&") (identifier "DAT_00396520")) () ")"))) (; ";")) (expression_statement "DAT_00396930 = DAT_00396930 | 0x2000;" (assignment_expression "DAT_00396930 = DAT_00396930 | 0x2000" (identifier "DAT_00396930") (= "=") (binary_expression "DAT_00396930 | 0x2000" (identifier "DAT_00396930") (| "|") (number_literal "0x2000"))) (; ";")) (expression_statement "DAT_00396ad8 = &DAT_003969c0;" (assignment_expression "DAT_00396ad8 = &DAT_003969c0" (identifier "DAT_00396ad8") (= "=") (pointer_expression "&DAT_003969c0" (& "&") (identifier "DAT_003969c0"))) (; ";")) (expression_statement "DAT_00396994 = &DAT_003969c0;" (assignment_expression "DAT_00396994 = &DAT_003969c0" (identifier "DAT_00396994") (= "=") (pointer_expression "&DAT_003969c0" (& "&") (identifier "DAT_003969c0"))) (; ";")) (if_statement "if (puVar6 != (undefined *)0x0) {\n      LOCK();\n      DAT_00396e1c = DAT_00396e1c + 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_00396e1c = DAT_00396e1c + 1;\n      UNLOCK();\n      return;\n    }" ({ "{") (expression_statement "LOCK();" (call_expression "LOCK()" (identifier "LOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_00396e1c = DAT_00396e1c + 1;" (assignment_expression "DAT_00396e1c = DAT_00396e1c + 1" (identifier "DAT_00396e1c") (= "=") (binary_expression "DAT_00396e1c + 1" (identifier "DAT_00396e1c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "UNLOCK();" (call_expression "UNLOCK()" (identifier "UNLOCK") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "DAT_00396e1c = DAT_00396e1c + 1;" (assignment_expression "DAT_00396e1c = DAT_00396e1c + 1" (identifier "DAT_00396e1c") (= "=") (binary_expression "DAT_00396e1c + 1" (identifier "DAT_00396e1c") (+ "+") (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_0038eea0;
  if (var_1 != (type_2 *)0x0) {
    var_2();
    var_3();
  }
  var_4 = var_4 + 1;
  if (var_5 == 0) {
    DAT_00396844 = 0;
    _S_synced_with_stdio = 1;
    DAT_00396848 = 0;
    uVar1 = *(type_1 *)PTR_stdout_0038eea0;
    DAT_0039684c = 0;
    __gnu_internal::buf_cout_sync = &PTR__streambuf_0038c0a4;
    DAT_00396850 = 0;
    DAT_00396854 = 0;
    DAT_00396858 = 0;
    locale::var_6((var_6 *)&DAT_0039685c);
    puVar4 = PTR_stdin_0038ee54;
    DAT_00396864 = 0xffffffff;
    DAT_00396804 = 0;
    uVar2 = *(type_1 *)PTR_stdin_0038ee54;
    __gnu_internal::buf_cout_sync = &PTR__stdio_sync_filebuf_0038cc48;
    __gnu_internal::buf_cin_sync = &PTR__streambuf_0038c0a4;
    DAT_00396808 = 0;
    DAT_0039680c = 0;
    DAT_00396810 = 0;
    DAT_00396814 = 0;
    DAT_00396818 = 0;
    DAT_00396860 = uVar1;
    locale::var_6((var_6 *)&DAT_0039681c);
    puVar3 = PTR_stderr_0038ed28;
    __gnu_internal::buf_cin_sync = &PTR__stdio_sync_filebuf_0038cc48;
    uVar1 = *(type_1 *)PTR_stderr_0038ed28;
    __gnu_internal::buf_cerr_sync = &PTR__streambuf_0038c0a4;
    DAT_00396824 = 0xffffffff;
    DAT_003967c4 = 0;
    DAT_003967c8 = 0;
    DAT_003967cc = 0;
    DAT_003967d0 = 0;
    DAT_003967d4 = 0;
    DAT_003967d8 = 0;
    DAT_00396820 = uVar2;
    locale::var_6((var_6 *)&DAT_003967dc);
    __gnu_internal::buf_cerr_sync = &PTR__stdio_sync_filebuf_0038cc48;
    DAT_003967e4 = 0xffffffff;
    DAT_003967e0 = uVar1;
    var_7((var_7 *)&DAT_00396c44);
    _DAT_00396cb4 = 0;
    cout = 0x38c160;
    DAT_00396cb8 = 0;
    DAT_00396cbc = 0;
    DAT_00396cc0 = 0;
    DAT_00396cc4 = 0;
    DAT_00396cc8 = 0;
    DAT_00396c44 = 0x38c174;
                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */
    ios::var_8((type_3 *)&DAT_00396c44,(streambuf *)&__gnu_internal::buf_cout_sync);
    var_7((var_7 *)&DAT_00396ce8);
    DAT_00396d58 = (type_1 *)0x0;
    _DAT_00396d5c = 0;
    _DAT_00396d60 = 0;
    _DAT_00396d64 = 0;
    _DAT_00396d68 = 0;
    _DAT_00396d6c = 0;
    cin = 0x38c74c;
    DAT_00396ce8 = 0x38c760;
    DAT_00396ce4 = 0;
                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */
    ios::var_8((type_3 *)&DAT_00396ce8,(streambuf *)&__gnu_internal::buf_cin_sync);
    var_7((var_7 *)&DAT_00396ba4);
    DAT_00396c14 = (type_1 *)0x0;
    _DAT_00396c18 = 0;
    _DAT_00396c1c = 0;
    cerr = 0x38c160;
    DAT_00396c20 = 0;
    DAT_00396c24 = 0;
    DAT_00396c28 = 0;
    DAT_00396ba4 = 0x38c174;
                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */
    ios::var_8((type_3 *)&DAT_00396ba4,(streambuf *)&__gnu_internal::buf_cerr_sync);
    var_7((var_7 *)&DAT_00396b04);
    _DAT_00396b78 = 0;
    clog = 0x38c160;
    DAT_00396b74 = 0;
    DAT_00396b7c = 0;
    DAT_00396b80 = 0;
    DAT_00396b84 = 0;
    DAT_00396b88 = 0;
    DAT_00396b04 = 0x38c174;
                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */
    ios::var_8((type_3 *)&DAT_00396b04,(streambuf *)&__gnu_internal::buf_cerr_sync);
    DAT_003965a4 = 0;
    var_9 = var_9 | 0x2000;
    DAT_00396d58 = &cout;
    DAT_00396c14 = &cout;
    DAT_003965a8 = 0;
    DAT_003965ac = 0;
    uVar1 = *(type_1 *)puVar5;
    DAT_003965b0 = 0;
    __gnu_internal::buf_wcout_sync = &PTR__wstreambuf_0038c0e4;
    DAT_003965b4 = 0;
    DAT_003965b8 = 0;
    locale::var_6((var_6 *)&DAT_003965bc);
    DAT_003965c4 = 0xffffffff;
    DAT_00396564 = 0;
    __gnu_internal::buf_wcout_sync = &PTR__stdio_sync_filebuf_0038cc88;
    DAT_00396568 = 0;
    uVar2 = *(type_1 *)puVar4;
    DAT_0039656c = 0;
    __gnu_internal::buf_wcin_sync = &PTR__wstreambuf_0038c0e4;
    DAT_00396570 = 0;
    DAT_00396574 = 0;
    DAT_00396578 = 0;
    DAT_003965c0 = uVar1;
    locale::var_6((var_6 *)&DAT_0039657c);
    __gnu_internal::buf_wcin_sync = &PTR__stdio_sync_filebuf_0038cc88;
    uVar1 = *(type_1 *)puVar3;
    DAT_00396584 = 0xffffffff;
    __gnu_internal::buf_wcerr_sync = &PTR__wstreambuf_0038c0e4;
    DAT_00396524 = 0;
    DAT_00396528 = 0;
    DAT_0039652c = 0;
    DAT_00396530 = 0;
    DAT_00396534 = 0;
    DAT_00396538 = 0;
    DAT_00396580 = uVar2;
    locale::var_6((var_6 *)&DAT_0039653c);
    __gnu_internal::buf_wcerr_sync = &PTR__stdio_sync_filebuf_0038cc88;
    DAT_00396544 = 0xffffffff;
    DAT_00396540 = uVar1;
    var_7((var_7 *)&DAT_003969c4);
    _DAT_00396a34 = 0;
    wcout = 0x38c190;
    DAT_00396a38 = 0;
    DAT_00396a3c = 0;
    DAT_00396a40 = 0;
    DAT_00396a44 = 0;
    DAT_00396a48 = 0;
    DAT_00396a4c = 0;
    DAT_003969c4 = 0x38c1a4;
                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */
    wios::var_8((type_4 *)&DAT_003969c4,(wstreambuf *)&__gnu_internal::buf_wcout_sync);
    var_7((var_7 *)&DAT_00396a68);
    DAT_00396ad8 = (type_1 *)0x0;
    _DAT_00396adc = 0;
    DAT_00396ae0 = 0;
    _DAT_00396ae4 = 0;
    _DAT_00396ae8 = 0;
    _DAT_00396aec = 0;
    _DAT_00396af0 = 0;
    wcin = 0x38c77c;
    DAT_00396a68 = 0x38c790;
    DAT_00396a64 = 0;
                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */
    wios::var_8((type_4 *)&DAT_00396a68,(wstreambuf *)&__gnu_internal::buf_wcin_sync);
    var_7((var_7 *)&DAT_00396924);
    DAT_0039699c = 0;
    DAT_00396994 = (type_1 *)0x0;
    wcerr = 0x38c190;
    DAT_00396998 = 0;
    DAT_003969a0 = 0;
    DAT_003969a4 = 0;
    DAT_003969a8 = 0;
    DAT_003969ac = 0;
    DAT_00396924 = 0x38c1a4;
                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */
    wios::var_8((type_4 *)&DAT_00396924,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);
    var_7((var_7 *)&DAT_00396884);
    _DAT_003968f4 = 0;
    wclog = 0x38c190;
    DAT_003968f8 = 0;
    DAT_003968fc = 0;
    DAT_00396900 = 0;
    DAT_00396904 = 0;
    DAT_00396908 = 0;
    DAT_0039690c = 0;
    DAT_00396884 = 0x38c1a4;
                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */
    wios::var_8((type_4 *)&DAT_00396884,(wstreambuf *)&__gnu_internal::buf_wcerr_sync);
    var_10 = var_10 | 0x2000;
    DAT_00396ad8 = &wcout;
    DAT_00396994 = &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_00396e1c;
  puVar6 = PTR___pthread_key_create_0038ef24;
  puVar5 = PTR_stdout_0038eea0;
  if (PTR___pthread_key_create_0038ef24 != (undefined *)0x0) {
    LOCK();
    UNLOCK();
  }
  DAT_00396e1c = DAT_00396e1c + 1;
  if (iVar7 == 0) {
    DAT_00396844 = 0;
    DAT_0038f3a0 = 1;
    DAT_00396848 = 0;
    uVar1 = *(undefined4 *)PTR_stdout_0038eea0;
    DAT_0039684c = 0;
    DAT_00396840 = &PTR_FUN_0038c0a4;
    DAT_00396850 = 0;
    DAT_00396854 = 0;
    DAT_00396858 = 0;
    FUN_00238070(&DAT_0039685c);
    puVar4 = PTR_stdin_0038ee54;
    DAT_00396864 = 0xffffffff;
    DAT_00396804 = 0;
    uVar2 = *(undefined4 *)PTR_stdin_0038ee54;
    DAT_00396840 = &PTR_FUN_0038cc48;
    DAT_00396800 = &PTR_FUN_0038c0a4;
    DAT_00396808 = 0;
    DAT_0039680c = 0;
    DAT_00396810 = 0;
    DAT_00396814 = 0;
    DAT_00396818 = 0;
    DAT_00396860 = uVar1;
    FUN_00238070(&DAT_0039681c);
    puVar3 = PTR_stderr_0038ed28;
    DAT_00396800 = &PTR_FUN_0038cc48;
    uVar1 = *(undefined4 *)PTR_stderr_0038ed28;
    DAT_003967c0 = &PTR_FUN_0038c0a4;
    DAT_00396824 = 0xffffffff;
    DAT_003967c4 = 0;
    DAT_003967c8 = 0;
    DAT_003967cc = 0;
    DAT_003967d0 = 0;
    DAT_003967d4 = 0;
    DAT_003967d8 = 0;
    DAT_00396820 = uVar2;
    FUN_00238070(&DAT_003967dc);
    DAT_003967c0 = &PTR_FUN_0038cc48;
    DAT_003967e4 = 0xffffffff;
    DAT_003967e0 = uVar1;
    FUN_0022bca0(&DAT_00396c44);
    DAT_00396cb4 = 0;
    DAT_00396c40 = &PTR_FUN_0038c160;
    DAT_00396cb8 = 0;
    DAT_00396cbc = 0;
    DAT_00396cc0 = 0;
    DAT_00396cc4 = 0;
    DAT_00396cc8 = 0;
    DAT_00396c44 = &PTR_FUN_0038c174;
                    /* try { // try from 001ea1f3 to 001ea1f7 has its CatchHandler @ 001ea709 */
    FUN_00211450(&DAT_00396c44,&DAT_00396840);
    FUN_0022bca0(&DAT_00396ce8);
    DAT_00396d58 = (undefined4 *)0x0;
    DAT_00396d5c = 0;
    DAT_00396d60 = 0;
    DAT_00396d64 = 0;
    DAT_00396d68 = 0;
    DAT_00396d6c = 0;
    DAT_00396ce0 = &PTR_FUN_0038c74c;
    DAT_00396ce8 = &PTR_FUN_0038c760;
    DAT_00396ce4 = 0;
                    /* try { // try from 001ea268 to 001ea26c has its CatchHandler @ 001ea6fa */
    FUN_00211450(&DAT_00396ce8,&DAT_00396800);
    FUN_0022bca0(&DAT_00396ba4);
    DAT_00396c14 = (undefined4 *)0x0;
    DAT_00396c18 = 0;
    DAT_00396c1c = 0;
    DAT_00396ba0 = &PTR_FUN_0038c160;
    DAT_00396c20 = 0;
    DAT_00396c24 = 0;
    DAT_00396c28 = 0;
    DAT_00396ba4 = &PTR_FUN_0038c174;
                    /* try { // try from 001ea2d2 to 001ea2d6 has its CatchHandler @ 001ea701 */
    FUN_00211450(&DAT_00396ba4,&DAT_003967c0);
    FUN_0022bca0(&DAT_00396b04);
    DAT_00396b78 = 0;
    DAT_00396b00 = &PTR_FUN_0038c160;
    DAT_00396b74 = 0;
    DAT_00396b7c = 0;
    DAT_00396b80 = 0;
    DAT_00396b84 = 0;
    DAT_00396b88 = 0;
    DAT_00396b04 = &PTR_FUN_0038c174;
                    /* try { // try from 001ea33a to 001ea33e has its CatchHandler @ 001ea6dd */
    FUN_00211450(&DAT_00396b04,&DAT_003967c0);
    DAT_003965a4 = 0;
    DAT_00396bb0 = DAT_00396bb0 | 0x2000;
    DAT_00396d58 = &DAT_00396c40;
    DAT_00396c14 = &DAT_00396c40;
    DAT_003965a8 = 0;
    DAT_003965ac = 0;
    uVar1 = *(undefined4 *)puVar5;
    DAT_003965b0 = 0;
    DAT_003965a0 = &PTR_FUN_0038c0e4;
    DAT_003965b4 = 0;
    DAT_003965b8 = 0;
    FUN_00238070(&DAT_003965bc);
    DAT_003965c4 = 0xffffffff;
    DAT_00396564 = 0;
    DAT_003965a0 = &PTR_FUN_0038cc88;
    DAT_00396568 = 0;
    uVar2 = *(undefined4 *)puVar4;
    DAT_0039656c = 0;
    DAT_00396560 = &PTR_FUN_0038c0e4;
    DAT_00396570 = 0;
    DAT_00396574 = 0;
    DAT_00396578 = 0;
    DAT_003965c0 = uVar1;
    FUN_00238070(&DAT_0039657c);
    DAT_00396560 = &PTR_FUN_0038cc88;
    uVar1 = *(undefined4 *)puVar3;
    DAT_00396584 = 0xffffffff;
    DAT_00396520 = &PTR_FUN_0038c0e4;
    DAT_00396524 = 0;
    DAT_00396528 = 0;
    DAT_0039652c = 0;
    DAT_00396530 = 0;
    DAT_00396534 = 0;
    DAT_00396538 = 0;
    DAT_00396580 = uVar2;
    FUN_00238070(&DAT_0039653c);
    DAT_00396520 = &PTR_FUN_0038cc88;
    DAT_00396544 = 0xffffffff;
    DAT_00396540 = uVar1;
    FUN_0022bca0(&DAT_003969c4);
    DAT_00396a34 = 0;
    DAT_003969c0 = &PTR_FUN_0038c190;
    DAT_00396a38 = 0;
    DAT_00396a3c = 0;
    DAT_00396a40 = 0;
    DAT_00396a44 = 0;
    DAT_00396a48 = 0;
    DAT_00396a4c = 0;
    DAT_003969c4 = &PTR_FUN_0038c1a4;
                    /* try { // try from 001ea533 to 001ea537 has its CatchHandler @ 001ea6e4 */
    FUN_00211dd0(&DAT_003969c4,&DAT_003965a0);
    FUN_0022bca0(&DAT_00396a68);
    DAT_00396ad8 = (undefined4 *)0x0;
    DAT_00396adc = 0;
    DAT_00396ae0 = 0;
    DAT_00396ae4 = 0;
    DAT_00396ae8 = 0;
    DAT_00396aec = 0;
    DAT_00396af0 = 0;
    DAT_00396a60 = &PTR_FUN_0038c77c;
    DAT_00396a68 = &PTR_FUN_0038c790;
    DAT_00396a64 = 0;
                    /* try { // try from 001ea5ae to 001ea5b2 has its CatchHandler @ 001ea6eb */
    FUN_00211dd0(&DAT_00396a68,&DAT_00396560);
    FUN_0022bca0(&DAT_00396924);
    DAT_0039699c = 0;
    DAT_00396994 = (undefined4 *)0x0;
    DAT_00396920 = &PTR_FUN_0038c190;
    DAT_00396998 = 0;
    DAT_003969a0 = 0;
    DAT_003969a4 = 0;
    DAT_003969a8 = 0;
    DAT_003969ac = 0;
    DAT_00396924 = &PTR_FUN_0038c1a4;
                    /* try { // try from 001ea620 to 001ea624 has its CatchHandler @ 001ea6f2 */
    FUN_00211dd0(&DAT_00396924,&DAT_00396520);
    FUN_0022bca0(&DAT_00396884);
    DAT_003968f4 = 0;
    DAT_00396880 = &PTR_FUN_0038c190;
    DAT_003968f8 = 0;
    DAT_003968fc = 0;
    DAT_00396900 = 0;
    DAT_00396904 = 0;
    DAT_00396908 = 0;
    DAT_0039690c = 0;
    DAT_00396884 = &PTR_FUN_0038c1a4;
                    /* try { // try from 001ea690 to 001ea694 has its CatchHandler @ 001ea6d6 */
    FUN_00211dd0(&DAT_00396884,&DAT_00396520);
    DAT_00396930 = DAT_00396930 | 0x2000;
    DAT_00396ad8 = &DAT_003969c0;
    DAT_00396994 = &DAT_003969c0;
    if (puVar6 != (undefined *)0x0) {
      LOCK();
      DAT_00396e1c = DAT_00396e1c + 1;
      UNLOCK();
      return;
    }
    DAT_00396e1c = DAT_00396e1c + 1;
    return;
  }
  return;
}

