
/* std::wfstream::wfstream(std::wfstream&&) */

void __thiscall std::wfstream::wfstream(wfstream *this,wfstream *param_1)

{
  ios_base *this_00;
  wfstream wVar1;
  undefined4 uVar2;
  int iVar3;
  int unaff_EDI;
  
  __x86_get_pc_thunk_di();
  this_00 = (ios_base *)(this + 0x98);
  ios_base::ios_base(this_00);
  *(undefined **)(this + 0x98) = &UNK_00209d27 + unaff_EDI;
  uVar2 = *(undefined4 *)(param_1 + 4);
  *(undefined **)this = &UNK_00209d13 + unaff_EDI;
  *(undefined4 *)(this + 0x108) = 0;
  *(undefined4 *)(this + 4) = uVar2;
  iVar3 = *(int *)param_1;
  *(undefined4 *)(this + 0x10c) = 0;
  iVar3 = *(int *)(iVar3 + -0xc);
  this[0x110] = (wfstream)0x0;
  *(undefined4 *)(this + 0x114) = 0;
  *(undefined4 *)(this + 0x118) = 0;
  *(undefined4 *)(this + 0x11c) = 0;
  *(undefined4 *)(this + 0x120) = 0;
  ios_base::_M_move(this_00);
                    /* try { // try from 003ddefe to 003ddf02 has its CatchHandler @ 003ddf82 */
  wios::_M_cache_locale((locale *)this_00);
  uVar2 = *(undefined4 *)(param_1 + iVar3 + 0x70);
  *(undefined4 *)(param_1 + iVar3 + 0x70) = 0;
  *(undefined4 *)(this + 0x108) = uVar2;
  *(undefined4 *)(this + 0x10c) = *(undefined4 *)(param_1 + iVar3 + 0x74);
  wVar1 = param_1[iVar3 + 0x78];
  *(undefined4 *)(this + 0x114) = 0;
  this[0x110] = wVar1;
  *(undefined4 *)(param_1 + 4) = 0;
  *(undefined **)this = &UNK_00209d9f + unaff_EDI;
  *(undefined **)(this + 8) = &UNK_00209db3 + unaff_EDI;
  *(undefined **)(this + 0x98) = &UNK_00209dc7 + unaff_EDI;
                    /* try { // try from 003ddf69 to 003ddf6d has its CatchHandler @ 003ddf87 */
  wfilebuf::wfilebuf((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc));
  *(wfilebuf **)(this + 0x114) = (wfilebuf *)(this + 0xc);
  return;
}



void FUN_003dde50(int *param_1,int *param_2)

{
  int *piVar1;
  undefined1 uVar2;
  int iVar3;
  int iVar4;
  int unaff_EDI;
  
  FUN_00074f0a();
  piVar1 = param_1 + 0x26;
  FUN_003f2f70(piVar1);
  param_1[0x26] = unaff_EDI + 0x209d27;
  iVar4 = param_2[1];
  *param_1 = unaff_EDI + 0x209d13;
  param_1[0x42] = 0;
  param_1[1] = iVar4;
  iVar4 = *param_2;
  param_1[0x43] = 0;
  iVar4 = *(int *)(iVar4 + -0xc);
  *(undefined1 *)(param_1 + 0x44) = 0;
  param_1[0x45] = 0;
  iVar4 = iVar4 + (int)param_2;
  param_1[0x46] = 0;
  param_1[0x47] = 0;
  param_1[0x48] = 0;
  FUN_003f33b0(piVar1,iVar4);
                    /* try { // try from 003ddefe to 003ddf02 has its CatchHandler @ 003ddf82 */
  FUN_003d8cc0(piVar1,param_1 + 0x41);
  iVar3 = *(int *)(iVar4 + 0x70);
  *(undefined4 *)(iVar4 + 0x70) = 0;
  param_1[0x42] = iVar3;
  param_1[0x43] = *(int *)(iVar4 + 0x74);
  uVar2 = *(undefined1 *)(iVar4 + 0x78);
  param_1[0x45] = 0;
  *(undefined1 *)(param_1 + 0x44) = uVar2;
  param_2[1] = 0;
  *param_1 = unaff_EDI + 0x209d9f;
  param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);
  param_1[0x26] = unaff_EDI + 0x209dc7;
                    /* try { // try from 003ddf69 to 003ddf6d has its CatchHandler @ 003ddf87 */
  FUN_003dc6a0(param_1 + 3,param_2 + 3);
  param_1[0x45] = (int)(param_1 + 3);
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
CALL 0x00074f0a
ADD EDI,0x20c1a7
PUSH ESI
PUSH EBX
SUB ESP,0x28
MOV ESI,dword ptr [EBP + 0x8]
LEA EAX,[ESI + 0x98]
MOV EBX,EDI
PUSH EAX
MOV dword ptr [EBP + -0x1c],EAX
CALL 0x003f2f70
MOV EBX,dword ptr [EBP + 0xc]
LEA EAX,[EDI + 0xffffdb80]
LEA EDX,[EDI + 0xffffdb6c]
MOV dword ptr [ESI + 0x98],EAX
MOV EAX,dword ptr [EBX + 0x4]
MOV dword ptr [ESI],EDX
MOV dword ptr [ESI + 0x108],0x0
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EBX]
MOV dword ptr [ESI + 0x10c],0x0
MOV ECX,dword ptr [EAX + -0xc]
MOV dword ptr [EBP + -0x24],EDX
MOV byte ptr [ESI + 0x110],0x0
MOV dword ptr [ESI + 0x114],0x0
ADD ECX,EBX
MOV dword ptr [ESI + 0x118],0x0
MOV dword ptr [ESI + 0x11c],0x0
MOV dword ptr [ESI + 0x120],0x0
POP EBX
MOV EBX,EDI
POP EAX
PUSH ECX
PUSH dword ptr [EBP + -0x1c]
MOV dword ptr [EBP + -0x20],ECX
CALL 0x003f33b0
POP EAX
LEA EAX,[ESI + 0x104]
POP EDX
PUSH EAX
PUSH dword ptr [EBP + -0x1c]
CALL 0x003d8cc0
POP EDX
POP ECX
LEA EBX,[ESI + 0xc]
MOV ECX,dword ptr [EBP + -0x20]
MOV dword ptr [EBP + -0x20],EBX
MOV EAX,dword ptr [ECX + 0x70]
MOV dword ptr [ECX + 0x70],0x0
MOV dword ptr [ESI + 0x108],EAX
MOV EAX,dword ptr [ECX + 0x74]
MOV dword ptr [ESI + 0x10c],EAX
MOVZX EAX,byte ptr [ECX + 0x78]
MOV dword ptr [ESI + 0x114],0x0
MOV byte ptr [ESI + 0x110],AL
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [EAX + 0x4],0x0
LEA EAX,[EDI + 0xffffdbec]
LEA EDX,[EAX + 0xc]
MOV dword ptr [ESI],EDX
LEA EDX,[EAX + 0x34]
ADD EAX,0x20
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [ESI + 0x98],EDX
ADD EAX,0xc
PUSH EAX
PUSH EBX
MOV EBX,EDI
CALL 0x003dc6a0
MOV EBX,dword ptr [EBP + -0x20]
ADD ESP,0x10
MOV dword ptr [ESI + 0x114],EBX
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "void FUN_003dde50(int *param_1,int *param_2)\n\n{\n  int *piVar1;\n  undefined1 uVar2;\n  int iVar3;\n  int iVar4;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  piVar1 = param_1 + 0x26;\n  FUN_003f2f70(piVar1);\n  param_1[0x26] = unaff_EDI + 0x209d27;\n  iVar4 = param_2[1];\n  *param_1 = unaff_EDI + 0x209d13;\n  param_1[0x42] = 0;\n  param_1[1] = iVar4;\n  iVar4 = *param_2;\n  param_1[0x43] = 0;\n  iVar4 = *(int *)(iVar4 + -0xc);\n  *(undefined1 *)(param_1 + 0x44) = 0;\n  param_1[0x45] = 0;\n  iVar4 = iVar4 + (int)param_2;\n  param_1[0x46] = 0;\n  param_1[0x47] = 0;\n  param_1[0x48] = 0;\n  FUN_003f33b0(piVar1,iVar4);\n                    /* try { // try from 003ddefe to 003ddf02 has its CatchHandler @ 003ddf82 */\n  FUN_003d8cc0(piVar1,param_1 + 0x41);\n  iVar3 = *(int *)(iVar4 + 0x70);\n  *(undefined4 *)(iVar4 + 0x70) = 0;\n  param_1[0x42] = iVar3;\n  param_1[0x43] = *(int *)(iVar4 + 0x74);\n  uVar2 = *(undefined1 *)(iVar4 + 0x78);\n  param_1[0x45] = 0;\n  *(undefined1 *)(param_1 + 0x44) = uVar2;\n  param_2[1] = 0;\n  *param_1 = unaff_EDI + 0x209d9f;\n  param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);\n  param_1[0x26] = unaff_EDI + 0x209dc7;\n                    /* try { // try from 003ddf69 to 003ddf6d has its CatchHandler @ 003ddf87 */\n  FUN_003dc6a0(param_1 + 3,param_2 + 3);\n  param_1[0x45] = (int)(param_1 + 3);\n  return;\n}\n\n" (function_definition "void FUN_003dde50(int *param_1,int *param_2)\n\n{\n  int *piVar1;\n  undefined1 uVar2;\n  int iVar3;\n  int iVar4;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  piVar1 = param_1 + 0x26;\n  FUN_003f2f70(piVar1);\n  param_1[0x26] = unaff_EDI + 0x209d27;\n  iVar4 = param_2[1];\n  *param_1 = unaff_EDI + 0x209d13;\n  param_1[0x42] = 0;\n  param_1[1] = iVar4;\n  iVar4 = *param_2;\n  param_1[0x43] = 0;\n  iVar4 = *(int *)(iVar4 + -0xc);\n  *(undefined1 *)(param_1 + 0x44) = 0;\n  param_1[0x45] = 0;\n  iVar4 = iVar4 + (int)param_2;\n  param_1[0x46] = 0;\n  param_1[0x47] = 0;\n  param_1[0x48] = 0;\n  FUN_003f33b0(piVar1,iVar4);\n                    /* try { // try from 003ddefe to 003ddf02 has its CatchHandler @ 003ddf82 */\n  FUN_003d8cc0(piVar1,param_1 + 0x41);\n  iVar3 = *(int *)(iVar4 + 0x70);\n  *(undefined4 *)(iVar4 + 0x70) = 0;\n  param_1[0x42] = iVar3;\n  param_1[0x43] = *(int *)(iVar4 + 0x74);\n  uVar2 = *(undefined1 *)(iVar4 + 0x78);\n  param_1[0x45] = 0;\n  *(undefined1 *)(param_1 + 0x44) = uVar2;\n  param_2[1] = 0;\n  *param_1 = unaff_EDI + 0x209d9f;\n  param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);\n  param_1[0x26] = unaff_EDI + 0x209dc7;\n                    /* try { // try from 003ddf69 to 003ddf6d has its CatchHandler @ 003ddf87 */\n  FUN_003dc6a0(param_1 + 3,param_2 + 3);\n  param_1[0x45] = (int)(param_1 + 3);\n  return;\n}" primitive_type (function_declarator "FUN_003dde50(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  undefined1 uVar2;\n  int iVar3;\n  int iVar4;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  piVar1 = param_1 + 0x26;\n  FUN_003f2f70(piVar1);\n  param_1[0x26] = unaff_EDI + 0x209d27;\n  iVar4 = param_2[1];\n  *param_1 = unaff_EDI + 0x209d13;\n  param_1[0x42] = 0;\n  param_1[1] = iVar4;\n  iVar4 = *param_2;\n  param_1[0x43] = 0;\n  iVar4 = *(int *)(iVar4 + -0xc);\n  *(undefined1 *)(param_1 + 0x44) = 0;\n  param_1[0x45] = 0;\n  iVar4 = iVar4 + (int)param_2;\n  param_1[0x46] = 0;\n  param_1[0x47] = 0;\n  param_1[0x48] = 0;\n  FUN_003f33b0(piVar1,iVar4);\n                    /* try { // try from 003ddefe to 003ddf02 has its CatchHandler @ 003ddf82 */\n  FUN_003d8cc0(piVar1,param_1 + 0x41);\n  iVar3 = *(int *)(iVar4 + 0x70);\n  *(undefined4 *)(iVar4 + 0x70) = 0;\n  param_1[0x42] = iVar3;\n  param_1[0x43] = *(int *)(iVar4 + 0x74);\n  uVar2 = *(undefined1 *)(iVar4 + 0x78);\n  param_1[0x45] = 0;\n  *(undefined1 *)(param_1 + 0x44) = uVar2;\n  param_2[1] = 0;\n  *param_1 = unaff_EDI + 0x209d9f;\n  param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);\n  param_1[0x26] = unaff_EDI + 0x209dc7;\n                    /* try { // try from 003ddf69 to 003ddf6d has its CatchHandler @ 003ddf87 */\n  FUN_003dc6a0(param_1 + 3,param_2 + 3);\n  param_1[0x45] = (int)(param_1 + 3);\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "FUN_00074f0a();" (call_expression "FUN_00074f0a()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar1 = param_1 + 0x26;" (assignment_expression "piVar1 = param_1 + 0x26" identifier = (binary_expression "param_1 + 0x26" identifier + number_literal)) ;) (expression_statement "FUN_003f2f70(piVar1);" (call_expression "FUN_003f2f70(piVar1)" identifier (argument_list "(piVar1)" ( identifier ))) ;) (expression_statement "param_1[0x26] = unaff_EDI + 0x209d27;" (assignment_expression "param_1[0x26] = unaff_EDI + 0x209d27" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) = (binary_expression "unaff_EDI + 0x209d27" identifier + number_literal)) ;) (expression_statement "iVar4 = param_2[1];" (assignment_expression "iVar4 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = unaff_EDI + 0x209d13;" (assignment_expression "*param_1 = unaff_EDI + 0x209d13" (pointer_expression "*param_1" * identifier) = (binary_expression "unaff_EDI + 0x209d13" identifier + number_literal)) ;) (expression_statement "param_1[0x42] = 0;" (assignment_expression "param_1[0x42] = 0" (subscript_expression "param_1[0x42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = iVar4;" (assignment_expression "param_1[1] = iVar4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = *param_2;" (assignment_expression "iVar4 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "param_1[0x43] = 0;" (assignment_expression "param_1[0x43] = 0" (subscript_expression "param_1[0x43]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar4 = *(int *)(iVar4 + -0xc);" (assignment_expression "iVar4 = *(int *)(iVar4 + -0xc)" identifier = (pointer_expression "*(int *)(iVar4 + -0xc)" * (cast_expression "(int *)(iVar4 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + -0xc)" ( (binary_expression "iVar4 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x44) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x44) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x44)" * (cast_expression "(undefined1 *)(param_1 + 0x44)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x45] = 0;" (assignment_expression "param_1[0x45] = 0" (subscript_expression "param_1[0x45]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar4 = iVar4 + (int)param_2;" (assignment_expression "iVar4 = iVar4 + (int)param_2" identifier = (binary_expression "iVar4 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[0x46] = 0;" (assignment_expression "param_1[0x46] = 0" (subscript_expression "param_1[0x46]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x47] = 0;" (assignment_expression "param_1[0x47] = 0" (subscript_expression "param_1[0x47]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x48] = 0;" (assignment_expression "param_1[0x48] = 0" (subscript_expression "param_1[0x48]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_003f33b0(piVar1,iVar4);" (call_expression "FUN_003f33b0(piVar1,iVar4)" identifier (argument_list "(piVar1,iVar4)" ( identifier , identifier ))) ;) comment (expression_statement "FUN_003d8cc0(piVar1,param_1 + 0x41);" (call_expression "FUN_003d8cc0(piVar1,param_1 + 0x41)" identifier (argument_list "(piVar1,param_1 + 0x41)" ( identifier , (binary_expression "param_1 + 0x41" identifier + number_literal) ))) ;) (expression_statement "iVar3 = *(int *)(iVar4 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x70)" identifier = (pointer_expression "*(int *)(iVar4 + 0x70)" * (cast_expression "(int *)(iVar4 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x70)" ( (binary_expression "iVar4 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x70)" * (cast_expression "(undefined4 *)(iVar4 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x70)" ( (binary_expression "iVar4 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x42] = iVar3;" (assignment_expression "param_1[0x42] = iVar3" (subscript_expression "param_1[0x42]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x43] = *(int *)(iVar4 + 0x74);" (assignment_expression "param_1[0x43] = *(int *)(iVar4 + 0x74)" (subscript_expression "param_1[0x43]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar4 + 0x74)" * (cast_expression "(int *)(iVar4 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x74)" ( (binary_expression "iVar4 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined1 *)(iVar4 + 0x78);" (assignment_expression "uVar2 = *(undefined1 *)(iVar4 + 0x78)" identifier = (pointer_expression "*(undefined1 *)(iVar4 + 0x78)" * (cast_expression "(undefined1 *)(iVar4 + 0x78)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x78)" ( (binary_expression "iVar4 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "param_1[0x45] = 0;" (assignment_expression "param_1[0x45] = 0" (subscript_expression "param_1[0x45]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x44) = uVar2;" (assignment_expression "*(undefined1 *)(param_1 + 0x44) = uVar2" (pointer_expression "*(undefined1 *)(param_1 + 0x44)" * (cast_expression "(undefined1 *)(param_1 + 0x44)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_2[1] = 0;" (assignment_expression "param_2[1] = 0" (subscript_expression "param_2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = unaff_EDI + 0x209d9f;" (assignment_expression "*param_1 = unaff_EDI + 0x209d9f" (pointer_expression "*param_1" * identifier) = (binary_expression "unaff_EDI + 0x209d9f" identifier + number_literal)) ;) (expression_statement "param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);" (assignment_expression "param_1[2] = (int)(&UNK_00209db3 + unaff_EDI)" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)(&UNK_00209db3 + unaff_EDI)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&UNK_00209db3 + unaff_EDI)" ( (binary_expression "&UNK_00209db3 + unaff_EDI" (pointer_expression "&UNK_00209db3" & identifier) + identifier) )))) ;) (expression_statement "param_1[0x26] = unaff_EDI + 0x209dc7;" (assignment_expression "param_1[0x26] = unaff_EDI + 0x209dc7" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) = (binary_expression "unaff_EDI + 0x209dc7" identifier + number_literal)) ;) comment (expression_statement "FUN_003dc6a0(param_1 + 3,param_2 + 3);" (call_expression "FUN_003dc6a0(param_1 + 3,param_2 + 3)" identifier (argument_list "(param_1 + 3,param_2 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) , (binary_expression "param_2 + 3" identifier + number_literal) ))) ;) (expression_statement "param_1[0x45] = (int)(param_1 + 3);" (assignment_expression "param_1[0x45] = (int)(param_1 + 3)" (subscript_expression "param_1[0x45]" identifier [ number_literal ]) = (cast_expression "(int)(param_1 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* std::wfstream::wfstream(std::wfstream&&) */\n\nvoid __thiscall std::wfstream::wfstream(wfstream *this,wfstream *param_1)\n\n{\n  ios_base *this_00;\n  wfstream wVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int unaff_EDI;\n  \n  __x86_get_pc_thunk_di();\n  this_00 = (ios_base *)(this + 0x98);\n  ios_base::ios_base(this_00);\n  *(undefined **)(this + 0x98) = &UNK_00209d27 + unaff_EDI;\n  uVar2 = *(undefined4 *)(param_1 + 4);\n  *(undefined **)this = &UNK_00209d13 + unaff_EDI;\n  *(undefined4 *)(this + 0x108) = 0;\n  *(undefined4 *)(this + 4) = uVar2;\n  iVar3 = *(int *)param_1;\n  *(undefined4 *)(this + 0x10c) = 0;\n  iVar3 = *(int *)(iVar3 + -0xc);\n  this[0x110] = (wfstream)0x0;\n  *(undefined4 *)(this + 0x114) = 0;\n  *(undefined4 *)(this + 0x118) = 0;\n  *(undefined4 *)(this + 0x11c) = 0;\n  *(undefined4 *)(this + 0x120) = 0;\n  ios_base::_M_move(this_00);\n                    /* try { // try from 003ddefe to 003ddf02 has its CatchHandler @ 003ddf82 */\n  wios::_M_cache_locale((locale *)this_00);\n  uVar2 = *(undefined4 *)(param_1 + iVar3 + 0x70);\n  *(undefined4 *)(param_1 + iVar3 + 0x70) = 0;\n  *(undefined4 *)(this + 0x108) = uVar2;\n  *(undefined4 *)(this + 0x10c) = *(undefined4 *)(param_1 + iVar3 + 0x74);\n  wVar1 = param_1[iVar3 + 0x78];\n  *(undefined4 *)(this + 0x114) = 0;\n  this[0x110] = wVar1;\n  *(undefined4 *)(param_1 + 4) = 0;\n  *(undefined **)this = &UNK_00209d9f + unaff_EDI;\n  *(undefined **)(this + 8) = &UNK_00209db3 + unaff_EDI;\n  *(undefined **)(this + 0x98) = &UNK_00209dc7 + unaff_EDI;\n                    /* try { // try from 003ddf69 to 003ddf6d has its CatchHandler @ 003ddf87 */\n  wfilebuf::wfilebuf((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc));\n  *(wfilebuf **)(this + 0x114) = (wfilebuf *)(this + 0xc);\n  return;\n}\n\n" comment (function_definition "void __thiscall std::wfstream::wfstream(wfstream *this,wfstream *param_1)\n\n{\n  ios_base *this_00;\n  wfstream wVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int unaff_EDI;\n  \n  __x86_get_pc_thunk_di();\n  this_00 = (ios_base *)(this + 0x98);\n  ios_base::ios_base(this_00);\n  *(undefined **)(this + 0x98) = &UNK_00209d27 + unaff_EDI;\n  uVar2 = *(undefined4 *)(param_1 + 4);\n  *(undefined **)this = &UNK_00209d13 + unaff_EDI;\n  *(undefined4 *)(this + 0x108) = 0;\n  *(undefined4 *)(this + 4) = uVar2;\n  iVar3 = *(int *)param_1;\n  *(undefined4 *)(this + 0x10c) = 0;\n  iVar3 = *(int *)(iVar3 + -0xc);\n  this[0x110] = (wfstream)0x0;\n  *(undefined4 *)(this + 0x114) = 0;\n  *(undefined4 *)(this + 0x118) = 0;\n  *(undefined4 *)(this + 0x11c) = 0;\n  *(undefined4 *)(this + 0x120) = 0;\n  ios_base::_M_move(this_00);\n                    /* try { // try from 003ddefe to 003ddf02 has its CatchHandler @ 003ddf82 */\n  wios::_M_cache_locale((locale *)this_00);\n  uVar2 = *(undefined4 *)(param_1 + iVar3 + 0x70);\n  *(undefined4 *)(param_1 + iVar3 + 0x70) = 0;\n  *(undefined4 *)(this + 0x108) = uVar2;\n  *(undefined4 *)(this + 0x10c) = *(undefined4 *)(param_1 + iVar3 + 0x74);\n  wVar1 = param_1[iVar3 + 0x78];\n  *(undefined4 *)(this + 0x114) = 0;\n  this[0x110] = wVar1;\n  *(undefined4 *)(param_1 + 4) = 0;\n  *(undefined **)this = &UNK_00209d9f + unaff_EDI;\n  *(undefined **)(this + 8) = &UNK_00209db3 + unaff_EDI;\n  *(undefined **)(this + 0x98) = &UNK_00209dc7 + unaff_EDI;\n                    /* try { // try from 003ddf69 to 003ddf6d has its CatchHandler @ 003ddf87 */\n  wfilebuf::wfilebuf((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc));\n  *(wfilebuf **)(this + 0x114) = (wfilebuf *)(this + 0xc);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::wfstream::" identifier : : identifier : :) (function_declarator "wfstream(wfstream *this,wfstream *param_1)" identifier (parameter_list "(wfstream *this,wfstream *param_1)" ( (parameter_declaration "wfstream *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "wfstream *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  ios_base *this_00;\n  wfstream wVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int unaff_EDI;\n  \n  __x86_get_pc_thunk_di();\n  this_00 = (ios_base *)(this + 0x98);\n  ios_base::ios_base(this_00);\n  *(undefined **)(this + 0x98) = &UNK_00209d27 + unaff_EDI;\n  uVar2 = *(undefined4 *)(param_1 + 4);\n  *(undefined **)this = &UNK_00209d13 + unaff_EDI;\n  *(undefined4 *)(this + 0x108) = 0;\n  *(undefined4 *)(this + 4) = uVar2;\n  iVar3 = *(int *)param_1;\n  *(undefined4 *)(this + 0x10c) = 0;\n  iVar3 = *(int *)(iVar3 + -0xc);\n  this[0x110] = (wfstream)0x0;\n  *(undefined4 *)(this + 0x114) = 0;\n  *(undefined4 *)(this + 0x118) = 0;\n  *(undefined4 *)(this + 0x11c) = 0;\n  *(undefined4 *)(this + 0x120) = 0;\n  ios_base::_M_move(this_00);\n                    /* try { // try from 003ddefe to 003ddf02 has its CatchHandler @ 003ddf82 */\n  wios::_M_cache_locale((locale *)this_00);\n  uVar2 = *(undefined4 *)(param_1 + iVar3 + 0x70);\n  *(undefined4 *)(param_1 + iVar3 + 0x70) = 0;\n  *(undefined4 *)(this + 0x108) = uVar2;\n  *(undefined4 *)(this + 0x10c) = *(undefined4 *)(param_1 + iVar3 + 0x74);\n  wVar1 = param_1[iVar3 + 0x78];\n  *(undefined4 *)(this + 0x114) = 0;\n  this[0x110] = wVar1;\n  *(undefined4 *)(param_1 + 4) = 0;\n  *(undefined **)this = &UNK_00209d9f + unaff_EDI;\n  *(undefined **)(this + 8) = &UNK_00209db3 + unaff_EDI;\n  *(undefined **)(this + 0x98) = &UNK_00209dc7 + unaff_EDI;\n                    /* try { // try from 003ddf69 to 003ddf6d has its CatchHandler @ 003ddf87 */\n  wfilebuf::wfilebuf((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc));\n  *(wfilebuf **)(this + 0x114) = (wfilebuf *)(this + 0xc);\n  return;\n}" { (declaration "ios_base *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "wfstream wVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "this_00 = (ios_base *)(this + 0x98);" (assignment_expression "this_00 = (ios_base *)(this + 0x98)" identifier = (cast_expression "(ios_base *)(this + 0x98)" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x98)" ( (binary_expression "this + 0x98" identifier + number_literal) )))) ;) (labeled_statement "ios_base::ios_base(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "ios_base(this_00);" (call_expression "ios_base(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;)) (expression_statement "*(undefined **)(this + 0x98) = &UNK_00209d27 + unaff_EDI;" (assignment_expression "*(undefined **)(this + 0x98) = &UNK_00209d27 + unaff_EDI" (pointer_expression "*(undefined **)(this + 0x98)" * (cast_expression "(undefined **)(this + 0x98)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x98)" ( (binary_expression "this + 0x98" identifier + number_literal) )))) = (binary_expression "&UNK_00209d27 + unaff_EDI" (pointer_expression "&UNK_00209d27" & identifier) + identifier)) ;) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)this = &UNK_00209d13 + unaff_EDI;" (assignment_expression "*(undefined **)this = &UNK_00209d13 + unaff_EDI" (pointer_expression "*(undefined **)this" * (cast_expression "(undefined **)this" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "&UNK_00209d13 + unaff_EDI" (pointer_expression "&UNK_00209d13" & identifier) + identifier)) ;) (expression_statement "*(undefined4 *)(this + 0x108) = 0;" (assignment_expression "*(undefined4 *)(this + 0x108) = 0" (pointer_expression "*(undefined4 *)(this + 0x108)" * (cast_expression "(undefined4 *)(this + 0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x108)" ( (binary_expression "this + 0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 4) = uVar2;" (assignment_expression "*(undefined4 *)(this + 4) = uVar2" (pointer_expression "*(undefined4 *)(this + 4)" * (cast_expression "(undefined4 *)(this + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = *(int *)param_1;" (assignment_expression "iVar3 = *(int *)param_1" identifier = (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(this + 0x10c) = 0;" (assignment_expression "*(undefined4 *)(this + 0x10c) = 0" (pointer_expression "*(undefined4 *)(this + 0x10c)" * (cast_expression "(undefined4 *)(this + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10c)" ( (binary_expression "this + 0x10c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = *(int *)(iVar3 + -0xc);" (assignment_expression "iVar3 = *(int *)(iVar3 + -0xc)" identifier = (pointer_expression "*(int *)(iVar3 + -0xc)" * (cast_expression "(int *)(iVar3 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0xc)" ( (binary_expression "iVar3 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "this[0x110] = (wfstream)0x0;" (assignment_expression "this[0x110] = (wfstream)0x0" (subscript_expression "this[0x110]" identifier [ number_literal ]) = (cast_expression "(wfstream)0x0" ( (type_descriptor "wfstream" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x114) = 0;" (assignment_expression "*(undefined4 *)(this + 0x114) = 0" (pointer_expression "*(undefined4 *)(this + 0x114)" * (cast_expression "(undefined4 *)(this + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x114)" ( (binary_expression "this + 0x114" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x118) = 0;" (assignment_expression "*(undefined4 *)(this + 0x118) = 0" (pointer_expression "*(undefined4 *)(this + 0x118)" * (cast_expression "(undefined4 *)(this + 0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x118)" ( (binary_expression "this + 0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x11c) = 0;" (assignment_expression "*(undefined4 *)(this + 0x11c) = 0" (pointer_expression "*(undefined4 *)(this + 0x11c)" * (cast_expression "(undefined4 *)(this + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x11c)" ( (binary_expression "this + 0x11c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x120) = 0;" (assignment_expression "*(undefined4 *)(this + 0x120) = 0" (pointer_expression "*(undefined4 *)(this + 0x120)" * (cast_expression "(undefined4 *)(this + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x120)" ( (binary_expression "this + 0x120" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "ios_base::_M_move(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "_M_move(this_00);" (call_expression "_M_move(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;)) comment (labeled_statement "wios::_M_cache_locale((locale *)this_00);" statement_identifier : (ERROR ":" :) (expression_statement "_M_cache_locale((locale *)this_00);" (call_expression "_M_cache_locale((locale *)this_00)" identifier (argument_list "((locale *)this_00)" ( (cast_expression "(locale *)this_00" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "uVar2 = *(undefined4 *)(param_1 + iVar3 + 0x70);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + iVar3 + 0x70)" identifier = (pointer_expression "*(undefined4 *)(param_1 + iVar3 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + iVar3 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3 + 0x70)" ( (binary_expression "param_1 + iVar3 + 0x70" (binary_expression "param_1 + iVar3" identifier + identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + iVar3 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(param_1 + iVar3 + 0x70) = 0" (pointer_expression "*(undefined4 *)(param_1 + iVar3 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + iVar3 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3 + 0x70)" ( (binary_expression "param_1 + iVar3 + 0x70" (binary_expression "param_1 + iVar3" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x108) = uVar2;" (assignment_expression "*(undefined4 *)(this + 0x108) = uVar2" (pointer_expression "*(undefined4 *)(this + 0x108)" * (cast_expression "(undefined4 *)(this + 0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x108)" ( (binary_expression "this + 0x108" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 0x10c) = *(undefined4 *)(param_1 + iVar3 + 0x74);" (assignment_expression "*(undefined4 *)(this + 0x10c) = *(undefined4 *)(param_1 + iVar3 + 0x74)" (pointer_expression "*(undefined4 *)(this + 0x10c)" * (cast_expression "(undefined4 *)(this + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10c)" ( (binary_expression "this + 0x10c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + iVar3 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + iVar3 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3 + 0x74)" ( (binary_expression "param_1 + iVar3 + 0x74" (binary_expression "param_1 + iVar3" identifier + identifier) + number_literal) ))))) ;) (expression_statement "wVar1 = param_1[iVar3 + 0x78];" (assignment_expression "wVar1 = param_1[iVar3 + 0x78]" identifier = (subscript_expression "param_1[iVar3 + 0x78]" identifier [ (binary_expression "iVar3 + 0x78" identifier + number_literal) ])) ;) (expression_statement "*(undefined4 *)(this + 0x114) = 0;" (assignment_expression "*(undefined4 *)(this + 0x114) = 0" (pointer_expression "*(undefined4 *)(this + 0x114)" * (cast_expression "(undefined4 *)(this + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x114)" ( (binary_expression "this + 0x114" identifier + number_literal) )))) = number_literal) ;) (expression_statement "this[0x110] = wVar1;" (assignment_expression "this[0x110] = wVar1" (subscript_expression "this[0x110]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)this = &UNK_00209d9f + unaff_EDI;" (assignment_expression "*(undefined **)this = &UNK_00209d9f + unaff_EDI" (pointer_expression "*(undefined **)this" * (cast_expression "(undefined **)this" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "&UNK_00209d9f + unaff_EDI" (pointer_expression "&UNK_00209d9f" & identifier) + identifier)) ;) (expression_statement "*(undefined **)(this + 8) = &UNK_00209db3 + unaff_EDI;" (assignment_expression "*(undefined **)(this + 8) = &UNK_00209db3 + unaff_EDI" (pointer_expression "*(undefined **)(this + 8)" * (cast_expression "(undefined **)(this + 8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = (binary_expression "&UNK_00209db3 + unaff_EDI" (pointer_expression "&UNK_00209db3" & identifier) + identifier)) ;) (expression_statement "*(undefined **)(this + 0x98) = &UNK_00209dc7 + unaff_EDI;" (assignment_expression "*(undefined **)(this + 0x98) = &UNK_00209dc7 + unaff_EDI" (pointer_expression "*(undefined **)(this + 0x98)" * (cast_expression "(undefined **)(this + 0x98)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x98)" ( (binary_expression "this + 0x98" identifier + number_literal) )))) = (binary_expression "&UNK_00209dc7 + unaff_EDI" (pointer_expression "&UNK_00209dc7" & identifier) + identifier)) ;) comment (labeled_statement "wfilebuf::wfilebuf((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc));" statement_identifier : (ERROR ":" :) (expression_statement "wfilebuf((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc));" (call_expression "wfilebuf((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc))" identifier (argument_list "((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc))" ( (cast_expression "(wfilebuf *)(this + 0xc)" ( (type_descriptor "wfilebuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))) , (cast_expression "(wfilebuf *)(param_1 + 0xc)" ( (type_descriptor "wfilebuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))) ))) ;)) (expression_statement "*(wfilebuf **)(this + 0x114) = (wfilebuf *)(this + 0xc);" (assignment_expression "*(wfilebuf **)(this + 0x114) = (wfilebuf *)(this + 0xc)" (pointer_expression "*(wfilebuf **)(this + 0x114)" * (cast_expression "(wfilebuf **)(this + 0x114)" ( (type_descriptor "wfilebuf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x114)" ( (binary_expression "this + 0x114" identifier + number_literal) )))) = (cast_expression "(wfilebuf *)(this + 0xc)" ( (type_descriptor "wfilebuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_003dde50(int *param_1,int *param_2)\n\n{\n  int *piVar1;\n  undefined1 uVar2;\n  int iVar3;\n  int iVar4;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  piVar1 = param_1 + 0x26;\n  FUN_003f2f70(piVar1);\n  param_1[0x26] = unaff_EDI + 0x209d27;\n  iVar4 = param_2[1];\n  *param_1 = unaff_EDI + 0x209d13;\n  param_1[0x42] = 0;\n  param_1[1] = iVar4;\n  iVar4 = *param_2;\n  param_1[0x43] = 0;\n  iVar4 = *(int *)(iVar4 + -0xc);\n  *(undefined1 *)(param_1 + 0x44) = 0;\n  param_1[0x45] = 0;\n  iVar4 = iVar4 + (int)param_2;\n  param_1[0x46] = 0;\n  param_1[0x47] = 0;\n  param_1[0x48] = 0;\n  FUN_003f33b0(piVar1,iVar4);\n                    \n  FUN_003d8cc0(piVar1,param_1 + 0x41);\n  iVar3 = *(int *)(iVar4 + 0x70);\n  *(undefined4 *)(iVar4 + 0x70) = 0;\n  param_1[0x42] = iVar3;\n  param_1[0x43] = *(int *)(iVar4 + 0x74);\n  uVar2 = *(undefined1 *)(iVar4 + 0x78);\n  param_1[0x45] = 0;\n  *(undefined1 *)(param_1 + 0x44) = uVar2;\n  param_2[1] = 0;\n  *param_1 = unaff_EDI + 0x209d9f;\n  param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);\n  param_1[0x26] = unaff_EDI + 0x209dc7;\n                    \n  FUN_003dc6a0(param_1 + 3,param_2 + 3);\n  param_1[0x45] = (int)(param_1 + 3);\n  return;\n}\n\n" (function_definition "void FUN_003dde50(int *param_1,int *param_2)\n\n{\n  int *piVar1;\n  undefined1 uVar2;\n  int iVar3;\n  int iVar4;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  piVar1 = param_1 + 0x26;\n  FUN_003f2f70(piVar1);\n  param_1[0x26] = unaff_EDI + 0x209d27;\n  iVar4 = param_2[1];\n  *param_1 = unaff_EDI + 0x209d13;\n  param_1[0x42] = 0;\n  param_1[1] = iVar4;\n  iVar4 = *param_2;\n  param_1[0x43] = 0;\n  iVar4 = *(int *)(iVar4 + -0xc);\n  *(undefined1 *)(param_1 + 0x44) = 0;\n  param_1[0x45] = 0;\n  iVar4 = iVar4 + (int)param_2;\n  param_1[0x46] = 0;\n  param_1[0x47] = 0;\n  param_1[0x48] = 0;\n  FUN_003f33b0(piVar1,iVar4);\n                    \n  FUN_003d8cc0(piVar1,param_1 + 0x41);\n  iVar3 = *(int *)(iVar4 + 0x70);\n  *(undefined4 *)(iVar4 + 0x70) = 0;\n  param_1[0x42] = iVar3;\n  param_1[0x43] = *(int *)(iVar4 + 0x74);\n  uVar2 = *(undefined1 *)(iVar4 + 0x78);\n  param_1[0x45] = 0;\n  *(undefined1 *)(param_1 + 0x44) = uVar2;\n  param_2[1] = 0;\n  *param_1 = unaff_EDI + 0x209d9f;\n  param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);\n  param_1[0x26] = unaff_EDI + 0x209dc7;\n                    \n  FUN_003dc6a0(param_1 + 3,param_2 + 3);\n  param_1[0x45] = (int)(param_1 + 3);\n  return;\n}" primitive_type (function_declarator "FUN_003dde50(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  undefined1 uVar2;\n  int iVar3;\n  int iVar4;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  piVar1 = param_1 + 0x26;\n  FUN_003f2f70(piVar1);\n  param_1[0x26] = unaff_EDI + 0x209d27;\n  iVar4 = param_2[1];\n  *param_1 = unaff_EDI + 0x209d13;\n  param_1[0x42] = 0;\n  param_1[1] = iVar4;\n  iVar4 = *param_2;\n  param_1[0x43] = 0;\n  iVar4 = *(int *)(iVar4 + -0xc);\n  *(undefined1 *)(param_1 + 0x44) = 0;\n  param_1[0x45] = 0;\n  iVar4 = iVar4 + (int)param_2;\n  param_1[0x46] = 0;\n  param_1[0x47] = 0;\n  param_1[0x48] = 0;\n  FUN_003f33b0(piVar1,iVar4);\n                    \n  FUN_003d8cc0(piVar1,param_1 + 0x41);\n  iVar3 = *(int *)(iVar4 + 0x70);\n  *(undefined4 *)(iVar4 + 0x70) = 0;\n  param_1[0x42] = iVar3;\n  param_1[0x43] = *(int *)(iVar4 + 0x74);\n  uVar2 = *(undefined1 *)(iVar4 + 0x78);\n  param_1[0x45] = 0;\n  *(undefined1 *)(param_1 + 0x44) = uVar2;\n  param_2[1] = 0;\n  *param_1 = unaff_EDI + 0x209d9f;\n  param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);\n  param_1[0x26] = unaff_EDI + 0x209dc7;\n                    \n  FUN_003dc6a0(param_1 + 3,param_2 + 3);\n  param_1[0x45] = (int)(param_1 + 3);\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "FUN_00074f0a();" (call_expression "FUN_00074f0a()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar1 = param_1 + 0x26;" (assignment_expression "piVar1 = param_1 + 0x26" identifier = (binary_expression "param_1 + 0x26" identifier + number_literal)) ;) (expression_statement "FUN_003f2f70(piVar1);" (call_expression "FUN_003f2f70(piVar1)" identifier (argument_list "(piVar1)" ( identifier ))) ;) (expression_statement "param_1[0x26] = unaff_EDI + 0x209d27;" (assignment_expression "param_1[0x26] = unaff_EDI + 0x209d27" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) = (binary_expression "unaff_EDI + 0x209d27" identifier + number_literal)) ;) (expression_statement "iVar4 = param_2[1];" (assignment_expression "iVar4 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = unaff_EDI + 0x209d13;" (assignment_expression "*param_1 = unaff_EDI + 0x209d13" (pointer_expression "*param_1" * identifier) = (binary_expression "unaff_EDI + 0x209d13" identifier + number_literal)) ;) (expression_statement "param_1[0x42] = 0;" (assignment_expression "param_1[0x42] = 0" (subscript_expression "param_1[0x42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = iVar4;" (assignment_expression "param_1[1] = iVar4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = *param_2;" (assignment_expression "iVar4 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "param_1[0x43] = 0;" (assignment_expression "param_1[0x43] = 0" (subscript_expression "param_1[0x43]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar4 = *(int *)(iVar4 + -0xc);" (assignment_expression "iVar4 = *(int *)(iVar4 + -0xc)" identifier = (pointer_expression "*(int *)(iVar4 + -0xc)" * (cast_expression "(int *)(iVar4 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + -0xc)" ( (binary_expression "iVar4 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x44) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x44) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x44)" * (cast_expression "(undefined1 *)(param_1 + 0x44)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x45] = 0;" (assignment_expression "param_1[0x45] = 0" (subscript_expression "param_1[0x45]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar4 = iVar4 + (int)param_2;" (assignment_expression "iVar4 = iVar4 + (int)param_2" identifier = (binary_expression "iVar4 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[0x46] = 0;" (assignment_expression "param_1[0x46] = 0" (subscript_expression "param_1[0x46]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x47] = 0;" (assignment_expression "param_1[0x47] = 0" (subscript_expression "param_1[0x47]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x48] = 0;" (assignment_expression "param_1[0x48] = 0" (subscript_expression "param_1[0x48]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_003f33b0(piVar1,iVar4);" (call_expression "FUN_003f33b0(piVar1,iVar4)" identifier (argument_list "(piVar1,iVar4)" ( identifier , identifier ))) ;) (expression_statement "FUN_003d8cc0(piVar1,param_1 + 0x41);" (call_expression "FUN_003d8cc0(piVar1,param_1 + 0x41)" identifier (argument_list "(piVar1,param_1 + 0x41)" ( identifier , (binary_expression "param_1 + 0x41" identifier + number_literal) ))) ;) (expression_statement "iVar3 = *(int *)(iVar4 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x70)" identifier = (pointer_expression "*(int *)(iVar4 + 0x70)" * (cast_expression "(int *)(iVar4 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x70)" ( (binary_expression "iVar4 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x70)" * (cast_expression "(undefined4 *)(iVar4 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x70)" ( (binary_expression "iVar4 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x42] = iVar3;" (assignment_expression "param_1[0x42] = iVar3" (subscript_expression "param_1[0x42]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x43] = *(int *)(iVar4 + 0x74);" (assignment_expression "param_1[0x43] = *(int *)(iVar4 + 0x74)" (subscript_expression "param_1[0x43]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar4 + 0x74)" * (cast_expression "(int *)(iVar4 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x74)" ( (binary_expression "iVar4 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined1 *)(iVar4 + 0x78);" (assignment_expression "uVar2 = *(undefined1 *)(iVar4 + 0x78)" identifier = (pointer_expression "*(undefined1 *)(iVar4 + 0x78)" * (cast_expression "(undefined1 *)(iVar4 + 0x78)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x78)" ( (binary_expression "iVar4 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "param_1[0x45] = 0;" (assignment_expression "param_1[0x45] = 0" (subscript_expression "param_1[0x45]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x44) = uVar2;" (assignment_expression "*(undefined1 *)(param_1 + 0x44) = uVar2" (pointer_expression "*(undefined1 *)(param_1 + 0x44)" * (cast_expression "(undefined1 *)(param_1 + 0x44)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_2[1] = 0;" (assignment_expression "param_2[1] = 0" (subscript_expression "param_2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = unaff_EDI + 0x209d9f;" (assignment_expression "*param_1 = unaff_EDI + 0x209d9f" (pointer_expression "*param_1" * identifier) = (binary_expression "unaff_EDI + 0x209d9f" identifier + number_literal)) ;) (expression_statement "param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);" (assignment_expression "param_1[2] = (int)(&UNK_00209db3 + unaff_EDI)" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)(&UNK_00209db3 + unaff_EDI)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&UNK_00209db3 + unaff_EDI)" ( (binary_expression "&UNK_00209db3 + unaff_EDI" (pointer_expression "&UNK_00209db3" & identifier) + identifier) )))) ;) (expression_statement "param_1[0x26] = unaff_EDI + 0x209dc7;" (assignment_expression "param_1[0x26] = unaff_EDI + 0x209dc7" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) = (binary_expression "unaff_EDI + 0x209dc7" identifier + number_literal)) ;) (expression_statement "FUN_003dc6a0(param_1 + 3,param_2 + 3);" (call_expression "FUN_003dc6a0(param_1 + 3,param_2 + 3)" identifier (argument_list "(param_1 + 3,param_2 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) , (binary_expression "param_2 + 3" identifier + number_literal) ))) ;) (expression_statement "param_1[0x45] = (int)(param_1 + 3);" (assignment_expression "param_1[0x45] = (int)(param_1 + 3)" (subscript_expression "param_1[0x45]" identifier [ number_literal ]) = (cast_expression "(int)(param_1 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return ;) })))
(function_definition "void FUN_003dde50(int *param_1,int *param_2)\n\n{\n  int *piVar1;\n  undefined1 uVar2;\n  int iVar3;\n  int iVar4;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  piVar1 = param_1 + 0x26;\n  FUN_003f2f70(piVar1);\n  param_1[0x26] = unaff_EDI + 0x209d27;\n  iVar4 = param_2[1];\n  *param_1 = unaff_EDI + 0x209d13;\n  param_1[0x42] = 0;\n  param_1[1] = iVar4;\n  iVar4 = *param_2;\n  param_1[0x43] = 0;\n  iVar4 = *(int *)(iVar4 + -0xc);\n  *(undefined1 *)(param_1 + 0x44) = 0;\n  param_1[0x45] = 0;\n  iVar4 = iVar4 + (int)param_2;\n  param_1[0x46] = 0;\n  param_1[0x47] = 0;\n  param_1[0x48] = 0;\n  FUN_003f33b0(piVar1,iVar4);\n                    \n  FUN_003d8cc0(piVar1,param_1 + 0x41);\n  iVar3 = *(int *)(iVar4 + 0x70);\n  *(undefined4 *)(iVar4 + 0x70) = 0;\n  param_1[0x42] = iVar3;\n  param_1[0x43] = *(int *)(iVar4 + 0x74);\n  uVar2 = *(undefined1 *)(iVar4 + 0x78);\n  param_1[0x45] = 0;\n  *(undefined1 *)(param_1 + 0x44) = uVar2;\n  param_2[1] = 0;\n  *param_1 = unaff_EDI + 0x209d9f;\n  param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);\n  param_1[0x26] = unaff_EDI + 0x209dc7;\n                    \n  FUN_003dc6a0(param_1 + 3,param_2 + 3);\n  param_1[0x45] = (int)(param_1 + 3);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_003dde50(int *param_1,int *param_2)" (identifier "FUN_003dde50") (parameter_list "(int *param_1,int *param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined1 uVar2;\n  int iVar3;\n  int iVar4;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  piVar1 = param_1 + 0x26;\n  FUN_003f2f70(piVar1);\n  param_1[0x26] = unaff_EDI + 0x209d27;\n  iVar4 = param_2[1];\n  *param_1 = unaff_EDI + 0x209d13;\n  param_1[0x42] = 0;\n  param_1[1] = iVar4;\n  iVar4 = *param_2;\n  param_1[0x43] = 0;\n  iVar4 = *(int *)(iVar4 + -0xc);\n  *(undefined1 *)(param_1 + 0x44) = 0;\n  param_1[0x45] = 0;\n  iVar4 = iVar4 + (int)param_2;\n  param_1[0x46] = 0;\n  param_1[0x47] = 0;\n  param_1[0x48] = 0;\n  FUN_003f33b0(piVar1,iVar4);\n                    \n  FUN_003d8cc0(piVar1,param_1 + 0x41);\n  iVar3 = *(int *)(iVar4 + 0x70);\n  *(undefined4 *)(iVar4 + 0x70) = 0;\n  param_1[0x42] = iVar3;\n  param_1[0x43] = *(int *)(iVar4 + 0x74);\n  uVar2 = *(undefined1 *)(iVar4 + 0x78);\n  param_1[0x45] = 0;\n  *(undefined1 *)(param_1 + 0x44) = uVar2;\n  param_2[1] = 0;\n  *param_1 = unaff_EDI + 0x209d9f;\n  param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);\n  param_1[0x26] = unaff_EDI + 0x209dc7;\n                    \n  FUN_003dc6a0(param_1 + 3,param_2 + 3);\n  param_1[0x45] = (int)(param_1 + 3);\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (expression_statement "FUN_00074f0a();" (call_expression "FUN_00074f0a()" (identifier "FUN_00074f0a") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar1 = param_1 + 0x26;" (assignment_expression "piVar1 = param_1 + 0x26" (identifier "piVar1") (= "=") (binary_expression "param_1 + 0x26" (identifier "param_1") (+ "+") (number_literal "0x26"))) (; ";")) (expression_statement "FUN_003f2f70(piVar1);" (call_expression "FUN_003f2f70(piVar1)" (identifier "FUN_003f2f70") (argument_list "(piVar1)" (( "(") (identifier "piVar1") () ")"))) (; ";")) (expression_statement "param_1[0x26] = unaff_EDI + 0x209d27;" (assignment_expression "param_1[0x26] = unaff_EDI + 0x209d27" (subscript_expression "param_1[0x26]" (identifier "param_1") ([ "[") (number_literal "0x26") (] "]")) (= "=") (binary_expression "unaff_EDI + 0x209d27" (identifier "unaff_EDI") (+ "+") (number_literal "0x209d27"))) (; ";")) (expression_statement "iVar4 = param_2[1];" (assignment_expression "iVar4 = param_2[1]" (identifier "iVar4") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*param_1 = unaff_EDI + 0x209d13;" (assignment_expression "*param_1 = unaff_EDI + 0x209d13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "unaff_EDI + 0x209d13" (identifier "unaff_EDI") (+ "+") (number_literal "0x209d13"))) (; ";")) (expression_statement "param_1[0x42] = 0;" (assignment_expression "param_1[0x42] = 0" (subscript_expression "param_1[0x42]" (identifier "param_1") ([ "[") (number_literal "0x42") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = iVar4;" (assignment_expression "param_1[1] = iVar4" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar4 = *param_2;" (assignment_expression "iVar4 = *param_2" (identifier "iVar4") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "param_1[0x43] = 0;" (assignment_expression "param_1[0x43] = 0" (subscript_expression "param_1[0x43]" (identifier "param_1") ([ "[") (number_literal "0x43") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = *(int *)(iVar4 + -0xc);" (assignment_expression "iVar4 = *(int *)(iVar4 + -0xc)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar4 + -0xc)" (* "*") (cast_expression "(int *)(iVar4 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + -0xc)" (( "(") (binary_expression "iVar4 + -0xc" (identifier "iVar4") (+ "+") (number_literal "-0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x44) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x44) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x45] = 0;" (assignment_expression "param_1[0x45] = 0" (subscript_expression "param_1[0x45]" (identifier "param_1") ([ "[") (number_literal "0x45") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = iVar4 + (int)param_2;" (assignment_expression "iVar4 = iVar4 + (int)param_2" (identifier "iVar4") (= "=") (binary_expression "iVar4 + (int)param_2" (identifier "iVar4") (+ "+") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (expression_statement "param_1[0x46] = 0;" (assignment_expression "param_1[0x46] = 0" (subscript_expression "param_1[0x46]" (identifier "param_1") ([ "[") (number_literal "0x46") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x47] = 0;" (assignment_expression "param_1[0x47] = 0" (subscript_expression "param_1[0x47]" (identifier "param_1") ([ "[") (number_literal "0x47") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x48] = 0;" (assignment_expression "param_1[0x48] = 0" (subscript_expression "param_1[0x48]" (identifier "param_1") ([ "[") (number_literal "0x48") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_003f33b0(piVar1,iVar4);" (call_expression "FUN_003f33b0(piVar1,iVar4)" (identifier "FUN_003f33b0") (argument_list "(piVar1,iVar4)" (( "(") (identifier "piVar1") (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "FUN_003d8cc0(piVar1,param_1 + 0x41);" (call_expression "FUN_003d8cc0(piVar1,param_1 + 0x41)" (identifier "FUN_003d8cc0") (argument_list "(piVar1,param_1 + 0x41)" (( "(") (identifier "piVar1") (, ",") (binary_expression "param_1 + 0x41" (identifier "param_1") (+ "+") (number_literal "0x41")) () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar4 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x70)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar4 + 0x70)" (* "*") (cast_expression "(int *)(iVar4 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x70)" (( "(") (binary_expression "iVar4 + 0x70" (identifier "iVar4") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x70)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x70)" (( "(") (binary_expression "iVar4 + 0x70" (identifier "iVar4") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x42] = iVar3;" (assignment_expression "param_1[0x42] = iVar3" (subscript_expression "param_1[0x42]" (identifier "param_1") ([ "[") (number_literal "0x42") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "param_1[0x43] = *(int *)(iVar4 + 0x74);" (assignment_expression "param_1[0x43] = *(int *)(iVar4 + 0x74)" (subscript_expression "param_1[0x43]" (identifier "param_1") ([ "[") (number_literal "0x43") (] "]")) (= "=") (pointer_expression "*(int *)(iVar4 + 0x74)" (* "*") (cast_expression "(int *)(iVar4 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x74)" (( "(") (binary_expression "iVar4 + 0x74" (identifier "iVar4") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined1 *)(iVar4 + 0x78);" (assignment_expression "uVar2 = *(undefined1 *)(iVar4 + 0x78)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined1 *)(iVar4 + 0x78)" (* "*") (cast_expression "(undefined1 *)(iVar4 + 0x78)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x78)" (( "(") (binary_expression "iVar4 + 0x78" (identifier "iVar4") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "param_1[0x45] = 0;" (assignment_expression "param_1[0x45] = 0" (subscript_expression "param_1[0x45]" (identifier "param_1") ([ "[") (number_literal "0x45") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x44) = uVar2;" (assignment_expression "*(undefined1 *)(param_1 + 0x44) = uVar2" (pointer_expression "*(undefined1 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "param_2[1] = 0;" (assignment_expression "param_2[1] = 0" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = unaff_EDI + 0x209d9f;" (assignment_expression "*param_1 = unaff_EDI + 0x209d9f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "unaff_EDI + 0x209d9f" (identifier "unaff_EDI") (+ "+") (number_literal "0x209d9f"))) (; ";")) (expression_statement "param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);" (assignment_expression "param_1[2] = (int)(&UNK_00209db3 + unaff_EDI)" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)(&UNK_00209db3 + unaff_EDI)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(&UNK_00209db3 + unaff_EDI)" (( "(") (binary_expression "&UNK_00209db3 + unaff_EDI" (pointer_expression "&UNK_00209db3" (& "&") (identifier "UNK_00209db3")) (+ "+") (identifier "unaff_EDI")) () ")")))) (; ";")) (expression_statement "param_1[0x26] = unaff_EDI + 0x209dc7;" (assignment_expression "param_1[0x26] = unaff_EDI + 0x209dc7" (subscript_expression "param_1[0x26]" (identifier "param_1") ([ "[") (number_literal "0x26") (] "]")) (= "=") (binary_expression "unaff_EDI + 0x209dc7" (identifier "unaff_EDI") (+ "+") (number_literal "0x209dc7"))) (; ";")) (expression_statement "FUN_003dc6a0(param_1 + 3,param_2 + 3);" (call_expression "FUN_003dc6a0(param_1 + 3,param_2 + 3)" (identifier "FUN_003dc6a0") (argument_list "(param_1 + 3,param_2 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) (, ",") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")"))) (; ";")) (expression_statement "param_1[0x45] = (int)(param_1 + 3);" (assignment_expression "param_1[0x45] = (int)(param_1 + 3)" (subscript_expression "param_1[0x45]" (identifier "param_1") ([ "[") (number_literal "0x45") (] "]")) (= "=") (cast_expression "(int)(param_1 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* std::wfstream::wfstream(std::wfstream&&) */

void __thiscall std::function_1::function_1(function_1 *var_2,function_1 *var_4)

{
  type_1 *this_00;
  function_1 wVar1;
  type_2 uVar2;
  int var_5;
  int var_3;
  
  var_1();
  this_00 = (type_1 *)(var_2 + 0x98);
  ios_base::type_1(this_00);
  *(type_3 **)(var_2 + 0x98) = &UNK_00209d27 + var_3;
  uVar2 = *(type_2 *)(var_4 + 4);
  *(type_3 **)var_2 = &UNK_00209d13 + var_3;
  *(type_2 *)(var_2 + 0x108) = 0;
  *(type_2 *)(var_2 + 4) = uVar2;
  var_5 = *(int *)var_4;
  *(type_2 *)(var_2 + 0x10c) = 0;
  var_5 = *(int *)(var_5 + -0xc);
  var_2[0x110] = (function_1)0x0;
  *(type_2 *)(var_2 + 0x114) = 0;
  *(type_2 *)(var_2 + 0x118) = 0;
  *(type_2 *)(var_2 + 0x11c) = 0;
  *(type_2 *)(var_2 + 0x120) = 0;
  ios_base::var_6(this_00);
                    /* try { // try from 003ddefe to 003ddf02 has its CatchHandler @ 003ddf82 */
  wios::var_7((type_4 *)this_00);
  uVar2 = *(type_2 *)(var_4 + var_5 + 0x70);
  *(type_2 *)(var_4 + var_5 + 0x70) = 0;
  *(type_2 *)(var_2 + 0x108) = uVar2;
  *(type_2 *)(var_2 + 0x10c) = *(type_2 *)(var_4 + var_5 + 0x74);
  wVar1 = var_4[var_5 + 0x78];
  *(type_2 *)(var_2 + 0x114) = 0;
  var_2[0x110] = wVar1;
  *(type_2 *)(var_4 + 4) = 0;
  *(type_3 **)var_2 = &UNK_00209d9f + var_3;
  *(type_3 **)(var_2 + 8) = &UNK_00209db3 + var_3;
  *(type_3 **)(var_2 + 0x98) = &UNK_00209dc7 + var_3;
                    /* try { // try from 003ddf69 to 003ddf6d has its CatchHandler @ 003ddf87 */
  wfilebuf::var_8((var_8 *)(var_2 + 0xc),(var_8 *)(var_4 + 0xc));
  *(var_8 **)(var_2 + 0x114) = (var_8 *)(var_2 + 0xc);
  return;
}


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

void MASKED(int *param_1,int *param_2)

{
  int *piVar1;
  undefined1 uVar2;
  int iVar3;
  int iVar4;
  int unaff_EDI;
  
  FUN_00074f0a();
  piVar1 = param_1 + 0x26;
  FUN_003f2f70(piVar1);
  param_1[0x26] = unaff_EDI + 0x209d27;
  iVar4 = param_2[1];
  *param_1 = unaff_EDI + 0x209d13;
  param_1[0x42] = 0;
  param_1[1] = iVar4;
  iVar4 = *param_2;
  param_1[0x43] = 0;
  iVar4 = *(int *)(iVar4 + -0xc);
  *(undefined1 *)(param_1 + 0x44) = 0;
  param_1[0x45] = 0;
  iVar4 = iVar4 + (int)param_2;
  param_1[0x46] = 0;
  param_1[0x47] = 0;
  param_1[0x48] = 0;
  FUN_003f33b0(piVar1,iVar4);
                    /* try { // try from 003ddefe to 003ddf02 has its CatchHandler @ 003ddf82 */
  FUN_003d8cc0(piVar1,param_1 + 0x41);
  iVar3 = *(int *)(iVar4 + 0x70);
  *(undefined4 *)(iVar4 + 0x70) = 0;
  param_1[0x42] = iVar3;
  param_1[0x43] = *(int *)(iVar4 + 0x74);
  uVar2 = *(undefined1 *)(iVar4 + 0x78);
  param_1[0x45] = 0;
  *(undefined1 *)(param_1 + 0x44) = uVar2;
  param_2[1] = 0;
  *param_1 = unaff_EDI + 0x209d9f;
  param_1[2] = (int)(&UNK_00209db3 + unaff_EDI);
  param_1[0x26] = unaff_EDI + 0x209dc7;
                    /* try { // try from 003ddf69 to 003ddf6d has its CatchHandler @ 003ddf87 */
  FUN_003dc6a0(param_1 + 3,param_2 + 3);
  param_1[0x45] = (int)(param_1 + 3);
  return;
}

