Advertisement
Guest User

UInput::Exec

a guest
Apr 21st, 2021
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 344.20 KB | None | 0 0
  1. int __userpurge UInput::Exec@<eax>(UInput *this@<ecx>, double a2@<st0>, const wchar_t *a3, struct FOutputDevice *a4)
  2. {
  3.   UInput *v4; // esi
  4.   int v5; // ecx
  5.   int v6; // edi
  6.   int v7; // eax
  7.   double v8; // st7
  8.   int v9; // eax
  9.   int v10; // ecx
  10.   int v11; // edi
  11.   int v12; // eax
  12.   double v13; // st7
  13.   int v14; // eax
  14.   int v15; // ecx
  15.   signed int v16; // ebx
  16.   int v17; // eax
  17.   int v18; // eax
  18.   int v19; // edi
  19.   int v20; // eax
  20.   UGameEngine *v21; // ebx
  21.   int v22; // eax
  22.   int (__thiscall **v23)(_DWORD, struct FOutputDevice *); // ebx
  23.   int v24; // eax
  24.   int v25; // eax
  25.   int v26; // eax
  26.   int v27; // eax
  27.   UGameEngine *v28; // eax
  28.   int v29; // eax
  29.   int v30; // eax
  30.   int v31; // ecx
  31.   UGameEngine *v32; // eax
  32.   int v33; // eax
  33.   int v34; // esi
  34.   void (__thiscall **v35)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // esi
  35.   float *v36; // edx
  36.   int v37; // ecx
  37.   UGameEngine *v38; // eax
  38.   int v39; // eax
  39.   int v40; // eax
  40.   UGameEngine *v41; // ebx
  41.   int v42; // eax
  42.   int v43; // ecx
  43.   unsigned __int8 *v44; // eax
  44.   int v45; // ebx
  45.   float *v46; // eax
  46.   int v47; // eax
  47.   void (__thiscall **v48)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // esi
  48.   void (__thiscall **v49)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // esi
  49.   void (__thiscall **v50)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // esi
  50.   int v51; // edi
  51.   int v52; // esi
  52.   int v53; // eax
  53.   int v54; // eax
  54.   unsigned __int8 *v55; // eax
  55.   _DWORD *v56; // ebx
  56.   int v57; // ecx
  57.   double v58; // st7
  58.   char v59; // al
  59.   int v60; // eax
  60.   _DWORD *v61; // eax
  61.   int v62; // eax
  62.   _DWORD *v63; // ecx
  63.   _DWORD *v64; // eax
  64.   int v65; // eax
  65.   int v66; // esi
  66.   int v67; // ecx
  67.   _DWORD *v68; // eax
  68.   struct AActor *v69; // eax
  69.   _DWORD *v70; // eax
  70.   int v71; // eax
  71.   float *v72; // eax
  72.   float *v73; // ecx
  73.   int v74; // eax
  74.   float *v75; // eax
  75.   float *v76; // eax
  76.   float *v77; // edi
  77.   float v78; // ecx
  78.   float v79; // edx
  79.   float *v80; // ebx
  80.   char v81; // al
  81.   _DWORD *v82; // eax
  82.   int v83; // eax
  83.   int v84; // esi
  84.   int v85; // ecx
  85.   _DWORD *v86; // eax
  86.   struct AActor *v87; // eax
  87.   AActor *v88; // esi
  88.   int v89; // eax
  89.   float *v90; // eax
  90.   float *v91; // eax
  91.   float *v92; // edi
  92.   float *v93; // eax
  93.   int v94; // eax
  94.   float *v95; // eax
  95.   float *v96; // eax
  96.   float *v97; // edi
  97.   int v98; // ecx
  98.   ALineagePlayerController *v99; // esi
  99.   int v100; // eax
  100.   int v101; // ecx
  101.   int v102; // ecx
  102.   int v103; // ecx
  103.   int v104; // eax
  104.   bool v105; // zf
  105.   int v106; // ecx
  106.   int v107; // ecx
  107.   int v108; // edi
  108.   int v109; // esi
  109.   int v110; // ecx
  110.   int v111; // ecx
  111.   int v112; // edi
  112.   int v113; // eax
  113.   unsigned int v114; // eax
  114.   UInput *v115; // esi
  115.   void (__stdcall *v116)(_DWORD); // eax
  116.   int result; // eax
  117.   int v118; // ecx
  118.   int v119; // ecx
  119.   int v120; // edi
  120.   int v121; // eax
  121.   unsigned int v122; // eax
  122.   UInput *v123; // esi
  123.   int v124; // ecx
  124.   int v125; // eax
  125.   int v126; // edi
  126.   int v127; // ecx
  127.   int v128; // ecx
  128.   int v129; // edi
  129.   int v130; // eax
  130.   ALineagePlayerController *v131; // edi
  131.   int v132; // eax
  132.   int v133; // eax
  133.   int v134; // eax
  134.   bool v135; // zf
  135.   int v136; // ecx
  136.   int v137; // ecx
  137.   _DWORD *v138; // edi
  138.   int v139; // eax
  139.   bool v140; // zf
  140.   int v141; // ecx
  141.   int v142; // eax
  142.   _DWORD *v143; // esi
  143.   int v144; // ebx
  144.   int v145; // eax
  145.   bool v146; // zf
  146.   int v147; // ecx
  147.   int v148; // eax
  148.   _DWORD *v149; // esi
  149.   int v150; // ebx
  150.   int v151; // eax
  151.   bool v152; // zf
  152.   int v153; // ecx
  153.   int v154; // eax
  154.   _DWORD *v155; // esi
  155.   int v156; // ebx
  156.   int v157; // edi
  157.   int v158; // eax
  158.   bool v159; // zf
  159.   int v160; // ecx
  160.   int v161; // eax
  161.   char v162; // al
  162.   int v163; // eax
  163.   double v164; // st7
  164.   int v165; // eax
  165.   bool v166; // zf
  166.   int v167; // ecx
  167.   char v168; // al
  168.   int v169; // edi
  169.   int v170; // eax
  170.   unsigned int v171; // eax
  171.   int v172; // edx
  172.   APawn *v173; // edi
  173.   int v174; // eax
  174.   bool v175; // zf
  175.   int v176; // ecx
  176.   int v177; // eax
  177.   char v178; // al
  178.   int v179; // eax
  179.   int v180; // edi
  180.   struct FOutputDevice *v181; // eax
  181.   double v182; // st6
  182.   int v183; // eax
  183.   bool v184; // zf
  184.   int v185; // ecx
  185.   int v186; // edi
  186.   _DWORD *v187; // esi
  187.   _DWORD *v188; // ecx
  188.   int v189; // ebx
  189.   int v190; // eax
  190.   bool v191; // zf
  191.   int v192; // ecx
  192.   int v193; // eax
  193.   char v194; // al
  194.   int v195; // ecx
  195.   int v196; // edi
  196.   double v197; // st6
  197.   int v198; // eax
  198.   bool v199; // zf
  199.   int v200; // ecx
  200.   int v201; // edi
  201.   _DWORD *v202; // esi
  202.   _DWORD *v203; // ecx
  203.   int v204; // eax
  204.   bool v205; // zf
  205.   int v206; // ecx
  206.   int v207; // esi
  207.   char v208; // al
  208.   int v209; // eax
  209.   int v210; // esi
  210.   int v211; // edx
  211.   int v212; // eax
  212.   bool v213; // zf
  213.   int v214; // ecx
  214.   _DWORD *v215; // esi
  215.   char v216; // al
  216.   int v217; // eax
  217.   _DWORD *v218; // eax
  218.   int v219; // ebx
  219.   int v220; // ebx
  220.   int v221; // edi
  221.   int v222; // eax
  222.   bool v223; // zf
  223.   int v224; // eax
  224.   char v225; // cl
  225.   int v226; // esi
  226.   int v227; // eax
  227.   float *v228; // eax
  228.   float *v229; // eax
  229.   int v230; // eax
  230.   bool v231; // zf
  231.   int v232; // ecx
  232.   int v233; // eax
  233.   char v234; // cl
  234.   int v235; // eax
  235.   bool v236; // zf
  236.   int v237; // ecx
  237.   char v238; // cl
  238.   _BYTE *v239; // eax
  239.   int v240; // eax
  240.   int v241; // esi
  241.   int v242; // eax
  242.   _BYTE *v243; // eax
  243.   float *v244; // edi
  244.   double v245; // st7
  245.   bool v246; // c0
  246.   double v247; // st7
  247.   double v248; // st6
  248.   double v249; // st7
  249.   int v250; // eax
  250.   _BYTE *v251; // eax
  251.   int v252; // eax
  252.   int v253; // eax
  253.   int v254; // eax
  254.   int v255; // eax
  255.   int v256; // eax
  256.   float v257; // ecx
  257.   int v258; // eax
  258.   int v259; // eax
  259.   int *v260; // eax
  260.   unsigned __int8 *v261; // eax
  261.   int v262; // eax
  262.   unsigned __int8 *v263; // eax
  263.   int v264; // eax
  264.   int *v265; // eax
  265.   int v266; // ecx
  266.   int v267; // edi
  267.   int (__cdecl *v268)(const wchar_t *, const wchar_t *, int *); // ebx
  268.   int v269; // eax
  269.   bool v270; // zf
  270.   int v271; // eax
  271.   _DWORD *v272; // ebx
  272.   void (__thiscall **v273)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, int); // edi
  273.   int v274; // eax
  274.   int v275; // edi
  275.   char v276; // al
  276.   int v277; // eax
  277.   bool v278; // zf
  278.   _DWORD *v279; // edi
  279.   void (__thiscall **v280)(_DWORD, _DWORD); // ebx
  280.   int v281; // eax
  281.   int v282; // eax
  282.   int *v283; // eax
  283.   int *v284; // eax
  284.   int v285; // eax
  285.   bool v286; // zf
  286.   int v287; // eax
  287.   float v288; // edx
  288.   int *v289; // ecx
  289.   int v290; // ebx
  290.   int v291; // eax
  291.   int v292; // ecx
  292.   int v293; // ecx
  293.   int *v294; // ebx
  294.   int v295; // edi
  295.   int v296; // edx
  296.   int v297; // eax
  297.   int v298; // eax
  298.   bool v299; // zf
  299.   int v300; // ecx
  300.   char v301; // al
  301.   int v302; // edx
  302.   int v303; // edx
  303.   int v304; // edx
  304.   int v305; // eax
  305.   char v306; // cl
  306.   int v307; // eax
  307.   bool v308; // zf
  308.   int v309; // eax
  309.   int v310; // eax
  310.   double v311; // st7
  311.   int v312; // eax
  312.   char v313; // cl
  313.   int v314; // ecx
  314.   int v315; // ecx
  315.   float *v316; // ecx
  316.   float v317; // edx
  317.   int v318; // eax
  318.   bool v319; // zf
  319.   int v320; // eax
  320.   int v321; // eax
  321.   ULevel *v322; // edi
  322.   float *v323; // eax
  323.   int *v324; // eax
  324.   int v325; // ecx
  325.   int v326; // eax
  326.   bool v327; // zf
  327.   int v328; // eax
  328.   int v329; // ecx
  329.   int v330; // eax
  330.   int v331; // eax
  331.   bool v332; // zf
  332.   int v333; // eax
  333.   _DWORD *v334; // esi
  334.   int (__thiscall **v335)(_DWORD *, struct FOutputDevice *); // edi
  335.   int v336; // eax
  336.   int v337; // eax
  337.   int v338; // ebx
  338.   int (__thiscall **v339)(_DWORD *, int); // edi
  339.   int v340; // eax
  340.   int v341; // eax
  341.   int v342; // edx
  342.   signed int i; // edi
  343.   float v344; // eax
  344.   int v345; // edx
  345.   int v346; // edx
  346.   int v347; // eax
  347.   bool v348; // zf
  348.   int v349; // eax
  349.   int v350; // eax
  350.   int v351; // edx
  351.   int v352; // edi
  352.   int v353; // ebx
  353.   int v354; // eax
  354.   _DWORD *v355; // ebx
  355.   int (__thiscall **v356)(_DWORD *, struct FOutputDevice *); // edi
  356.   int v357; // eax
  357.   int v358; // edi
  358.   int k; // eax
  359.   int v360; // eax
  360.   int v361; // eax
  361.   int v362; // eax
  362.   int v363; // eax
  363.   int v364; // eax
  364.   int v365; // edx
  365.   int v366; // eax
  366.   int v367; // edx
  367.   int v368; // edx
  368.   float v369; // eax
  369.   ULevel *v370; // eax
  370.   int v371; // edi
  371.   float *v372; // ebx
  372.   int v373; // eax
  373.   int v374; // eax
  374.   int v375; // eax
  375.   ULevel *v376; // edi
  376.   int v377; // eax
  377.   int *v378; // eax
  378.   int v379; // ecx
  379.   int v380; // eax
  380.   bool v381; // zf
  381.   int v382; // eax
  382.   int v383; // edi
  383.   signed int v384; // ecx
  384.   int v385; // ecx
  385.   float *v386; // eax
  386.   _DWORD *v387; // ebx
  387.   int (__thiscall **v388)(_DWORD *, ULevel *); // edi
  388.   int v389; // eax
  389.   int v390; // edi
  390.   int v391; // eax
  391.   int v392; // eax
  392.   int v393; // eax
  393.   int v394; // edx
  394.   signed int m; // ebx
  395.   int v396; // eax
  396.   int v397; // eax
  397.   bool v398; // zf
  398.   int v399; // eax
  399.   _DWORD *v400; // edi
  400.   int v401; // eax
  401.   int v402; // ebx
  402.   void (__thiscall **v403)(_DWORD *, int); // esi
  403.   int v404; // eax
  404.   int v405; // eax
  405.   int v406; // edi
  406.   float *v407; // eax
  407.   int v408; // esi
  408.   int v409; // eax
  409.   int v410; // edi
  410.   int *v411; // ecx
  411.   float v412; // edi
  412.   int v413; // eax
  413.   int v414; // edx
  414.   int v415; // ebx
  415.   signed int v416; // eax
  416.   int v417; // eax
  417.   AVehicleServerPart *v418; // eax
  418.   AVehicleServerPart *v419; // eax
  419.   int v420; // esi
  420.   int v421; // edx
  421.   int v422; // eax
  422.   float *v423; // eax
  423.   int v424; // eax
  424.   int v425; // eax
  425.   _DWORD *v426; // ebx
  426.   int (__thiscall **v427)(_DWORD *, struct FOutputDevice *); // edi
  427.   int v428; // eax
  428.   int *v429; // eax
  429.   int v430; // edx
  430.   float *v431; // edi
  431.   int v432; // eax
  432.   int v433; // eax
  433.   int v434; // eax
  434.   int v435; // eax
  435.   int v436; // eax
  436.   int v437; // eax
  437.   struct FOutputDevice *v438; // eax
  438.   _DWORD *v439; // eax
  439.   _DWORD *v440; // edx
  440.   struct FOutputDevice *v441; // eax
  441.   _DWORD *v442; // edi
  442.   _DWORD *v443; // eax
  443.   int v444; // eax
  444.   bool v445; // zf
  445.   int v446; // ecx
  446.   float *v447; // eax
  447.   _DWORD *v448; // edi
  448.   int v449; // ebx
  449.   int (__thiscall **v450)(_DWORD *, int, int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, signed int, _DWORD, _DWORD, _DWORD); // esi
  450.   _DWORD *v451; // eax
  451.   int v452; // esi
  452.   int v453; // eax
  453.   int v454; // eax
  454.   int v455; // eax
  455.   bool v456; // zf
  456.   _DWORD *v457; // ecx
  457.   int v458; // eax
  458.   int n; // ebx
  459.   int v460; // eax
  460.   int v461; // eax
  461.   int v462; // edi
  462.   int v463; // eax
  463.   int ii; // ebx
  464.   int v465; // eax
  465.   int v466; // eax
  466.   int v467; // edi
  467.   double v468; // st7
  468.   int v469; // ecx
  469.   float *v470; // esi
  470.   double v471; // st7
  471.   double v472; // st5
  472.   double v473; // st5
  473.   int v474; // eax
  474.   int v475; // eax
  475.   double v476; // st7
  476.   int v477; // eax
  477.   int v478; // eax
  478.   double v479; // st7
  479.   int v480; // ecx
  480.   int v481; // ecx
  481.   int v482; // eax
  482.   double v483; // st7
  483.   int v484; // ecx
  484.   int v485; // ecx
  485.   int v486; // eax
  486.   int v487; // eax
  487.   int v488; // eax
  488.   int v489; // ecx
  489.   int v490; // edi
  490.   int v491; // ecx
  491.   int v492; // ebx
  492.   int v493; // ecx
  493.   int v494; // ecx
  494.   _DWORD *v495; // edi
  495.   int v496; // ebx
  496.   int *v497; // eax
  497.   float *v498; // eax
  498.   float *v499; // eax
  499.   int *v500; // eax
  500.   float *v501; // ecx
  501.   void (__thiscall **v502)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // edi
  502.   _DWORD *v503; // eax
  503.   int v504; // eax
  504.   unsigned __int8 *v505; // edi
  505.   void (__thiscall **v506)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // ebx
  506.   _DWORD *v507; // eax
  507.   int v508; // eax
  508.   int v509; // eax
  509.   bool v510; // zf
  510.   int v511; // eax
  511.   char v512; // cl
  512.   ALineagePlayerController *v513; // ecx
  513.   int *v514; // eax
  514.   float *v515; // eax
  515.   float *v516; // eax
  516.   int v517; // ecx
  517.   float *v518; // edx
  518.   _DWORD *v519; // eax
  519.   float *v520; // ecx
  520.   void (__thiscall **v521)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // edi
  521.   _DWORD *v522; // eax
  522.   int v523; // eax
  523.   int v524; // ecx
  524.   signed int v525; // eax
  525.   float v526; // edi
  526.   int v527; // eax
  527.   float *v528; // eax
  528.   void (__thiscall **v529)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // edi
  529.   int v530; // eax
  530.   int v531; // eax
  531.   float *v532; // ecx
  532.   void (__thiscall **v533)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // edi
  533.   _DWORD *v534; // eax
  534.   int v535; // eax
  535.   float *v536; // ecx
  536.   int v537; // eax
  537.   int v538; // ecx
  538.   int v539; // eax
  539.   int v540; // ecx
  540.   void (__thiscall *v541)(int *, const wchar_t *, signed int); // edi
  541.   int v542; // esi
  542.   FL2ArmorItemData *v543; // ecx
  543.   int v544; // esi
  544.   int v545; // eax
  545.   FL2WeaponItemData *v546; // ecx
  546.   int (*v547)(_DWORD, const char *, ...); // ebx
  547.   int v548; // esi
  548.   FL2NpcData *v549; // ecx
  549.   int jj; // esi
  550.   int v551; // esi
  551.   int v552; // eax
  552.   FL2EtcItemData *v553; // ecx
  553.   int kk; // esi
  554.   FL2SkillSoundData *v555; // eax
  555.   int v556; // esi
  556.   int v557; // edi
  557.   FL2EnterEventData *v558; // ecx
  558.   int v559; // edi
  559.   int v560; // esi
  560.   FL2NpcSkillAnimData *v561; // ecx
  561.   int v562; // esi
  562.   int ll; // esi
  563.   FL2VariationEffectData *v564; // ecx
  564.   _DWORD *v565; // ecx
  565.   int v566; // esi
  566.   int v567; // eax
  567.   _DWORD *v568; // edi
  568.   _DWORD *v569; // ecx
  569.   int v570; // esi
  570.   int v571; // eax
  571.   _DWORD *v572; // edi
  572.   int v573; // eax
  573.   _DWORD *v574; // esi
  574.   int v575; // ecx
  575.   int v576; // eax
  576.   int v577; // edx
  577.   int *v578; // ecx
  578.   int v579; // eax
  579.   int v580; // esi
  580.   float *v581; // eax
  581.   float *v582; // eax
  582.   int v583; // ecx
  583.   int v584; // eax
  584.   int v585; // esi
  585.   int v586; // eax
  586.   void (__thiscall **v587)(int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, signed int); // edi
  587.   float *v588; // eax
  588.   float *v589; // eax
  589.   float *v590; // eax
  590.   void (__thiscall **v591)(int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, signed int); // edi
  591.   float *v592; // eax
  592.   int v593; // ecx
  593.   int v594; // eax
  594.   int v595; // esi
  595.   void (__thiscall **v596)(int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // edi
  596.   int v597; // eax
  597.   _DWORD *v598; // eax
  598.   int v599; // eax
  599.   int v600; // edi
  600.   int v601; // eax
  601.   _DWORD *v602; // edi
  602.   int v603; // eax
  603.   int *v604; // eax
  604.   int v605; // eax
  605.   int v606; // eax
  606.   int v607; // eax
  607.   int v608; // edi
  608.   int v609; // edx
  609.   int v610; // eax
  610.   int v611; // edx
  611.   int *v612; // ecx
  612.   int v613; // edx
  613.   int v614; // edx
  614.   int v615; // edx
  615.   int v616; // edx
  616.   int v617; // edx
  617.   int v618; // eax
  618.   int v619; // ecx
  619.   int v620; // eax
  620.   _DWORD *v621; // edi
  621.   void (__thiscall **v622)(_DWORD *, _DWORD); // esi
  622.   int v623; // ecx
  623.   int v624; // eax
  624.   int v625; // esi
  625.   int v626; // ecx
  626.   int v627; // eax
  627.   FL2ReplayManager *v628; // eax
  628.   int v629; // eax
  629.   int v630; // edx
  630.   int v631; // eax
  631.   int v632; // eax
  632.   int v633; // esi
  633.   float v634; // ecx
  634.   int v635; // ecx
  635.   int v636; // eax
  636.   FL2ReplayManager *v637; // eax
  637.   int v638; // eax
  638.   int v639; // edx
  639.   int v640; // eax
  640.   int v641; // eax
  641.   int v642; // esi
  642.   float v643; // ecx
  643.   int v644; // ecx
  644.   int v645; // eax
  645.   FL2ReplayManager *v646; // eax
  646.   int v647; // eax
  647.   int v648; // edx
  648.   int v649; // eax
  649.   int v650; // eax
  650.   int v651; // eax
  651.   int v652; // ecx
  652.   int v653; // eax
  653.   int v654; // edx
  654.   int v655; // eax
  655.   int v656; // eax
  656.   int v657; // eax
  657.   int v658; // eax
  658.   int v659; // eax
  659.   int v660; // eax
  660.   char v661; // bl
  661.   FDepthOfField *v662; // eax
  662.   int v663; // eax
  663.   int v664; // edx
  664.   int v665; // eax
  665.   int v666; // eax
  666.   int v667; // eax
  667.   int v668; // eax
  668.   _DWORD *v669; // ecx
  669.   APawn *v670; // edi
  670.   ULevel *v671; // ebx
  671.   struct FL2MagicSkillData *v672; // eax
  672.   float v673; // esi
  673.   UL2SkillEffect *v674; // ebx
  674.   int *v675; // esi
  675.   int v676; // eax
  676.   float v677; // ecx
  677.   int *v678; // esi
  678.   int v679; // ecx
  679.   _DWORD *v680; // esi
  680.   _DWORD *v681; // ecx
  681.   int v682; // edi
  682.   int v683; // eax
  683.   int v684; // eax
  684.   int v685; // ecx
  685.   int v686; // eax
  686.   void (__thiscall **v687)(UGameEngine *, char *, _DWORD, int, int, _DWORD, _DWORD, float, float, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // esi
  687.   int v688; // eax
  688.   int v689; // edx
  689.   int v690; // eax
  690.   void (__stdcall *v691)(int *); // edx
  691.   int v692; // eax
  692.   int v693; // ecx
  693.   int v694; // edi
  694.   float *v695; // eax
  695.   int v696; // eax
  696.   int v697; // eax
  697.   APawn *v698; // ecx
  698.   int v699; // eax
  699.   APawn *v700; // ecx
  700.   int v701; // eax
  701.   _DWORD *v702; // ecx
  702.   int v703; // eax
  703.   ANCubics **v704; // edi
  704.   int v705; // eax
  705.   struct APawn *v706; // eax
  706.   int v707; // eax
  707.   int v708; // eax
  708.   int v709; // ecx
  709.   int v710; // eax
  710.   int v711; // eax
  711.   int v712; // eax
  712.   int v713; // eax
  713.   int v714; // ecx
  714.   int v715; // eax
  715.   int v716; // ecx
  716.   int v717; // eax
  717.   int *v718; // eax
  718.   float *v719; // eax
  719.   int v720; // eax
  720.   int *v721; // eax
  721.   float *v722; // eax
  722.   _DWORD *v723; // edi
  723.   int v724; // ebx
  724.   int (__thiscall **v725)(_DWORD *, int); // esi
  725.   int v726; // eax
  726.   int *v727; // eax
  727.   int v728; // edi
  728.   int v729; // eax
  729.   int v730; // eax
  730.   int v731; // eax
  731.   int v732; // eax
  732.   int v733; // eax
  733.   int v734; // eax
  734.   int v735; // eax
  735.   int v736; // ecx
  736.   int v737; // eax
  737.   int v738; // eax
  738.   int v739; // eax
  739.   int v740; // edx
  740.   int v741; // eax
  741.   int v742; // edi
  742.   float *v743; // edx
  743.   int v744; // eax
  744.   int v745; // eax
  745.   int v746; // ecx
  746.   int v747; // edx
  747.   int v748; // eax
  748.   int v749; // edi
  749.   float *v750; // edx
  750.   int v751; // edx
  751.   double v752; // st7
  752.   int v753; // eax
  753.   _DWORD *v754; // eax
  754.   int v755; // eax
  755.   float *v756; // eax
  756.   float v757; // edi
  757.   int v758; // eax
  758.   int v759; // edx
  759.   int v760; // eax
  760.   int v761; // ecx
  761.   int *v762; // eax
  762.   int v763; // esi
  763.   wchar_t *v764; // eax
  764.   int v765; // esi
  765.   int *v766; // eax
  766.   int v767; // eax
  767.   double v768; // st7
  768.   float v769; // edx
  769.   float v770; // ecx
  770.   int v771; // eax
  771.   int v772; // ecx
  772.   int v773; // eax
  773.   int mm; // ecx
  774.   _DWORD *v775; // edx
  775.   int v776; // esi
  776.   int nn; // eax
  777.   int v778; // edi
  778.   int v779; // edi
  779.   int v780; // esi
  780.   int *v781; // eax
  781.   struct FOutputDevice *v782; // edi
  782.   float v783; // ebx
  783.   int v784; // eax
  784.   int v785; // eax
  785.   float v786; // ecx
  786.   AActor *v787; // ebx
  787.   int *v788; // esi
  788.   int v789; // edi
  789.   int *i1; // esi
  790.   int v791; // eax
  791.   UGameEngine *v792; // eax
  792.   int *v793; // eax
  793.   int v794; // edx
  794.   int v795; // ecx
  795.   int v796; // eax
  796.   int v797; // edx
  797.   int v798; // ecx
  798.   int v799; // ecx
  799.   int v800; // edi
  800.   int v801; // eax
  801.   int v802; // edx
  802.   const wchar_t *v803; // eax
  803.   int v804; // edx
  804.   double v805; // st7
  805.   int v806; // eax
  806.   int v807; // eax
  807.   float v808; // ecx
  808.   int v809; // eax
  809.   int v810; // eax
  810.   float v811; // ecx
  811.   int v812; // eax
  812.   int v813; // eax
  813.   float v814; // ecx
  814.   int v815; // eax
  815.   int v816; // eax
  816.   float v817; // ecx
  817.   float v818; // ecx
  818.   int v819; // eax
  819.   double v820; // st7
  820.   int v821; // eax
  821.   int v822; // ecx
  822.   int v823; // eax
  823.   void (__stdcall **v824)(const wchar_t *, struct FOutputDevice *); // edx
  824.   int v825; // eax
  825.   int v826; // esi
  826.   int v827; // edx
  827.   int v828; // edi
  828.   int v829; // eax
  829.   bool v830; // zf
  830.   int v831; // ecx
  831.   int v832; // eax
  832.   char v833; // al
  833.   int v834; // eax
  834.   int v835; // edi
  835.   int v836; // eax
  836.   int v837; // eax
  837.   int v838; // edi
  838.   int v839; // eax
  839.   bool v840; // zf
  840.   int v841; // ecx
  841.   int v842; // eax
  842.   char v843; // al
  843.   int v844; // eax
  844.   int v845; // ecx
  845.   int v846; // eax
  846.   int v847; // eax
  847.   int v848; // ebx
  848.   int v849; // eax
  849.   bool v850; // zf
  850.   int v851; // ecx
  851.   int v852; // eax
  852.   char v853; // al
  853.   int v854; // ebx
  854.   int v855; // eax
  855.   bool v856; // zf
  856.   int v857; // ecx
  857.   int v858; // eax
  858.   char v859; // al
  859.   int v860; // eax
  860.   int v861; // edi
  861.   float *v862; // eax
  862.   float *v863; // eax
  863.   float *v864; // edx
  864.   int v865; // esi
  865.   int v866; // edx
  866.   int v867; // edx
  867.   int v868; // eax
  868.   int v869; // ecx
  869.   int v870; // eax
  870.   int v871; // edx
  871.   int v872; // ecx
  872.   int v873; // eax
  873.   _DWORD **v874; // ecx
  874.   int *v875; // eax
  875.   int v876; // edx
  876.   int v877; // edx
  877.   int v878; // ecx
  878.   float *v879; // eax
  879.   int v880; // eax
  880.   int v881; // ebx
  881.   float v882; // eax
  882.   _DWORD *v883; // edi
  883.   int (__thiscall **v884)(_DWORD *, int); // esi
  884.   int v885; // eax
  885.   int v886; // ecx
  886.   int v887; // eax
  887.   int *v888; // ebx
  888.   int *v889; // edi
  889.   int v890; // edx
  890.   _DWORD *v891; // ecx
  891.   _DWORD *v892; // edi
  892.   void (__thiscall **v893)(_DWORD *, _DWORD); // esi
  893.   int v894; // eax
  894.   int v895; // eax
  895.   int *v896; // ecx
  896.   int v897; // edx
  897.   int *v898; // esi
  898.   int i4; // ebx
  899.   float v900; // edi
  900.   int v901; // edx
  901.   float v902; // eax
  902.   _DWORD *v903; // edi
  903.   int (__thiscall **v904)(_DWORD *, int *); // esi
  904.   int v905; // esi
  905.   unsigned int i5; // edi
  906.   int v907; // ebx
  907.   _DWORD *v908; // esi
  908.   void (__thiscall **v909)(_DWORD *, _DWORD, _DWORD); // edi
  909.   int v910; // eax
  910.   int v911; // esi
  911.   int v912; // edx
  912.   int v913; // ecx
  913.   int v914; // esi
  914.   int v915; // edx
  915.   int v916; // eax
  916.   int v917; // edx
  917.   int v918; // eax
  918.   int v919; // edx
  919.   int v920; // esi
  920.   int v921; // eax
  921.   USkeletalMeshInstance *v922; // eax
  922.   int v923; // ecx
  923.   float *v924; // edi
  924.   signed __int64 v925; // kr00_8
  925.   int v926; // ecx
  926.   float *v927; // edi
  927.   signed __int64 v928; // kr08_8
  928.   float v929; // [esp+90h] [ebp-36A0h]
  929.   float v930; // [esp+94h] [ebp-369Ch]
  930.   float v931; // [esp+98h] [ebp-3698h]
  931.   float v932; // [esp+9Ch] [ebp-3694h]
  932.   float v933; // [esp+A0h] [ebp-3690h]
  933.   float v934; // [esp+A4h] [ebp-368Ch]
  934.   float v935; // [esp+A8h] [ebp-3688h]
  935.   float v936; // [esp+ACh] [ebp-3684h]
  936.   float v937; // [esp+B0h] [ebp-3680h]
  937.   float v938; // [esp+B4h] [ebp-367Ch]
  938.   float v939[2]; // [esp+B8h] [ebp-3678h]
  939.   const wchar_t *v940; // [esp+C0h] [ebp-3670h]
  940.   int v941; // [esp+C4h] [ebp-366Ch]
  941.   struct FOutputDevice *v942; // [esp+C8h] [ebp-3668h]
  942.   char v943; // [esp+CCh] [ebp-3664h]
  943.   char v944; // [esp+F38h] [ebp-27F8h]
  944.   int v945; // [esp+11ECh] [ebp-2544h]
  945.   char v946; // [esp+1378h] [ebp-23B8h]
  946.   int v947; // [esp+162Ch] [ebp-2104h]
  947.   char v948; // [esp+17B8h] [ebp-1F78h]
  948.   int v949; // [esp+1A6Ch] [ebp-1CC4h]
  949.   char v950; // [esp+1BF8h] [ebp-1B38h]
  950.   int v951; // [esp+1EACh] [ebp-1884h]
  951.   wchar_t v952; // [esp+2038h] [ebp-16F8h]
  952.   char v953; // [esp+2238h] [ebp-14F8h]
  953.   int v954; // [esp+22B4h] [ebp-147Ch]
  954.   int v955; // [esp+22B8h] [ebp-1478h]
  955.   int v956; // [esp+22BCh] [ebp-1474h]
  956.   int v957; // [esp+24ECh] [ebp-1244h]
  957.   int v958; // [esp+2678h] [ebp-10B8h]
  958.   int v959; // [esp+26F8h] [ebp-1038h]
  959.   int v960; // [esp+2728h] [ebp-1008h]
  960.   int v961; // [esp+2758h] [ebp-FD8h]
  961.   _WORD v962[64]; // [esp+2958h] [ebp-DD8h]
  962.   int v963; // [esp+29D8h] [ebp-D58h]
  963.   char v964; // [esp+2A14h] [ebp-D1Ch]
  964.   char v965; // [esp+2A44h] [ebp-CECh]
  965.   int v966; // [esp+2A54h] [ebp-CDCh]
  966.   char v967; // [esp+2A70h] [ebp-CC0h]
  967.   int v968; // [esp+2A74h] [ebp-CBCh]
  968.   int v969; // [esp+2AA0h] [ebp-C90h]
  969.   char v970; // [esp+2AACh] [ebp-C84h]
  970.   int v971; // [esp+2AB8h] [ebp-C78h]
  971.   char v972; // [esp+2AC4h] [ebp-C6Ch]
  972.   float v973; // [esp+2AD0h] [ebp-C60h]
  973.   char v974; // [esp+2ADCh] [ebp-C54h]
  974.   char v975; // [esp+2AE8h] [ebp-C48h]
  975.   struct FOutputDevice *v976; // [esp+2AF4h] [ebp-C3Ch]
  976.   int v977; // [esp+2B00h] [ebp-C30h]
  977.   int v978; // [esp+2B0Ch] [ebp-C24h]
  978.   int v979; // [esp+2B18h] [ebp-C18h]
  979.   int v980; // [esp+2B24h] [ebp-C0Ch]
  980.   float v981; // [esp+2B30h] [ebp-C00h]
  981.   int v982; // [esp+2B3Ch] [ebp-BF4h]
  982.   char v983; // [esp+2B48h] [ebp-BE8h]
  983.   char v984; // [esp+2B54h] [ebp-BDCh]
  984.   int v985; // [esp+2B60h] [ebp-BD0h]
  985.   float v986; // [esp+2B6Ch] [ebp-BC4h]
  986.   float v987; // [esp+2B78h] [ebp-BB8h]
  987.   int v988; // [esp+2B84h] [ebp-BACh]
  988.   int v989; // [esp+2B90h] [ebp-BA0h]
  989.   char v990; // [esp+2B9Ch] [ebp-B94h]
  990.   char v991; // [esp+2BA8h] [ebp-B88h]
  991.   float v992; // [esp+2BB4h] [ebp-B7Ch]
  992.   char v993; // [esp+2BC0h] [ebp-B70h]
  993.   char v994; // [esp+2BCCh] [ebp-B64h]
  994.   char v995; // [esp+2BD8h] [ebp-B58h]
  995.   int v996; // [esp+2BE4h] [ebp-B4Ch]
  996.   char v997; // [esp+2BF0h] [ebp-B40h]
  997.   struct FOutputDevice *v998; // [esp+2BFCh] [ebp-B34h]
  998.   char v999; // [esp+2C08h] [ebp-B28h]
  999.   char v1000; // [esp+2C14h] [ebp-B1Ch]
  1000.   int v1001; // [esp+2C20h] [ebp-B10h]
  1001.   char v1002; // [esp+2C2Ch] [ebp-B04h]
  1002.   char v1003; // [esp+2C38h] [ebp-AF8h]
  1003.   char v1004; // [esp+2C44h] [ebp-AECh]
  1004.   int v1005; // [esp+2C50h] [ebp-AE0h]
  1005.   struct FOutputDevice *v1006; // [esp+2C5Ch] [ebp-AD4h]
  1006.   int v1007; // [esp+2C68h] [ebp-AC8h]
  1007.   char v1008; // [esp+2C74h] [ebp-ABCh]
  1008.   char v1009; // [esp+2C80h] [ebp-AB0h]
  1009.   char v1010; // [esp+2C8Ch] [ebp-AA4h]
  1010.   int v1011; // [esp+2C98h] [ebp-A98h]
  1011.   int v1012; // [esp+2CA4h] [ebp-A8Ch]
  1012.   char v1013; // [esp+2CB0h] [ebp-A80h]
  1013.   int v1014; // [esp+2CBCh] [ebp-A74h]
  1014.   int v1015; // [esp+2CC4h] [ebp-A6Ch]
  1015.   char v1016; // [esp+2CDCh] [ebp-A54h]
  1016.   int v1017; // [esp+2CE4h] [ebp-A4Ch]
  1017.   char v1018; // [esp+2CECh] [ebp-A44h]
  1018.   float v1019; // [esp+2CF4h] [ebp-A3Ch]
  1019.   float v1020; // [esp+2CF8h] [ebp-A38h]
  1020.   float v1021; // [esp+2CFCh] [ebp-A34h]
  1021.   float v1022; // [esp+2D10h] [ebp-A20h]
  1022.   char v1023; // [esp+2D1Ch] [ebp-A14h]
  1023.   float v1024; // [esp+2D24h] [ebp-A0Ch]
  1024.   float v1025; // [esp+2D28h] [ebp-A08h]
  1025.   float v1026; // [esp+2D2Ch] [ebp-A04h]
  1026.   float v1027; // [esp+2D40h] [ebp-9F0h]
  1027.   int v1028; // [esp+2D4Ch] [ebp-9E4h]
  1028.   char v1029; // [esp+2D64h] [ebp-9CCh]
  1029.   int v1030; // [esp+2D70h] [ebp-9C0h]
  1030.   char v1031; // [esp+2D7Ch] [ebp-9B4h]
  1031.   char v1032; // [esp+2D88h] [ebp-9A8h]
  1032.   char v1033; // [esp+2D94h] [ebp-99Ch]
  1033.   int v1034; // [esp+2DA0h] [ebp-990h]
  1034.   int v1035; // [esp+2DB8h] [ebp-978h]
  1035.   int v1036; // [esp+2DBCh] [ebp-974h]
  1036.   int v1037; // [esp+2DC0h] [ebp-970h]
  1037.   int v1038; // [esp+2DC4h] [ebp-96Ch]
  1038.   int v1039; // [esp+2DC8h] [ebp-968h]
  1039.   int v1040; // [esp+2DCCh] [ebp-964h]
  1040.   int v1041; // [esp+2DD0h] [ebp-960h]
  1041.   int v1042; // [esp+2DD4h] [ebp-95Ch]
  1042.   int v1043; // [esp+2DD8h] [ebp-958h]
  1043.   int v1044; // [esp+2DDCh] [ebp-954h]
  1044.   int v1045; // [esp+2DE0h] [ebp-950h]
  1045.   int v1046; // [esp+2DE4h] [ebp-94Ch]
  1046.   int v1047; // [esp+2DE8h] [ebp-948h]
  1047.   int v1048; // [esp+2DECh] [ebp-944h]
  1048.   int v1049; // [esp+2DF0h] [ebp-940h]
  1049.   int v1050; // [esp+2DF4h] [ebp-93Ch]
  1050.   int v1051; // [esp+2DF8h] [ebp-938h]
  1051.   int v1052; // [esp+2DFCh] [ebp-934h]
  1052.   int v1053; // [esp+2E00h] [ebp-930h]
  1053.   int v1054; // [esp+2E04h] [ebp-92Ch]
  1054.   char v1055; // [esp+2E10h] [ebp-920h]
  1055.   int v1056; // [esp+2E14h] [ebp-91Ch]
  1056.   char v1057; // [esp+2E18h] [ebp-918h]
  1057.   char v1058; // [esp+2E20h] [ebp-910h]
  1058.   char v1059; // [esp+2E28h] [ebp-908h]
  1059.   char v1060; // [esp+2E2Ch] [ebp-904h]
  1060.   char v1061; // [esp+2E30h] [ebp-900h]
  1061.   int (__thiscall *v1062)(void *); // [esp+2E34h] [ebp-8FCh]
  1062.   int v1063; // [esp+2E38h] [ebp-8F8h]
  1063.   int v1064; // [esp+2E3Ch] [ebp-8F4h]
  1064.   int v1065; // [esp+2E40h] [ebp-8F0h]
  1065.   int v1066; // [esp+2E44h] [ebp-8ECh]
  1066.   int v1067; // [esp+2E48h] [ebp-8E8h]
  1067.   int v1068; // [esp+2E4Ch] [ebp-8E4h]
  1068.   int v1069; // [esp+2E58h] [ebp-8D8h]
  1069.   int v1070; // [esp+2E5Ch] [ebp-8D4h]
  1070.   int v1071; // [esp+2E60h] [ebp-8D0h]
  1071.   int v1072; // [esp+2E64h] [ebp-8CCh]
  1072.   char v1073; // [esp+2E68h] [ebp-8C8h]
  1073.   char v1074; // [esp+2E6Ch] [ebp-8C4h]
  1074.   char v1075; // [esp+2E70h] [ebp-8C0h]
  1075.   char v1076; // [esp+2E74h] [ebp-8BCh]
  1076.   char v1077; // [esp+2E78h] [ebp-8B8h]
  1077.   int v1078; // [esp+2E7Ch] [ebp-8B4h]
  1078.   char v1079; // [esp+2E80h] [ebp-8B0h]
  1079.   char v1080; // [esp+2E84h] [ebp-8ACh]
  1080.   int v1081; // [esp+2E88h] [ebp-8A8h]
  1081.   char v1082; // [esp+2EA0h] [ebp-890h]
  1082.   char v1083; // [esp+2EA4h] [ebp-88Ch]
  1083.   char v1084; // [esp+2EA8h] [ebp-888h]
  1084.   char v1085; // [esp+2EACh] [ebp-884h]
  1085.   char v1086; // [esp+2EB0h] [ebp-880h]
  1086.   char v1087; // [esp+2EB4h] [ebp-87Ch]
  1087.   char v1088; // [esp+2EBCh] [ebp-874h]
  1088.   int v1089; // [esp+2EC0h] [ebp-870h]
  1089.   int v1090; // [esp+2ED0h] [ebp-860h]
  1090.   int v1091; // [esp+2EDCh] [ebp-854h]
  1091.   int v1092; // [esp+2EE0h] [ebp-850h]
  1092.   int v1093; // [esp+2EECh] [ebp-844h]
  1093.   int v1094; // [esp+2EF0h] [ebp-840h]
  1094.   int (__thiscall *v1095)(void *); // [esp+2EF4h] [ebp-83Ch]
  1095.   int v1096; // [esp+2EF8h] [ebp-838h]
  1096.   int v1097; // [esp+2EFCh] [ebp-834h]
  1097.   char v1098; // [esp+2F08h] [ebp-828h]
  1098.   int v1099; // [esp+2F0Ch] [ebp-824h]
  1099.   int v1100; // [esp+2F1Ch] [ebp-814h]
  1100.   int v1101; // [esp+2F28h] [ebp-808h]
  1101.   int v1102; // [esp+2F34h] [ebp-7FCh]
  1102.   char v1103; // [esp+2F40h] [ebp-7F0h]
  1103.   int v1104; // [esp+2F44h] [ebp-7ECh]
  1104.   int v1105; // [esp+2F5Ch] [ebp-7D4h]
  1105.   int v1106; // [esp+2F74h] [ebp-7BCh]
  1106.   int v1107; // [esp+2F8Ch] [ebp-7A4h]
  1107.   int v1108; // [esp+2F98h] [ebp-798h]
  1108.   int v1109; // [esp+2F9Ch] [ebp-794h]
  1109.   int v1110; // [esp+2FA0h] [ebp-790h]
  1110.   int v1111; // [esp+2FA4h] [ebp-78Ch]
  1111.   float v1112; // [esp+2FA8h] [ebp-788h]
  1112.   ULevel *v1113; // [esp+2FACh] [ebp-784h]
  1113.   float v1114; // [esp+2FB0h] [ebp-780h]
  1114.   float v1115; // [esp+2FB4h] [ebp-77Ch]
  1115.   float v1116; // [esp+2FB8h] [ebp-778h]
  1116.   int v1117; // [esp+2FBCh] [ebp-774h]
  1117.   int v1118; // [esp+2FC8h] [ebp-768h]
  1118.   int v1119; // [esp+2FD4h] [ebp-75Ch]
  1119.   float v1120; // [esp+2FE0h] [ebp-750h]
  1120.   float v1121; // [esp+2FE4h] [ebp-74Ch]
  1121.   float v1122; // [esp+2FE8h] [ebp-748h]
  1122.   int v1123; // [esp+2FECh] [ebp-744h]
  1123.   float v1124; // [esp+2FF0h] [ebp-740h]
  1124.   ULevel *v1125; // [esp+2FF4h] [ebp-73Ch]
  1125.   int v1126; // [esp+2FF8h] [ebp-738h]
  1126.   int v1127; // [esp+3004h] [ebp-72Ch]
  1127.   float v1128; // [esp+3008h] [ebp-728h]
  1128.   ULevel *v1129; // [esp+300Ch] [ebp-724h]
  1129.   int v1130; // [esp+3010h] [ebp-720h]
  1130.   int v1131; // [esp+301Ch] [ebp-714h]
  1131.   float v1132; // [esp+3020h] [ebp-710h]
  1132.   float v1133; // [esp+3024h] [ebp-70Ch]
  1133.   int v1134; // [esp+3028h] [ebp-708h]
  1134.   float v1135; // [esp+302Ch] [ebp-704h]
  1135.   float v1136; // [esp+3030h] [ebp-700h]
  1136.   int v1137; // [esp+3034h] [ebp-6FCh]
  1137.   float v1138; // [esp+3038h] [ebp-6F8h]
  1138.   float v1139; // [esp+303Ch] [ebp-6F4h]
  1139.   int v1140; // [esp+3040h] [ebp-6F0h]
  1140.   int v1141; // [esp+3044h] [ebp-6ECh]
  1141.   int v1142; // [esp+3048h] [ebp-6E8h]
  1142.   int v1143; // [esp+304Ch] [ebp-6E4h]
  1143.   int v1144; // [esp+3058h] [ebp-6D8h]
  1144.   float v1145; // [esp+3064h] [ebp-6CCh]
  1145.   float v1146; // [esp+3068h] [ebp-6C8h]
  1146.   float v1147; // [esp+306Ch] [ebp-6C4h]
  1147.   float v1148; // [esp+3070h] [ebp-6C0h]
  1148.   float v1149; // [esp+3074h] [ebp-6BCh]
  1149.   int v1150; // [esp+307Ch] [ebp-6B4h]
  1150.   int v1151; // [esp+3080h] [ebp-6B0h]
  1151.   int v1152; // [esp+3084h] [ebp-6ACh]
  1152.   int v1153; // [esp+3088h] [ebp-6A8h]
  1153.   int v1154; // [esp+308Ch] [ebp-6A4h]
  1154.   int v1155; // [esp+30A4h] [ebp-68Ch]
  1155.   int v1156; // [esp+30A8h] [ebp-688h]
  1156.   int v1157; // [esp+30ACh] [ebp-684h]
  1157.   int v1158; // [esp+30B0h] [ebp-680h]
  1158.   int (__thiscall *v1159)(void *); // [esp+30B4h] [ebp-67Ch]
  1159.   int v1160; // [esp+30B8h] [ebp-678h]
  1160.   int (__thiscall *v1161)(void *); // [esp+30BCh] [ebp-674h]
  1161.   int v1162; // [esp+30C0h] [ebp-670h]
  1162.   int v1163; // [esp+30C4h] [ebp-66Ch]
  1163.   int v1164; // [esp+30D0h] [ebp-660h]
  1164.   int v1165; // [esp+30DCh] [ebp-654h]
  1165.   int v1166; // [esp+30E0h] [ebp-650h]
  1166.   int v1167; // [esp+30E4h] [ebp-64Ch]
  1167.   int v1168; // [esp+30E8h] [ebp-648h]
  1168.   int v1169; // [esp+30F4h] [ebp-63Ch]
  1169.   int v1170; // [esp+3100h] [ebp-630h]
  1170.   int v1171; // [esp+310Ch] [ebp-624h]
  1171.   int v1172; // [esp+3124h] [ebp-60Ch]
  1172.   int v1173; // [esp+3128h] [ebp-608h]
  1173.   int v1174; // [esp+312Ch] [ebp-604h]
  1174.   int v1175; // [esp+3130h] [ebp-600h]
  1175.   int v1176; // [esp+3134h] [ebp-5FCh]
  1176.   int v1177; // [esp+3138h] [ebp-5F8h]
  1177.   int v1178; // [esp+313Ch] [ebp-5F4h]
  1178.   int v1179; // [esp+3140h] [ebp-5F0h]
  1179.   int v1180; // [esp+3144h] [ebp-5ECh]
  1180.   int v1181; // [esp+3148h] [ebp-5E8h]
  1181.   int v1182; // [esp+314Ch] [ebp-5E4h]
  1182.   int v1183; // [esp+3150h] [ebp-5E0h]
  1183.   int v1184; // [esp+3154h] [ebp-5DCh]
  1184.   int v1185; // [esp+3158h] [ebp-5D8h]
  1185.   int v1186; // [esp+315Ch] [ebp-5D4h]
  1186.   int v1187; // [esp+3160h] [ebp-5D0h]
  1187.   int v1188; // [esp+3164h] [ebp-5CCh]
  1188.   int v1189; // [esp+3168h] [ebp-5C8h]
  1189.   float v1190; // [esp+316Ch] [ebp-5C4h]
  1190.   float v1191; // [esp+3170h] [ebp-5C0h]
  1191.   float v1192; // [esp+3174h] [ebp-5BCh]
  1192.   int v1193; // [esp+3178h] [ebp-5B8h]
  1193.   float v1194; // [esp+317Ch] [ebp-5B4h]
  1194.   float v1195; // [esp+3180h] [ebp-5B0h]
  1195.   float v1196; // [esp+3184h] [ebp-5ACh]
  1196.   int v1197; // [esp+3188h] [ebp-5A8h]
  1197.   int v1198; // [esp+318Ch] [ebp-5A4h]
  1198.   int v1199; // [esp+3190h] [ebp-5A0h]
  1199.   int v1200; // [esp+3194h] [ebp-59Ch]
  1200.   float v1201; // [esp+3198h] [ebp-598h]
  1201.   float v1202; // [esp+319Ch] [ebp-594h]
  1202.   float v1203; // [esp+31A0h] [ebp-590h]
  1203.   int v1204; // [esp+31A4h] [ebp-58Ch]
  1204.   int v1205; // [esp+31A8h] [ebp-588h]
  1205.   int v1206; // [esp+31ACh] [ebp-584h]
  1206.   float v1207; // [esp+31B0h] [ebp-580h]
  1207.   float v1208; // [esp+31B4h] [ebp-57Ch]
  1208.   float v1209; // [esp+31B8h] [ebp-578h]
  1209.   int v1210; // [esp+31BCh] [ebp-574h]
  1210.   int v1211; // [esp+31C0h] [ebp-570h]
  1211.   int v1212; // [esp+31C4h] [ebp-56Ch]
  1212.   int v1213; // [esp+31C8h] [ebp-568h]
  1213.   int v1214; // [esp+31CCh] [ebp-564h]
  1214.   int v1215; // [esp+31D0h] [ebp-560h]
  1215.   int v1216; // [esp+31D4h] [ebp-55Ch]
  1216.   int v1217; // [esp+31D8h] [ebp-558h]
  1217.   int v1218; // [esp+31DCh] [ebp-554h]
  1218.   int v1219; // [esp+31E0h] [ebp-550h]
  1219.   int v1220; // [esp+31E4h] [ebp-54Ch]
  1220.   int v1221; // [esp+31E8h] [ebp-548h]
  1221.   float v1222; // [esp+31ECh] [ebp-544h]
  1222.   float v1223; // [esp+31F0h] [ebp-540h]
  1223.   float v1224; // [esp+31F4h] [ebp-53Ch]
  1224.   float v1225; // [esp+31F8h] [ebp-538h]
  1225.   int v1226; // [esp+31FCh] [ebp-534h]
  1226.   int v1227; // [esp+3208h] [ebp-528h]
  1227.   int v1228; // [esp+320Ch] [ebp-524h]
  1228.   float v1229; // [esp+3210h] [ebp-520h]
  1229.   struct FOutputDevice *v1230; // [esp+3214h] [ebp-51Ch]
  1230.   int v1231; // [esp+3218h] [ebp-518h]
  1231.   int v1232; // [esp+321Ch] [ebp-514h]
  1232.   float v1233; // [esp+3220h] [ebp-510h]
  1233.   struct FOutputDevice *v1234; // [esp+3224h] [ebp-50Ch]
  1234.   int v1235; // [esp+3228h] [ebp-508h]
  1235.   int v1236; // [esp+322Ch] [ebp-504h]
  1236.   int v1237; // [esp+3230h] [ebp-500h]
  1237.   int v1238; // [esp+3238h] [ebp-4F8h]
  1238.   int v1239; // [esp+3240h] [ebp-4F0h]
  1239.   int v1240; // [esp+3244h] [ebp-4ECh]
  1240.   int v1241; // [esp+3248h] [ebp-4E8h]
  1241.   int v1242; // [esp+324Ch] [ebp-4E4h]
  1242.   int v1243; // [esp+3254h] [ebp-4DCh]
  1243.   int v1244; // [esp+3258h] [ebp-4D8h]
  1244.   int v1245; // [esp+3260h] [ebp-4D0h]
  1245.   int v1246; // [esp+3264h] [ebp-4CCh]
  1246.   int v1247; // [esp+3268h] [ebp-4C8h]
  1247.   int v1248; // [esp+326Ch] [ebp-4C4h]
  1248.   int v1249; // [esp+3274h] [ebp-4BCh]
  1249.   int v1250; // [esp+3278h] [ebp-4B8h]
  1250.   int v1251; // [esp+327Ch] [ebp-4B4h]
  1251.   int v1252; // [esp+3280h] [ebp-4B0h]
  1252.   int v1253; // [esp+3284h] [ebp-4ACh]
  1253.   int v1254; // [esp+3288h] [ebp-4A8h]
  1254.   int v1255; // [esp+328Ch] [ebp-4A4h]
  1255.   int v1256; // [esp+3290h] [ebp-4A0h]
  1256.   struct FOutputDevice *v1257; // [esp+3294h] [ebp-49Ch]
  1257.   float v1258; // [esp+3298h] [ebp-498h]
  1258.   float v1259; // [esp+329Ch] [ebp-494h]
  1259.   int v1260; // [esp+32A0h] [ebp-490h]
  1260.   struct FOutputDevice *v1261; // [esp+32A4h] [ebp-48Ch]
  1261.   float v1262; // [esp+32A8h] [ebp-488h]
  1262.   float v1263; // [esp+32ACh] [ebp-484h]
  1263.   unsigned int v1264; // [esp+32B0h] [ebp-480h]
  1264.   int v1265; // [esp+32B4h] [ebp-47Ch]
  1265.   int v1266; // [esp+32C0h] [ebp-470h]
  1266.   struct FOutputDevice *v1267; // [esp+32C4h] [ebp-46Ch]
  1267.   float v1268; // [esp+32C8h] [ebp-468h]
  1268.   float v1269; // [esp+32CCh] [ebp-464h]
  1269.   int v1270; // [esp+32D0h] [ebp-460h]
  1270.   struct FOutputDevice *v1271; // [esp+32D4h] [ebp-45Ch]
  1271.   float v1272; // [esp+32D8h] [ebp-458h]
  1272.   float v1273; // [esp+32DCh] [ebp-454h]
  1273.   int *v1274; // [esp+32E0h] [ebp-450h]
  1274.   float v1275; // [esp+32E4h] [ebp-44Ch]
  1275.   float v1276; // [esp+32E8h] [ebp-448h]
  1276.   float v1277; // [esp+32ECh] [ebp-444h]
  1277.   int v1278; // [esp+32F0h] [ebp-440h]
  1278.   float v1279; // [esp+32F4h] [ebp-43Ch]
  1279.   float v1280; // [esp+32F8h] [ebp-438h]
  1280.   float v1281; // [esp+32FCh] [ebp-434h]
  1281.   int v1282; // [esp+3300h] [ebp-430h]
  1282.   float v1283; // [esp+3304h] [ebp-42Ch]
  1283.   float v1284; // [esp+3308h] [ebp-428h]
  1284.   float v1285; // [esp+330Ch] [ebp-424h]
  1285.   int v1286; // [esp+3310h] [ebp-420h]
  1286.   float v1287; // [esp+3314h] [ebp-41Ch]
  1287.   float v1288; // [esp+3318h] [ebp-418h]
  1288.   float v1289; // [esp+331Ch] [ebp-414h]
  1289.   int v1290; // [esp+3320h] [ebp-410h]
  1290.   int v1291; // [esp+3324h] [ebp-40Ch]
  1291.   float v1292; // [esp+3328h] [ebp-408h]
  1292.   int v1293; // [esp+332Ch] [ebp-404h]
  1293.   int v1294; // [esp+3330h] [ebp-400h]
  1294.   float v1295; // [esp+3338h] [ebp-3F8h]
  1295.   float v1296; // [esp+333Ch] [ebp-3F4h]
  1296.   int v1297; // [esp+3340h] [ebp-3F0h]
  1297.   struct FOutputDevice *v1298; // [esp+3344h] [ebp-3ECh]
  1298.   float v1299; // [esp+3348h] [ebp-3E8h]
  1299.   float v1300; // [esp+334Ch] [ebp-3E4h]
  1300.   int v1301; // [esp+3350h] [ebp-3E0h]
  1301.   float v1302; // [esp+3354h] [ebp-3DCh]
  1302.   float v1303; // [esp+3358h] [ebp-3D8h]
  1303.   float v1304; // [esp+335Ch] [ebp-3D4h]
  1304.   int v1305; // [esp+3360h] [ebp-3D0h]
  1305.   int v1306; // [esp+3364h] [ebp-3CCh]
  1306.   int v1307; // [esp+3368h] [ebp-3C8h]
  1307.   float v1308; // [esp+336Ch] [ebp-3C4h]
  1308.   float v1309; // [esp+3370h] [ebp-3C0h]
  1309.   struct FOutputDevice *v1310; // [esp+3374h] [ebp-3BCh]
  1310.   struct FOutputDevice *v1311; // [esp+3378h] [ebp-3B8h]
  1311.   ULevel *v1312; // [esp+337Ch] [ebp-3B4h]
  1312.   float v1313; // [esp+3380h] [ebp-3B0h]
  1313.   float v1314; // [esp+3384h] [ebp-3ACh]
  1314.   float v1315; // [esp+3388h] [ebp-3A8h]
  1315.   float v1316; // [esp+338Ch] [ebp-3A4h]
  1316.   UL2SkillEffect *v1317; // [esp+3390h] [ebp-3A0h]
  1317.   int v1318; // [esp+3394h] [ebp-39Ch]
  1318.   int v1319; // [esp+3398h] [ebp-398h]
  1319.   float v1320; // [esp+339Ch] [ebp-394h]
  1320.   int v1321; // [esp+33A0h] [ebp-390h]
  1321.   struct FOutputDevice *v1322; // [esp+33A4h] [ebp-38Ch]
  1322.   struct FOutputDevice *v1323; // [esp+33A8h] [ebp-388h]
  1323.   float v1324; // [esp+33ACh] [ebp-384h]
  1324.   int v1325; // [esp+33B0h] [ebp-380h]
  1325.   float v1326; // [esp+33B4h] [ebp-37Ch]
  1326.   float v1327; // [esp+33B8h] [ebp-378h]
  1327.   float v1328; // [esp+33BCh] [ebp-374h]
  1328.   int v1329; // [esp+33C0h] [ebp-370h]
  1329.   float v1330; // [esp+33C4h] [ebp-36Ch]
  1330.   float v1331; // [esp+33C8h] [ebp-368h]
  1331.   float v1332; // [esp+33CCh] [ebp-364h]
  1332.   int v1333; // [esp+33D0h] [ebp-360h]
  1333.   struct FOutputDevice *v1334; // [esp+33D4h] [ebp-35Ch]
  1334.   float v1335; // [esp+33D8h] [ebp-358h]
  1335.   float v1336; // [esp+33DCh] [ebp-354h]
  1336.   int v1337; // [esp+33E0h] [ebp-350h]
  1337.   float v1338; // [esp+33E4h] [ebp-34Ch]
  1338.   float v1339; // [esp+33E8h] [ebp-348h]
  1339.   float v1340; // [esp+33ECh] [ebp-344h]
  1340.   int v1341; // [esp+33F0h] [ebp-340h]
  1341.   struct FOutputDevice *v1342; // [esp+33F4h] [ebp-33Ch]
  1342.   float v1343; // [esp+33F8h] [ebp-338h]
  1343.   float v1344; // [esp+33FCh] [ebp-334h]
  1344.   int v1345; // [esp+3400h] [ebp-330h]
  1345.   float v1346; // [esp+3404h] [ebp-32Ch]
  1346.   float v1347; // [esp+3408h] [ebp-328h]
  1347.   float v1348; // [esp+340Ch] [ebp-324h]
  1348.   int v1349; // [esp+3410h] [ebp-320h]
  1349.   struct FOutputDevice *v1350; // [esp+3414h] [ebp-31Ch]
  1350.   float v1351; // [esp+3418h] [ebp-318h]
  1351.   float v1352; // [esp+341Ch] [ebp-314h]
  1352.   int v1353; // [esp+3420h] [ebp-310h]
  1353.   float v1354; // [esp+3424h] [ebp-30Ch]
  1354.   float v1355; // [esp+3428h] [ebp-308h]
  1355.   float v1356; // [esp+342Ch] [ebp-304h]
  1356.   int v1357; // [esp+3430h] [ebp-300h]
  1357.   float v1358; // [esp+3434h] [ebp-2FCh]
  1358.   float v1359; // [esp+3438h] [ebp-2F8h]
  1359.   float v1360; // [esp+343Ch] [ebp-2F4h]
  1360.   int v1361; // [esp+3440h] [ebp-2F0h]
  1361.   struct FOutputDevice *v1362; // [esp+3444h] [ebp-2ECh]
  1362.   float v1363; // [esp+3448h] [ebp-2E8h]
  1363.   float v1364; // [esp+344Ch] [ebp-2E4h]
  1364.   int v1365; // [esp+3450h] [ebp-2E0h]
  1365.   float v1366; // [esp+3454h] [ebp-2DCh]
  1366.   float v1367; // [esp+3458h] [ebp-2D8h]
  1367.   float v1368; // [esp+345Ch] [ebp-2D4h]
  1368.   int v1369; // [esp+3460h] [ebp-2D0h]
  1369.   int v1370; // [esp+3464h] [ebp-2CCh]
  1370.   float v1371; // [esp+3468h] [ebp-2C8h]
  1371.   int v1372; // [esp+346Ch] [ebp-2C4h]
  1372.   float v1373; // [esp+3470h] [ebp-2C0h]
  1373.   float v1374; // [esp+3474h] [ebp-2BCh]
  1374.   float v1375; // [esp+3478h] [ebp-2B8h]
  1375.   float v1376; // [esp+347Ch] [ebp-2B4h]
  1376.   float v1377; // [esp+3480h] [ebp-2B0h]
  1377.   float v1378; // [esp+3484h] [ebp-2ACh]
  1378.   const wchar_t *v1379; // [esp+3488h] [ebp-2A8h]
  1379.   int v1380; // [esp+348Ch] [ebp-2A4h]
  1380.   struct FOutputDevice *v1381; // [esp+3490h] [ebp-2A0h]
  1381.   float v1382; // [esp+3494h] [ebp-29Ch]
  1382.   float v1383; // [esp+3498h] [ebp-298h]
  1383.   float v1384; // [esp+349Ch] [ebp-294h]
  1384.   int v1385; // [esp+34A0h] [ebp-290h]
  1385.   int v1386; // [esp+34A4h] [ebp-28Ch]
  1386.   int v1387; // [esp+34A8h] [ebp-288h]
  1387.   int v1388; // [esp+34ACh] [ebp-284h]
  1388.   int v1389; // [esp+34B0h] [ebp-280h]
  1389.   int v1390; // [esp+34B4h] [ebp-27Ch]
  1390.   float v1391; // [esp+34B8h] [ebp-278h]
  1391.   float v1392; // [esp+34BCh] [ebp-274h]
  1392.   int v1393; // [esp+34C0h] [ebp-270h]
  1393.   int v1394; // [esp+34C4h] [ebp-26Ch]
  1394.   int v1395; // [esp+34C8h] [ebp-268h]
  1395.   float v1396; // [esp+34CCh] [ebp-264h]
  1396.   int v1397; // [esp+34D0h] [ebp-260h]
  1397.   float v1398; // [esp+34D4h] [ebp-25Ch]
  1398.   float v1399; // [esp+34D8h] [ebp-258h]
  1399.   float v1400; // [esp+34DCh] [ebp-254h]
  1400.   int v1401; // [esp+34E0h] [ebp-250h]
  1401.   float v1402; // [esp+34E4h] [ebp-24Ch]
  1402.   float v1403; // [esp+34E8h] [ebp-248h]
  1403.   int v1404; // [esp+34ECh] [ebp-244h]
  1404.   float v1405; // [esp+34F0h] [ebp-240h]
  1405.   float v1406; // [esp+34F4h] [ebp-23Ch]
  1406.   float v1407; // [esp+34F8h] [ebp-238h]
  1407.   float v1408; // [esp+34FCh] [ebp-234h]
  1408.   float v1409; // [esp+3500h] [ebp-230h]
  1409.   float v1410; // [esp+3504h] [ebp-22Ch]
  1410.   float v1411; // [esp+3508h] [ebp-228h]
  1411.   float v1412; // [esp+350Ch] [ebp-224h]
  1412.   struct FOutputDevice *v1413; // [esp+3510h] [ebp-220h]
  1413.   float v1414; // [esp+3514h] [ebp-21Ch]
  1414.   float v1415; // [esp+3518h] [ebp-218h]
  1415.   float v1416; // [esp+351Ch] [ebp-214h]
  1416.   int v1417; // [esp+3520h] [ebp-210h]
  1417.   int v1418; // [esp+3524h] [ebp-20Ch]
  1418.   int v1419; // [esp+3528h] [ebp-208h]
  1419.   float v1420; // [esp+352Ch] [ebp-204h]
  1420.   int v1421; // [esp+3530h] [ebp-200h]
  1421.   float v1422; // [esp+3534h] [ebp-1FCh]
  1422.   int v1423; // [esp+3538h] [ebp-1F8h]
  1423.   float v1424; // [esp+353Ch] [ebp-1F4h]
  1424.   int v1425; // [esp+3540h] [ebp-1F0h]
  1425.   int v1426; // [esp+3544h] [ebp-1ECh]
  1426.   int v1427; // [esp+3548h] [ebp-1E8h]
  1427.   int v1428; // [esp+354Ch] [ebp-1E4h]
  1428.   int v1429; // [esp+3550h] [ebp-1E0h]
  1429.   int v1430; // [esp+3554h] [ebp-1DCh]
  1430.   int v1431; // [esp+3558h] [ebp-1D8h]
  1431.   int v1432; // [esp+355Ch] [ebp-1D4h]
  1432.   int v1433; // [esp+3560h] [ebp-1D0h]
  1433.   char v1434[4]; // [esp+3564h] [ebp-1CCh]
  1434.   int v1435; // [esp+3568h] [ebp-1C8h]
  1435.   float v1436; // [esp+356Ch] [ebp-1C4h]
  1436.   int v1437; // [esp+3570h] [ebp-1C0h]
  1437.   int v1438; // [esp+3574h] [ebp-1BCh]
  1438.   int v1439; // [esp+3578h] [ebp-1B8h]
  1439.   float v1440; // [esp+357Ch] [ebp-1B4h]
  1440.   float v1441; // [esp+3580h] [ebp-1B0h]
  1441.   float v1442; // [esp+3584h] [ebp-1ACh]
  1442.   int v1443; // [esp+3588h] [ebp-1A8h]
  1443.   float v1444; // [esp+358Ch] [ebp-1A4h]
  1444.   int v1445; // [esp+3590h] [ebp-1A0h]
  1445.   int v1446; // [esp+3594h] [ebp-19Ch]
  1446.   int v1447; // [esp+3598h] [ebp-198h]
  1447.   float v1448; // [esp+359Ch] [ebp-194h]
  1448.   int v1449; // [esp+35A0h] [ebp-190h]
  1449.   int v1450; // [esp+35A4h] [ebp-18Ch]
  1450.   int v1451; // [esp+35A8h] [ebp-188h]
  1451.   float v1452; // [esp+35ACh] [ebp-184h]
  1452.   int v1453; // [esp+35B0h] [ebp-180h]
  1453.   int v1454; // [esp+35B4h] [ebp-17Ch]
  1454.   int v1455; // [esp+35B8h] [ebp-178h]
  1455.   int v1456; // [esp+35BCh] [ebp-174h]
  1456.   int v1457; // [esp+35C0h] [ebp-170h]
  1457.   int v1458; // [esp+35C4h] [ebp-16Ch]
  1458.   int v1459; // [esp+35C8h] [ebp-168h]
  1459.   int (__stdcall **v1460)(AActor *); // [esp+35CCh] [ebp-164h]
  1460.   int v1461; // [esp+35D0h] [ebp-160h]
  1461.   int v1462; // [esp+35D4h] [ebp-15Ch]
  1462.   int v1463; // [esp+35D8h] [ebp-158h]
  1463.   int v1464; // [esp+35DCh] [ebp-154h]
  1464.   int v1465; // [esp+35E0h] [ebp-150h]
  1465.   int v1466; // [esp+35E4h] [ebp-14Ch]
  1466.   int v1467; // [esp+35E8h] [ebp-148h]
  1467.   int v1468; // [esp+35ECh] [ebp-144h]
  1468.   float v1469; // [esp+35F0h] [ebp-140h]
  1469.   float v1470; // [esp+35F4h] [ebp-13Ch]
  1470.   float v1471; // [esp+35F8h] [ebp-138h]
  1471.   float v1472; // [esp+35FCh] [ebp-134h]
  1472.   float v1473; // [esp+3600h] [ebp-130h]
  1473.   float v1474; // [esp+3604h] [ebp-12Ch]
  1474.   int v1475; // [esp+3608h] [ebp-128h]
  1475.   float v1476; // [esp+360Ch] [ebp-124h]
  1476.   float v1477; // [esp+3610h] [ebp-120h]
  1477.   float v1478; // [esp+3614h] [ebp-11Ch]
  1478.   float v1479; // [esp+3618h] [ebp-118h]
  1479.   int v1480; // [esp+361Ch] [ebp-114h]
  1480.   int v1481; // [esp+3620h] [ebp-110h]
  1481.   int v1482; // [esp+3624h] [ebp-10Ch]
  1482.   int i2; // [esp+3630h] [ebp-100h]
  1483.   int v1484; // [esp+3634h] [ebp-FCh]
  1484.   int v1485; // [esp+3638h] [ebp-F8h]
  1485.   int v1486; // [esp+363Ch] [ebp-F4h]
  1486.   int v1487; // [esp+3640h] [ebp-F0h]
  1487.   int v1488; // [esp+3644h] [ebp-ECh]
  1488.   int v1489; // [esp+3648h] [ebp-E8h]
  1489.   int v1490; // [esp+364Ch] [ebp-E4h]
  1490.   int v1491; // [esp+3650h] [ebp-E0h]
  1491.   int v1492; // [esp+3654h] [ebp-DCh]
  1492.   int v1493; // [esp+3658h] [ebp-D8h]
  1493.   int v1494; // [esp+365Ch] [ebp-D4h]
  1494.   float v1495; // [esp+3660h] [ebp-D0h]
  1495.   int j; // [esp+3664h] [ebp-CCh]
  1496.   int v1497; // [esp+3668h] [ebp-C8h]
  1497.   struct FOutputDevice *v1498; // [esp+366Ch] [ebp-C4h]
  1498.   float v1499; // [esp+3670h] [ebp-C0h]
  1499.   float v1500; // [esp+3674h] [ebp-BCh]
  1500.   int v1501; // [esp+3678h] [ebp-B8h]
  1501.   int v1502; // [esp+367Ch] [ebp-B4h]
  1502.   int v1503; // [esp+3680h] [ebp-B0h]
  1503.   float v1504; // [esp+3684h] [ebp-ACh]
  1504.   char v1505[4]; // [esp+3688h] [ebp-A8h]
  1505.   int v1506; // [esp+368Ch] [ebp-A4h]
  1506.   int v1507; // [esp+3690h] [ebp-A0h]
  1507.   int v1508; // [esp+3694h] [ebp-9Ch]
  1508.   int v1509; // [esp+3698h] [ebp-98h]
  1509.   int v1510; // [esp+369Ch] [ebp-94h]
  1510.   int l; // [esp+36A0h] [ebp-90h]
  1511.   int v1512; // [esp+36A4h] [ebp-8Ch]
  1512.   int v1513; // [esp+36A8h] [ebp-88h]
  1513.   float v1514; // [esp+36ACh] [ebp-84h]
  1514.   int v1515; // [esp+36B0h] [ebp-80h]
  1515.   int v1516; // [esp+36B4h] [ebp-7Ch]
  1516.   float v1517; // [esp+36B8h] [ebp-78h]
  1517.   float v1518; // [esp+36BCh] [ebp-74h]
  1518.   float v1519; // [esp+36C0h] [ebp-70h]
  1519.   float v1520; // [esp+36C4h] [ebp-6Ch]
  1520.   float v1521; // [esp+36C8h] [ebp-68h]
  1521.   float v1522; // [esp+36CCh] [ebp-64h]
  1522.   float v1523; // [esp+36D0h] [ebp-60h]
  1523.   float v1524; // [esp+36D4h] [ebp-5Ch]
  1524.   float v1525; // [esp+36D8h] [ebp-58h]
  1525.   float v1526; // [esp+36DCh] [ebp-54h]
  1526.   int i3; // [esp+36E0h] [ebp-50h]
  1527.   int v1528; // [esp+36E4h] [ebp-4Ch]
  1528.   float v1529; // [esp+36E8h] [ebp-48h]
  1529.   int v1530; // [esp+36ECh] [ebp-44h]
  1530.   float v1531; // [esp+36F0h] [ebp-40h]
  1531.   int v1532; // [esp+36F4h] [ebp-3Ch]
  1532.   int v1533; // [esp+36F8h] [ebp-38h]
  1533.   int v1534; // [esp+36FCh] [ebp-34h]
  1534.   int v1535; // [esp+3700h] [ebp-30h]
  1535.   int v1536; // [esp+3704h] [ebp-2Ch]
  1536.   int v1537; // [esp+3708h] [ebp-28h]
  1537.   int v1538; // [esp+370Ch] [ebp-24h]
  1538.   float v1539; // [esp+3710h] [ebp-20h]
  1539.   int v1540; // [esp+3714h] [ebp-1Ch]
  1540.   int v1541; // [esp+3718h] [ebp-18h]
  1541.   int v1542; // [esp+371Ch] [ebp-14h]
  1542.   const wchar_t **v1543; // [esp+3720h] [ebp-10h]
  1543.   int v1544; // [esp+372Ch] [ebp-4h]
  1544.   int v1545; // [esp+3730h] [ebp+0h]
  1545.   int v1546; // [esp+3734h] [ebp+4h]
  1546.   int v1547; // [esp+3738h] [ebp+8h]
  1547.   int v1548; // [esp+373Ch] [ebp+Ch]
  1548.   int v1549; // [esp+3740h] [ebp+10h]
  1549.   int v1550; // [esp+3744h] [ebp+14h]
  1550.   int v1551; // [esp+3748h] [ebp+18h]
  1551.   float v1552; // [esp+374Ch] [ebp+1Ch]
  1552.   float v1553; // [esp+3750h] [ebp+20h]
  1553.   float v1554; // [esp+3754h] [ebp+24h]
  1554.   float v1555; // [esp+3758h] [ebp+28h]
  1555.   float v1556; // [esp+375Ch] [ebp+2Ch]
  1556.   int v1557; // [esp+3760h] [ebp+30h]
  1557.   int v1558; // [esp+3764h] [ebp+34h]
  1558.   int v1559; // [esp+3768h] [ebp+38h]
  1559.   unsigned __int8 v1560; // [esp+376Eh] [ebp+3Eh]
  1560.   unsigned __int8 v1561; // [esp+376Fh] [ebp+3Fh]
  1561.   unsigned __int8 v1562; // [esp+3770h] [ebp+40h]
  1562.   unsigned __int8 v1563; // [esp+3771h] [ebp+41h]
  1563.   unsigned __int8 v1564; // [esp+3772h] [ebp+42h]
  1564.   unsigned __int8 v1565; // [esp+3773h] [ebp+43h]
  1565.   unsigned __int8 v1566; // [esp+3774h] [ebp+44h]
  1566.   unsigned __int8 v1567; // [esp+3775h] [ebp+45h]
  1567.   unsigned __int8 v1568; // [esp+3776h] [ebp+46h]
  1568.   unsigned __int8 v1569; // [esp+3777h] [ebp+47h]
  1569.   float v1570; // [esp+3778h] [ebp+48h]
  1570.   int v1571; // [esp+377Ch] [ebp+4Ch]
  1571.   int v1572; // [esp+3780h] [ebp+50h]
  1572.   float v1573; // [esp+3784h] [ebp+54h]
  1573.   float v1574; // [esp+3788h] [ebp+58h]
  1574.   ULevel *v1575; // [esp+378Ch] [ebp+5Ch]
  1575.   float v1576; // [esp+3790h] [ebp+60h]
  1576.   float v1577; // [esp+3794h] [ebp+64h]
  1577.  
  1578.   v1543 = &v940;
  1579.   v4 = this;
  1580.   v1544 = 0;
  1581.   if ( ParseCommand(&a3, L"CAMERAYAW") && !*(_DWORD *)GIsEditor )
  1582.   {
  1583.     v5 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  1584.     if ( v5 && UClass::IsA(v5, ALineagePlayerController::PrivateStaticClass) )
  1585.     {
  1586.       v6 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  1587.       if ( !(*(_BYTE *)(v6 + 2656) & 2) || !*(_DWORD *)(v6 + 2968) )
  1588.       {
  1589.         *(float *)&v1490 = 1.0;
  1590.         Parse(a3, L"SPEED=", &v1490);
  1591.         v7 = *((_DWORD *)v4 + 932);
  1592.         if ( v7 != 4 )
  1593.         {
  1594.           if ( v7 == 2 )
  1595.           {
  1596.             a4 = *((struct FOutputDevice **)v4 + 933);
  1597.             *(float *)(v6 + 2700) = *(float *)&a4 * *(float *)&v1490 * *(float *)(v6 + 2972) + *(float *)(v6 + 2700);
  1598.           }
  1599.           return 1;
  1600.         }
  1601.         if ( *(_BYTE *)(v6 + 2652) & 0x20 )
  1602.         {
  1603.           a4 = *((struct FOutputDevice **)v4 + 933);
  1604.           v8 = *(float *)&a4 * 0.009999999776482582 * *(float *)&v1490 * *(float *)(v6 + 2972);
  1605.           v9 = (signed int)v8;
  1606.           a4 = (struct FOutputDevice *)(signed int)v8;
  1607.           *(float *)(v6 + 2700) = (double)(signed int)v8 + *(float *)(v6 + 2700);
  1608.           if ( *(_DWORD *)GIsL2NetLogin )
  1609.           {
  1610.             if ( v9 < 0 )
  1611.               v9 = -v9;
  1612.             if ( v9 > 100 )
  1613.             {
  1614.               LODWORD(v939[1]) = 2;
  1615. LABEL_303:
  1616.               v116 = *(void (__stdcall **)(_DWORD))(*(_DWORD *)dword_2077EE00 + 568);
  1617. LABEL_304:
  1618.               v116(LODWORD(v939[1]));
  1619.               return 1;
  1620.             }
  1621.           }
  1622.         }
  1623.       }
  1624.       return 1;
  1625.     }
  1626. LABEL_16:
  1627.     LODWORD(v939[1]) = a3;
  1628.     FOutputDevice::Logf(a4, L"%s Bad Axis command", a3);
  1629.     return 1;
  1630.   }
  1631.   if ( ParseCommand(&a3, L"CAMERAPITCH") && !*(_DWORD *)GIsEditor )
  1632.   {
  1633.     v10 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  1634.     if ( v10 && UClass::IsA(v10, ALineagePlayerController::PrivateStaticClass) )
  1635.     {
  1636.       v11 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  1637.       if ( (!(*(_BYTE *)(v11 + 2656) & 2) || !*(_DWORD *)(v11 + 2968)) && !(*(_DWORD *)(v11 + 2652) & 0x2000) )
  1638.       {
  1639.         *(float *)&v1491 = 1.0;
  1640.         Parse(a3, L"SPEED=", &v1491);
  1641.         v12 = *((_DWORD *)v4 + 932);
  1642.         if ( v12 == 4 )
  1643.         {
  1644.           if ( *(_BYTE *)(v11 + 2652) & 0x20 )
  1645.           {
  1646.             a4 = *((struct FOutputDevice **)v4 + 933);
  1647.             v13 = *(float *)&a4 * 0.009999999776482582 * *(float *)&v1491 * *(float *)(v11 + 2972);
  1648.             v14 = (signed int)v13;
  1649.             a4 = (struct FOutputDevice *)(signed int)v13;
  1650.             *(float *)(v11 + 2704) = (double)(signed int)v13 + *(float *)(v11 + 2704);
  1651.             if ( *(_DWORD *)GIsL2NetLogin )
  1652.             {
  1653.               if ( v14 < 0 )
  1654.                 v14 = -v14;
  1655.               if ( v14 > 100 )
  1656.                 (*(void (__stdcall **)(signed int))(*(_DWORD *)dword_2077EE00 + 568))(2);
  1657.             }
  1658.           }
  1659.         }
  1660.         else if ( v12 == 2 )
  1661.         {
  1662.           a4 = *((struct FOutputDevice **)v4 + 933);
  1663.           *(float *)(v11 + 2704) = *(float *)&a4 * *(float *)&v1491 * *(float *)(v11 + 2972) + *(float *)(v11 + 2704);
  1664.         }
  1665.         if ( *(float *)(v11 + 2704) >= -15000.0 )
  1666.         {
  1667.           if ( *(float *)(v11 + 2704) > 15000.0 )
  1668.             *(float *)(v11 + 2704) = 15000.0;
  1669.         }
  1670.         else
  1671.         {
  1672.           *(float *)(v11 + 2704) = -15000.0;
  1673.         }
  1674.       }
  1675.       return 1;
  1676.     }
  1677.     goto LABEL_16;
  1678.   }
  1679.   if ( ParseCommand(&a3, L"PLAYERPAWNMOVETO") && !*(_DWORD *)GIsEditor )
  1680.   {
  1681.     if ( *((_DWORD *)v4 + 932) != 1 )
  1682.       return 1;
  1683.     if ( (*(int (**)(void))(**((_DWORD **)v4 + 926) + 196))() )
  1684.       return 1;
  1685.     v15 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  1686.     if ( !*(_DWORD *)(v15 + 956)
  1687.       || *(_DWORD *)(v15 + 976) & 0x80000
  1688.       || !UClass::IsA(v15, ALineagePlayerController::PrivateStaticClass) )
  1689.     {
  1690.       return 1;
  1691.     }
  1692.     if ( APawn::PrimeActionIs(*(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956), 6) )
  1693.     {
  1694.       v16 = (signed int)*((float *)dword_2077EE00 + 144);
  1695.       a4 = (struct FOutputDevice *)(signed int)*((float *)dword_2077EE00 + 145);
  1696.       LODWORD(v1577) = (signed int)*((float *)dword_2077EE00 + 146);
  1697.       L2ParamStack::L2ParamStack(&v1154, 10);
  1698.       LOBYTE(v1544) = 1;
  1699.       L2ParamStack::PushBack(&v1154, v16, v16 >> 31);
  1700.       L2ParamStack::PushBack(&v1154, a4, (signed int)a4 >> 31);
  1701.       L2ParamStack::PushBack(&v1154, LODWORD(v1577), SLODWORD(v1577) >> 31);
  1702.       *(_QWORD *)v939 = *(signed int *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1636);
  1703.       L2ParamStack::PushBack(&v1154, LODWORD(v939[0]), LODWORD(v939[1]));
  1704.       v17 = (*(int (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 1540))();
  1705.       L2ParamStack::PushBack(&v1154, v17, v17 >> 31);
  1706.       v18 = (*(int (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 1544))();
  1707.       L2ParamStack::PushBack(&v1154, v18, v18 >> 31);
  1708.       (*(void (__stdcall **)(int *))(**((_DWORD **)dword_2077EE00 + 26) + 636))(&v1154);
  1709.       LOBYTE(v1544) = 0;
  1710.       L2ParamStack::~L2ParamStack(&v1154);
  1711.       return 1;
  1712.     }
  1713.     v19 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  1714.     if ( *(_DWORD *)GIsL2Mark != 1 )
  1715.     {
  1716.       v21 = dword_2077EE00;
  1717.       if ( *(_DWORD *)GIsL2Mark == 2 && *((_DWORD *)dword_2077EE00 + 154) )
  1718.       {
  1719.         FLandMark::AddLandMark(
  1720.           *((_DWORD **)dword_2077EE00 + 198),
  1721.           *((float *)dword_2077EE00 + 144),
  1722.           *((float *)dword_2077EE00 + 145),
  1723.           *((float *)dword_2077EE00 + 146),
  1724.           *((_DWORD *)dword_2077EE00 + 150),
  1725.           *((float *)dword_2077EE00 + 151),
  1726.           *((float *)dword_2077EE00 + 152),
  1727.           0.0);
  1728.         v21 = dword_2077EE00;
  1729.       }
  1730.       goto LABEL_65;
  1731.     }
  1732.     v20 = *(_DWORD *)(*(_DWORD *)(v19 + 956) + 8028);
  1733.     if ( v20 )
  1734.     {
  1735.       if ( FVector::operator!=(v20 + 1356, (char *)dword_2077EE00 + 576) )
  1736.       {
  1737.         v21 = dword_2077EE00;
  1738.         if ( !*((_DWORD *)dword_2077EE00 + 154) )
  1739.           goto LABEL_65;
  1740.         if ( APawn::PrimeActionIs(*(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956), 0) )
  1741.         {
  1742.           v21 = dword_2077EE00;
  1743.           v26 = sub_200E0B60(*((_DWORD *)dword_2077EE00 + 154));
  1744.           v987 = 0.0;
  1745.           *(float *)&a4 = *((float *)dword_2077EE00 + 151) * 0.0
  1746.                         + 0.0 * *((float *)dword_2077EE00 + 150)
  1747.                         + *((float *)dword_2077EE00 + 152);
  1748.           if ( v26 || *(float *)&a4 > 0.5 && *(float *)&a4 <= 1.0 )
  1749.           {
  1750.             *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 8028) + 1380) |= 1u;
  1751.           }
  1752.           else
  1753.           {
  1754.             v27 = *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 8028);
  1755.             *(_DWORD *)(v27 + 1380) &= 0xFFFFFFFE;
  1756.             (*(void (__stdcall **)(signed int))(**(_DWORD **)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956)
  1757.                                                             + 8028)
  1758.                                               + 864))(1);
  1759.             v21 = dword_2077EE00;
  1760.           }
  1761.           goto LABEL_65;
  1762.         }
  1763.       }
  1764.     }
  1765.     else
  1766.     {
  1767.       v21 = dword_2077EE00;
  1768.       if ( !*((_DWORD *)dword_2077EE00 + 154) )
  1769.         goto LABEL_65;
  1770.       v22 = sub_200E0B60(*((_DWORD *)dword_2077EE00 + 154));
  1771.       v973 = 0.0;
  1772.       *(float *)&a4 = *((float *)dword_2077EE00 + 151) * 0.0
  1773.                     + 0.0 * *((float *)dword_2077EE00 + 150)
  1774.                     + *((float *)dword_2077EE00 + 152);
  1775.       if ( !v22 && (*(float *)&a4 <= 0.5 || *(float *)&a4 > 1.0) )
  1776.         goto LABEL_65;
  1777.       *(float *)&a4 = COERCE_FLOAT(
  1778.                         UObject::StaticLoadClass(
  1779.                           AMarkProjector::PrivateStaticClass,
  1780.                           0,
  1781.                           L"Engine.MarkProjector",
  1782.                           0,
  1783.                           1,
  1784.                           0));
  1785.       v1571 = *(int *)(*((_DWORD *)v4 + 926) + 60);
  1786.       v23 = (int (__thiscall **)(_DWORD, struct FOutputDevice *))(**(_DWORD **)(v1571 + 216) + 184);
  1787.       v24 = FRotator::FRotator(&v974, 0, 0, 0);
  1788.       v939[1] = 0.0;
  1789.       v939[0] = *(float *)(v1571 + 956);
  1790.       v938 = 0.0;
  1791.       LODWORD(v937) = 1;
  1792.       v936 = 0.0;
  1793.       v933 = *(float *)v24;
  1794.       v934 = *(float *)(v24 + 4);
  1795.       v935 = *(float *)(v24 + 8);
  1796.       v930 = *((float *)dword_2077EE00 + 144);
  1797.       v931 = *((float *)dword_2077EE00 + 145);
  1798.       v932 = *((float *)dword_2077EE00 + 146);
  1799.       v929 = COERCE_FLOAT(&v930);
  1800.       v1573 = COERCE_FLOAT(&v929);
  1801.       FName::FName(&v929, 0);
  1802.       LODWORD(v939[1]) = a4;
  1803.       *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 8028) = (*v23)(
  1804.                                                                                          *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216),
  1805.                                                                                          a4);
  1806.       v25 = *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 8028);
  1807.       *(_DWORD *)(v25 + 1380) |= 1u;
  1808.     }
  1809.     v21 = dword_2077EE00;
  1810. LABEL_65:
  1811.     if ( *(_DWORD *)GIsL2NetLogin )
  1812.     {
  1813.       if ( !*((_DWORD *)v21 + 27) )
  1814.       {
  1815.         if ( (*(int (__thiscall **)(UGameEngine *))(*(_DWORD *)v21 + 224))(v21)
  1816.           && !(*(_DWORD *)(v19 + 2652) & 0xC000)
  1817.           && !(*(_DWORD *)(v19 + 976) & 0x80000)
  1818.           && *(_DWORD *)(v19 + 956) )
  1819.         {
  1820.           if ( ALineagePlayerController::IsCamCutSceneMode((ALineagePlayerController *)v19) )
  1821.           {
  1822.             v28 = dword_2077EE00;
  1823.             if ( *((_DWORD *)dword_2077EE00 + 198) )
  1824.             {
  1825.               FLandMark::DeleteLandMark(*((FLandMark **)dword_2077EE00 + 198), 0);
  1826.               v28 = dword_2077EE00;
  1827.             }
  1828.             if ( *((_DWORD *)v28 + 28) )
  1829.             {
  1830.               v29 = *((_DWORD *)v28 + 28);
  1831.               LODWORD(v939[1]) = L"NpcZoomCameraState";
  1832.               v30 = (*(int (__thiscall **)(int))(*(_DWORD *)v29 + 2460))(v29);
  1833.               if ( FString::operator==(v30, LODWORD(v939[1])) )
  1834.               {
  1835.                 if ( !(*(int (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 2880))() )
  1836.                 {
  1837.                   (*(void (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 2884))();
  1838.                   (*(void (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 2060))();
  1839.                   UGameEngine::SwitchCameraMode(dword_2077EE00, 0);
  1840.                 }
  1841.               }
  1842.             }
  1843.             return 1;
  1844.           }
  1845.           v31 = *(_DWORD *)(v19 + 956);
  1846.           if ( !(*(_BYTE *)(v31 + 1840) & 1) && *(_DWORD *)(v19 + 2652) & 0x50000 )
  1847.           {
  1848.             v32 = dword_2077EE00;
  1849.             if ( dword_2077EE00 )
  1850.             {
  1851.               if ( *((_DWORD *)dword_2077EE00 + 154) )
  1852.               {
  1853.                 v33 = (*(int (__thiscall **)(_DWORD))(**((_DWORD **)dword_2077EE00 + 28) + 1540))(*((_DWORD *)dword_2077EE00
  1854.                                                                                                   + 28));
  1855.                 v34 = **((_DWORD **)dword_2077EE00 + 26);
  1856.                 if ( v33 )
  1857.                   v35 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(v34 + 212);
  1858.                 else
  1859.                   v35 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(v34 + 232);
  1860.                 LODWORD(v939[1]) = (*(int (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 1544))();
  1861.                 (*v35)(
  1862.                   *((_DWORD *)dword_2077EE00 + 26),
  1863.                   *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 154) + 88),
  1864.                   *(_DWORD *)(*(_DWORD *)(v19 + 956) + 436),
  1865.                   *(_DWORD *)(*(_DWORD *)(v19 + 956) + 440),
  1866.                   *(_DWORD *)(*(_DWORD *)(v19 + 956) + 444),
  1867.                   LODWORD(v939[1]));
  1868.                 v32 = dword_2077EE00;
  1869.                 *((_DWORD *)dword_2077EE00 + 27) = 1;
  1870.               }
  1871.               if ( *((_DWORD *)v32 + 198) )
  1872.                 FLandMark::DeleteLandMark(*((FLandMark **)v32 + 198), 0);
  1873.             }
  1874.             return 1;
  1875.           }
  1876.           if ( *(_BYTE *)(v19 + 2656) & 2 )
  1877.           {
  1878.             v36 = (float *)dword_2077EE00;
  1879.             if ( *((_DWORD *)dword_2077EE00 + 154) )
  1880.             {
  1881.               v37 = *((_DWORD *)dword_2077EE00 + 154);
  1882.               if ( *(_DWORD *)(v37 + 88) != -1 )
  1883.               {
  1884.                 if ( UClass::IsA(v37, APawn::PrivateStaticClass) )
  1885.                 {
  1886.                   LODWORD(v939[1]) = AVehicle::PrivateStaticClass;
  1887.                   if ( !UClass::IsA(*((_DWORD *)dword_2077EE00 + 154), AVehicle::PrivateStaticClass) )
  1888.                   {
  1889.                     v38 = dword_2077EE00;
  1890.                     if ( *((_DWORD *)dword_2077EE00 + 28) )
  1891.                     {
  1892.                       v39 = *((_DWORD *)dword_2077EE00 + 28);
  1893.                       LODWORD(v939[1]) = L"OlympiadObserverState";
  1894.                       v40 = (*(int (__thiscall **)(int))(*(_DWORD *)v39 + 2460))(v39);
  1895.                       if ( FString::operator==(v40, LODWORD(v939[1])) )
  1896.                         return 1;
  1897.                       v38 = dword_2077EE00;
  1898.                     }
  1899.                     *(_DWORD *)(v19 + 2968) = *((_DWORD *)v38 + 154);
  1900.                     return 1;
  1901.                   }
  1902.                 }
  1903.                 v36 = (float *)dword_2077EE00;
  1904.               }
  1905.             }
  1906.             if ( 0.0 != v36[144] || 0.0 != v36[145] || 0.0 != v36[146] )
  1907.             {
  1908.               v1366 = 0.0;
  1909.               v1367 = 0.0;
  1910.               v1368 = 0.0;
  1911.               v938 = 0.0;
  1912.               v939[0] = 0.0;
  1913.               v939[1] = 0.0;
  1914.               v937 = 0.0;
  1915.               v936 = 1.0;
  1916.               v935 = 0.0;
  1917.               AController::MoveTo(
  1918.                 (float *)v19,
  1919.                 v36[144],
  1920.                 v36[145],
  1921.                 v36[146],
  1922.                 0,
  1923.                 1.0,
  1924.                 0,
  1925.                 COERCE_INT(0.0),
  1926.                 COERCE_INT(0.0),
  1927.                 COERCE_INT(0.0));
  1928.             }
  1929.             return 1;
  1930.           }
  1931.           v41 = dword_2077EE00;
  1932.           v42 = *((_DWORD *)dword_2077EE00 + 154);
  1933.           a4 = (struct FOutputDevice *)(*(_DWORD *)(v31 + 64) == v42);
  1934.           if ( v42 )
  1935.           {
  1936.             v41 = dword_2077EE00;
  1937.             if ( UClass::IsA(v42, AVehiclePart::PrivateStaticClass) )
  1938.             {
  1939.               v43 = *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 154) + 64);
  1940.               if ( v43 )
  1941.               {
  1942.                 v41 = dword_2077EE00;
  1943.                 if ( UClass::IsA(v43, AVehicle::PrivateStaticClass) )
  1944.                   *((_DWORD *)dword_2077EE00 + 154) = *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 154) + 64);
  1945.               }
  1946.             }
  1947.           }
  1948.           v1510 = 0;
  1949.           if ( *((_DWORD *)v41 + 154) )
  1950.           {
  1951.             LODWORD(v939[1]) = AVehicle::PrivateStaticClass;
  1952.             if ( UClass::IsA(*((_DWORD *)v41 + 154), AVehicle::PrivateStaticClass)
  1953.               && ((v44 = (unsigned __int8 *)sub_200966D0(*((_DWORD *)dword_2077EE00 + 154)), AVehicle::GetType(v44) != 2)
  1954.                || *(_DWORD *)(*(_DWORD *)(v19 + 956) + 100) && *(float *)&a4 != 0.0) )
  1955.             {
  1956.               v1510 = 1;
  1957.               *(float *)&v1131 = 0.0;
  1958.               v1132 = 0.0;
  1959.               v1133 = 1.0;
  1960.               v45 = *((_DWORD *)dword_2077EE00 + 154);
  1961.               LODWORD(v939[1]) = &v1131;
  1962.               LODWORD(v939[0]) = *(_DWORD *)(v45 + 452) & 0xFFFF;
  1963.               v46 = (float *)FVector::RotateAngleAxis((char *)dword_2077EE00 + 588, &v977, LODWORD(v939[0]), &v1131);
  1964.               *(float *)&a4 = *(float *)(v45 + 436) + *v46;
  1965.               v1577 = v46[1] + *(float *)(v45 + 440);
  1966.               v1574 = v46[2] + *(float *)(v45 + 444);
  1967.               v1362 = a4;
  1968.               v1363 = v1577;
  1969.               v1364 = v1574;
  1970.               v41 = dword_2077EE00;
  1971.               *((float *)dword_2077EE00 + 144) = *(float *)&a4;
  1972.               *((float *)dword_2077EE00 + 145) = v1363;
  1973.               *((float *)dword_2077EE00 + 146) = v1364;
  1974.             }
  1975.             else
  1976.             {
  1977.               v41 = dword_2077EE00;
  1978.             }
  1979.           }
  1980.           v1577 = COERCE_FLOAT(sub_200D0BC0(*((_DWORD *)v41 + 154)));
  1981.           *(float *)&a4 = COERCE_FLOAT(sub_200D24D0(*((_DWORD *)v41 + 154)));
  1982.           v47 = *((_DWORD *)v41 + 154);
  1983.           if ( v47 )
  1984.           {
  1985.             if ( *(_DWORD *)(v47 + 88) != -1
  1986.               && *(_DWORD *)(v47 + 172) > 0
  1987.               && (v1577 == 0.0 || *(_BYTE *)(LODWORD(v1577) + 1012) & 1)
  1988.               && (*(float *)&a4 == 0.0 || *((_BYTE *)a4 + 1572) & 1) )
  1989.             {
  1990.               v48 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(**((_DWORD **)v41 + 26) + 232);
  1991.               LODWORD(v939[1]) = (*(int (**)(void))(**((_DWORD **)v41 + 28) + 1544))();
  1992.               (*v48)(
  1993.                 *((_DWORD *)dword_2077EE00 + 26),
  1994.                 *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 154) + 88),
  1995.                 *(_DWORD *)(*(_DWORD *)(v19 + 956) + 436),
  1996.                 *(_DWORD *)(*(_DWORD *)(v19 + 956) + 440),
  1997.                 *(_DWORD *)(*(_DWORD *)(v19 + 956) + 444),
  1998.                 LODWORD(v939[1]));
  1999.               v21 = dword_2077EE00;
  2000.               *((_DWORD *)dword_2077EE00 + 27) = 1;
  2001.               goto LABEL_205;
  2002.             }
  2003.             if ( v47 && *(_DWORD *)(v47 + 88) != -1 )
  2004.             {
  2005.               if ( UClass::IsA(v47, APawn::PrivateStaticClass) && !v1510
  2006.                 || *(float *)&a4 != 0.0 && *((_BYTE *)a4 + 1572) & 1
  2007.                 || (LODWORD(v939[1]) = AL2Pickup::PrivateStaticClass,
  2008.                     UClass::IsA(*((_DWORD *)dword_2077EE00 + 154), AL2Pickup::PrivateStaticClass)) )
  2009.               {
  2010.                 if ( !(*(int (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 1540))() )
  2011.                 {
  2012.                   v50 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(**((_DWORD **)dword_2077EE00
  2013.                                                                                                 + 26)
  2014.                                                                                              + 232);
  2015.                   LODWORD(v939[1]) = (*(int (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 1544))();
  2016.                   (*v50)(
  2017.                     *((_DWORD *)dword_2077EE00 + 26),
  2018.                     *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 154) + 88),
  2019.                     *(_DWORD *)(*(_DWORD *)(v19 + 956) + 436),
  2020.                     *(_DWORD *)(*(_DWORD *)(v19 + 956) + 440),
  2021.                     *(_DWORD *)(*(_DWORD *)(v19 + 956) + 444),
  2022.                     LODWORD(v939[1]));
  2023.                   v21 = dword_2077EE00;
  2024.                   *((_DWORD *)dword_2077EE00 + 27) = 1;
  2025.                   if ( *((_DWORD *)dword_2077EE00 + 198) )
  2026.                   {
  2027.                     FLandMark::DeleteLandMark(*((FLandMark **)dword_2077EE00 + 198), 0);
  2028.                     v21 = dword_2077EE00;
  2029.                   }
  2030.                   goto LABEL_205;
  2031.                 }
  2032.                 if ( *(_BYTE *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 1089) == 1 )
  2033.                 {
  2034.                   v49 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(**((_DWORD **)dword_2077EE00
  2035.                                                                                                 + 26)
  2036.                                                                                              + 212);
  2037.                   LODWORD(v939[1]) = (*(int (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 1544))();
  2038.                   (*v49)(
  2039.                     *((_DWORD *)dword_2077EE00 + 26),
  2040.                     *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 154) + 88),
  2041.                     *(_DWORD *)(*(_DWORD *)(v19 + 956) + 436),
  2042.                     *(_DWORD *)(*(_DWORD *)(v19 + 956) + 440),
  2043.                     *(_DWORD *)(*(_DWORD *)(v19 + 956) + 444),
  2044.                     LODWORD(v939[1]));
  2045.                   v21 = dword_2077EE00;
  2046.                   *((_DWORD *)dword_2077EE00 + 27) = 1;
  2047.                   if ( *((_DWORD *)dword_2077EE00 + 198) )
  2048.                   {
  2049.                     FLandMark::DeleteLandMark(*((FLandMark **)dword_2077EE00 + 198), 0);
  2050.                     v21 = dword_2077EE00;
  2051.                   }
  2052.                   goto LABEL_205;
  2053.                 }
  2054.                 goto LABEL_200;
  2055.               }
  2056.               v41 = dword_2077EE00;
  2057.             }
  2058.           }
  2059.           if ( *(_BYTE *)(*(_DWORD *)(v19 + 956) + 1840) & 1 && *(_DWORD *)(v19 + 2652) & 0x50000 )
  2060.             return 1;
  2061.           if ( !(*(int (**)(void))(**((_DWORD **)v41 + 28) + 1544))()
  2062.             && *(_BYTE *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 1089) == 1 )
  2063.           {
  2064.             *(_DWORD *)(v19 + 2652) &= 0xFFFDFFFF;
  2065.             v51 = *(int *)(v19 + 956);
  2066.             v52 = **((_DWORD **)dword_2077EE00 + 26);
  2067.             v939[1] = 0.0;
  2068.             v939[0] = 0.0;
  2069.             v938 = 0.0;
  2070.             v937 = *((float *)dword_2077EE00 + 154);
  2071.             v934 = *(float *)(v51 + 436);
  2072.             v935 = *(float *)(v51 + 440);
  2073.             v936 = *(float *)(v51 + 444);
  2074.             v931 = *((float *)dword_2077EE00 + 144);
  2075.             v932 = *((float *)dword_2077EE00 + 145);
  2076.             v933 = *((float *)dword_2077EE00 + 146);
  2077.             v930 = *(float *)&v51;
  2078.             (*(void (__stdcall **)(int, float, _DWORD, _DWORD, float, float, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(v52 + 208))(
  2079.               v51,
  2080.               COERCE_FLOAT(LODWORD(v931)),
  2081.               LODWORD(v932),
  2082.               LODWORD(v933),
  2083.               COERCE_FLOAT(LODWORD(v934)),
  2084.               COERCE_FLOAT(LODWORD(v935)),
  2085.               LODWORD(v936),
  2086.               LODWORD(v937),
  2087.               0,
  2088.               0,
  2089.               0);
  2090.             v53 = *(_DWORD *)dword_2077EE00;
  2091.             LODWORD(v939[1]) = 1;
  2092.             (*(void (__stdcall **)(signed int))(v53 + 568))(1);
  2093.             v21 = dword_2077EE00;
  2094.             *((_DWORD *)dword_2077EE00 + 27) = 1;
  2095.             if ( *((_DWORD *)dword_2077EE00 + 198) )
  2096.             {
  2097.               FLandMark::DeleteLandMark(*((FLandMark **)dword_2077EE00 + 198), 0);
  2098.               v21 = dword_2077EE00;
  2099.             }
  2100.             goto LABEL_205;
  2101.           }
  2102. LABEL_200:
  2103.           v21 = dword_2077EE00;
  2104.           goto LABEL_205;
  2105.         }
  2106.         v21 = dword_2077EE00;
  2107.       }
  2108.       (*(void (__thiscall **)(UGameEngine *))(*(_DWORD *)v21 + 216))(v21);
  2109.       return 1;
  2110.     }
  2111.     if ( *((_DWORD *)v21 + 154) )
  2112.     {
  2113.       LODWORD(v939[1]) = AVehicle::PrivateStaticClass;
  2114.       if ( UClass::IsA(*((_DWORD *)v21 + 154), AVehicle::PrivateStaticClass) )
  2115.       {
  2116.         if ( (v54 = *(_DWORD *)(v19 + 956), *(_DWORD *)(v54 + 100))
  2117.           && *(_DWORD *)(v54 + 64) == *((_DWORD *)dword_2077EE00 + 154)
  2118.           || (v55 = (unsigned __int8 *)sub_200966D0(*((_DWORD *)dword_2077EE00 + 154)), AVehicle::GetType(v55) != 2) )
  2119.         {
  2120.           v1358 = 0.0;
  2121.           v1359 = 0.0;
  2122.           v1360 = 0.0;
  2123.           v938 = 0.0;
  2124.           v939[0] = 0.0;
  2125.           v939[1] = 0.0;
  2126.           v937 = 0.0;
  2127.           v936 = 1.0;
  2128.           v935 = 0.0;
  2129.           AController::MoveTo(
  2130.             (float *)v19,
  2131.             *((float *)dword_2077EE00 + 144),
  2132.             *((float *)dword_2077EE00 + 145),
  2133.             *((float *)dword_2077EE00 + 146),
  2134.             0,
  2135.             1.0,
  2136.             0,
  2137.             COERCE_INT(0.0),
  2138.             COERCE_INT(0.0),
  2139.             COERCE_INT(0.0));
  2140.           v21 = dword_2077EE00;
  2141.           goto LABEL_205;
  2142.         }
  2143.       }
  2144.       v21 = dword_2077EE00;
  2145.       if ( *((_DWORD *)dword_2077EE00 + 154) )
  2146.       {
  2147.         LODWORD(v939[1]) = APawn::PrivateStaticClass;
  2148.         v21 = dword_2077EE00;
  2149.         if ( UClass::IsA(*((_DWORD *)dword_2077EE00 + 154), APawn::PrivateStaticClass) )
  2150.         {
  2151.           v56 = (_DWORD *)((char *)dword_2077EE00 + 616);
  2152.           if ( (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19) == *((_DWORD *)dword_2077EE00 + 154) )
  2153.           {
  2154.             *(float *)&a4 = sub_2009BB90((float *)dword_2077EE00 + 144, (float *)(*(_DWORD *)(v19 + 956) + 436));
  2155.             v57 = *(_DWORD *)(v19 + 956);
  2156.             v58 = *(float *)(*((_DWORD *)dword_2077EE00 + 154) + 748) + *(float *)(v57 + 748);
  2157.             *(float *)&a4 = *(float *)&a4 - (v58 + 5.0);
  2158.             v59 = *(_BYTE *)(v57 + 1825);
  2159.             if ( v59 != 5 && v59 != 8 )
  2160.             {
  2161.               if ( v59 != 6 )
  2162.               {
  2163.                 if ( *(float *)&a4 >= 30.0 )
  2164.                 {
  2165.                   *(float *)&a4 = v58 + 30.0;
  2166.                   *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1752) = *(float *)&a4;
  2167.                   v939[1] = 1.0;
  2168.                   LODWORD(v939[0]) = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2169.                   v69 = (struct AActor *)(*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2170.                   AController::MoveToward(
  2171.                     *(AController **)(*((_DWORD *)v4 + 926) + 60),
  2172.                     v69,
  2173.                     (struct AActor *)LODWORD(v939[0]),
  2174.                     v939[1]);
  2175.                   v21 = dword_2077EE00;
  2176.                   goto LABEL_205;
  2177.                 }
  2178.                 if ( APawn::PrimeActionIs((_DWORD *)v57, 0) )
  2179.                 {
  2180.                   (*(void (__thiscall **)(int))(*(_DWORD *)v19 + 860))(v19);
  2181.                   v64 = (_DWORD *)((*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19) + 436);
  2182.                   *(_DWORD *)(v19 + 1024) = *v64;
  2183.                   *(_DWORD *)(v19 + 1028) = v64[1];
  2184.                   *(_DWORD *)(v19 + 1032) = v64[2];
  2185.                   *(_BYTE *)(*(_DWORD *)(v19 + 956) + 924) = 1;
  2186.                   v65 = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2187.                   APawn::SetPrimeActionID(*(_DWORD **)(v19 + 956), (*(_BYTE *)(v65 + 7236) & 0x40) == 0);
  2188.                   *(_DWORD *)(*(_DWORD *)(v19 + 956) + 1624) = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2189.                   sub_200913C0(0, *(_DWORD *)(v19 + 956) + 1640);
  2190.                   *(_DWORD *)(*(_DWORD *)(v19 + 956) + 1628) = 0;
  2191.                   *(_DWORD *)(*(_DWORD *)(v19 + 956) + 1632) = 0;
  2192.                   if ( *(_BYTE *)(*(_DWORD *)(v19 + 956) + 1825) == 3 )
  2193.                   {
  2194.                     v66 = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2195.                     v1072 = v66;
  2196.                     v67 = *(_DWORD *)(v19 + 956);
  2197.                     sub_200D2370();
  2198.                     v68 = *(_DWORD **)(*(_DWORD *)(v19 + 956) + 1640);
  2199.                     *v68 = v1069;
  2200.                     v68[1] = v1070;
  2201.                     v68[2] = v1071;
  2202.                     v68[3] = v66;
  2203.                     v21 = dword_2077EE00;
  2204.                     goto LABEL_205;
  2205.                   }
  2206.                 }
  2207.                 goto LABEL_200;
  2208.               }
  2209.               if ( !APawn::PrimeActionIs((_DWORD *)v57, 0) )
  2210.                 goto LABEL_200;
  2211.               (*(void (__thiscall **)(int))(*(_DWORD *)v19 + 860))(v19);
  2212.               v60 = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2213.               goto LABEL_159;
  2214.             }
  2215.             goto LABEL_167;
  2216.           }
  2217.           goto LABEL_172;
  2218.         }
  2219.         if ( *((_DWORD *)dword_2077EE00 + 154) )
  2220.         {
  2221.           LODWORD(v939[1]) = AL2Pickup::PrivateStaticClass;
  2222.           if ( UClass::IsA(*((_DWORD *)dword_2077EE00 + 154), AL2Pickup::PrivateStaticClass) )
  2223.           {
  2224.             *(float *)&a4 = sub_2009BB90((float *)dword_2077EE00 + 144, (float *)(*(_DWORD *)(v19 + 956) + 436));
  2225.             v72 = *(float **)(v19 + 956);
  2226.             v73 = (float *)*((_DWORD *)dword_2077EE00 + 154);
  2227.             *(float *)&a4 = *(float *)&a4 - (v72[187] + v73[187] + 5.0);
  2228.             v1577 = v72[109] - v73[109];
  2229.             v1574 = v72[110] - v73[110];
  2230.             *(float *)&v1575 = v72[111] - v73[111];
  2231.             *(float *)&v1127 = v1577;
  2232.             v1128 = v1574;
  2233.             v1129 = v1575;
  2234.             LODWORD(v939[1]) = &v985;
  2235.             v74 = FVector::Rotation(&v1127, &v969);
  2236.             v75 = (float *)FRotator::Vector(v74, LODWORD(v939[1]));
  2237.             v76 = sub_20005D30((float *)&v983, v75, *(float *)&a4);
  2238.             v77 = (float *)(*(_DWORD *)(v19 + 956) + 436);
  2239.             *(float *)&a4 = *v77 - *v76;
  2240.             v1577 = v77[1] - v76[1];
  2241.             v1574 = v77[2] - v76[2];
  2242.             v1350 = a4;
  2243.             v1351 = v1577;
  2244.             v1352 = v1574;
  2245.             v1354 = 0.0;
  2246.             v1355 = 0.0;
  2247.             v1356 = 0.0;
  2248.             v938 = 0.0;
  2249.             v939[0] = 0.0;
  2250.             v939[1] = 0.0;
  2251.             v937 = 0.0;
  2252.             v936 = 1.0;
  2253.             v935 = 0.0;
  2254.             v932 = *(float *)&a4;
  2255.             v78 = v1577;
  2256.             v79 = v1574;
  2257. LABEL_199:
  2258.             v933 = v78;
  2259.             v934 = v79;
  2260.             AController::MoveTo(
  2261.               *(float **)(*((_DWORD *)v4 + 926) + 60),
  2262.               v932,
  2263.               v78,
  2264.               v79,
  2265.               SLODWORD(v935),
  2266.               v936,
  2267.               SLODWORD(v937),
  2268.               SLODWORD(v938),
  2269.               SLODWORD(v939[0]),
  2270.               SLODWORD(v939[1]));
  2271.             goto LABEL_200;
  2272.           }
  2273.           v21 = dword_2077EE00;
  2274.           if ( *((_DWORD *)dword_2077EE00 + 154) )
  2275.           {
  2276.             LODWORD(v939[1]) = AMover::PrivateStaticClass;
  2277.             if ( UClass::IsA(*((_DWORD *)dword_2077EE00 + 154), AMover::PrivateStaticClass) )
  2278.             {
  2279.               *(float *)&a4 = sub_2009BB90((float *)dword_2077EE00 + 144, (float *)(*(_DWORD *)(v19 + 956) + 436));
  2280.               v80 = *(float **)(v19 + 956);
  2281.               v1571 = *((int *)dword_2077EE00 + 154);
  2282.               *(float *)&a4 = *(float *)&a4 - (v80[187] + *(float *)(v1571 + 748) + 5.0);
  2283.               LODWORD(v939[1]) = 17;
  2284.               if ( !UInput::KeyDown(*(UInput **)(*((_DWORD *)v4 + 926) + 120), 17) )
  2285.               {
  2286.                 if ( *(float *)&a4 >= 5.0 )
  2287.                 {
  2288.                   v1577 = v80[109] - *((float *)dword_2077EE00 + 144);
  2289.                   v1574 = v80[110] - *((float *)dword_2077EE00 + 145);
  2290.                   *(float *)&v1575 = v80[111] - *((float *)dword_2077EE00 + 146);
  2291.                   *(float *)&v1123 = v1577;
  2292.                   v1124 = v1574;
  2293.                   v1125 = v1575;
  2294.                   LODWORD(v939[1]) = &v1012;
  2295.                   v89 = FVector::Rotation(&v1123, &v1011);
  2296.                   v90 = (float *)FRotator::Vector(v89, LODWORD(v939[1]));
  2297.                   v91 = sub_20005D30((float *)&v1009, v90, *(float *)&a4);
  2298.                   v92 = (float *)(*(_DWORD *)(v19 + 956) + 436);
  2299.                   *(float *)&a4 = *v92 - *v91;
  2300.                   v1577 = v92[1] - v91[1];
  2301.                   v1574 = v92[2] - v91[2];
  2302.                   v1342 = a4;
  2303.                   v1343 = v1577;
  2304.                   v1344 = v1574;
  2305.                   v1346 = 0.0;
  2306.                   v1347 = 0.0;
  2307.                   v1348 = 0.0;
  2308.                   v938 = 0.0;
  2309.                   v939[0] = 0.0;
  2310.                   v939[1] = 0.0;
  2311.                   v937 = 0.0;
  2312.                   v936 = 1.0;
  2313.                   v935 = 0.0;
  2314.                   v932 = *(float *)&a4;
  2315.                   v933 = v1577;
  2316.                   v934 = v1574;
  2317.                   AController::MoveTo(
  2318.                     *(float **)(*((_DWORD *)v4 + 926) + 60),
  2319.                     *(float *)&a4,
  2320.                     v1577,
  2321.                     v1574,
  2322.                     0,
  2323.                     1.0,
  2324.                     0,
  2325.                     COERCE_INT(0.0),
  2326.                     COERCE_INT(0.0),
  2327.                     COERCE_INT(0.0));
  2328.                   v21 = dword_2077EE00;
  2329.                 }
  2330.                 else
  2331.                 {
  2332.                   v88 = (AActor *)sub_200D24D0(v1571);
  2333.                   v939[1] = 0.0;
  2334.                   v939[0] = 0.0;
  2335.                   if ( *((_BYTE *)v88 + 956) & 2 )
  2336.                   {
  2337.                     AActor::eventUnTrigger(v88, (struct AActor *)LODWORD(v939[0]), (struct APawn *)LODWORD(v939[1]));
  2338.                     *((_DWORD *)v88 + 239) &= 0xFFFFFFFD;
  2339.                   }
  2340.                   else
  2341.                   {
  2342.                     AActor::eventTrigger(v88, (struct AActor *)LODWORD(v939[0]), (struct APawn *)LODWORD(v939[1]));
  2343.                     *((_DWORD *)v88 + 239) |= 2u;
  2344.                   }
  2345.                   v21 = dword_2077EE00;
  2346.                 }
  2347. LABEL_205:
  2348.                 if ( *(_DWORD *)GIsL2Mark == 2 && *((_DWORD *)v21 + 154) )
  2349.                   FLandMark::AddLandMark(
  2350.                     *((_DWORD **)v21 + 198),
  2351.                     *((float *)v21 + 144),
  2352.                     *((float *)v21 + 145),
  2353.                     *((float *)v21 + 146),
  2354.                     *((_DWORD *)v21 + 150),
  2355.                     *((float *)v21 + 151),
  2356.                     *((float *)v21 + 152),
  2357.                     0.0);
  2358.                 return 1;
  2359.               }
  2360.               v56 = (_DWORD *)((char *)dword_2077EE00 + 616);
  2361.               if ( (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19) == *((_DWORD *)dword_2077EE00 + 154) )
  2362.               {
  2363.                 v57 = *(_DWORD *)(v19 + 956);
  2364.                 v81 = *(_BYTE *)(v57 + 1825);
  2365.                 if ( v81 != 5 && v81 != 8 )
  2366.                 {
  2367.                   if ( v81 != 6 )
  2368.                   {
  2369.                     if ( *(float *)&a4 >= 30.0 )
  2370.                     {
  2371.                       *(float *)&a4 = *(float *)(v57 + 748) + *(float *)(*v56 + 748) + 30.0;
  2372.                       *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1752) = *(float *)&a4;
  2373.                       v939[1] = 1.0;
  2374.                       LODWORD(v939[0]) = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2375.                       v87 = (struct AActor *)(*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2376.                       AController::MoveToward(
  2377.                         *(AController **)(*((_DWORD *)v4 + 926) + 60),
  2378.                         v87,
  2379.                         (struct AActor *)LODWORD(v939[0]),
  2380.                         v939[1]);
  2381.                       v21 = dword_2077EE00;
  2382.                       goto LABEL_205;
  2383.                     }
  2384.                     if ( APawn::PrimeActionIs((_DWORD *)v57, 0) )
  2385.                     {
  2386.                       (*(void (__thiscall **)(int))(*(_DWORD *)v19 + 860))(v19);
  2387.                       v82 = (_DWORD *)((*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19) + 436);
  2388.                       *(_DWORD *)(v19 + 1024) = *v82;
  2389.                       *(_DWORD *)(v19 + 1028) = v82[1];
  2390.                       *(_DWORD *)(v19 + 1032) = v82[2];
  2391.                       *(_BYTE *)(*(_DWORD *)(v19 + 956) + 924) = 1;
  2392.                       v83 = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2393.                       APawn::SetPrimeActionID(*(_DWORD **)(v19 + 956), (*(_BYTE *)(v83 + 7236) & 0x40) == 0);
  2394.                       *(_DWORD *)(*(_DWORD *)(v19 + 956) + 1624) = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2395.                       sub_200913C0(0, *(_DWORD *)(v19 + 956) + 1640);
  2396.                       *(_DWORD *)(*(_DWORD *)(v19 + 956) + 1628) = 0;
  2397.                       *(_DWORD *)(*(_DWORD *)(v19 + 956) + 1632) = 0;
  2398.                       if ( *(_BYTE *)(*(_DWORD *)(v19 + 956) + 1825) == 3 )
  2399.                       {
  2400.                         v84 = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2401.                         v1067 = v84;
  2402.                         v85 = *(_DWORD *)(v19 + 956);
  2403.                         sub_200D2370();
  2404.                         v86 = *(_DWORD **)(*(_DWORD *)(v19 + 956) + 1640);
  2405.                         *v86 = v1064;
  2406.                         v86[1] = v1065;
  2407.                         v86[2] = v1066;
  2408.                         v86[3] = v84;
  2409.                         v21 = dword_2077EE00;
  2410.                         goto LABEL_205;
  2411.                       }
  2412.                     }
  2413.                     goto LABEL_200;
  2414.                   }
  2415.                   if ( !APawn::PrimeActionIs((_DWORD *)v57, 0) )
  2416.                     goto LABEL_200;
  2417.                   (*(void (__thiscall **)(int))(*(_DWORD *)v19 + 860))(v19);
  2418.                   v60 = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2419. LABEL_159:
  2420.                   v61 = (_DWORD *)(v60 + 436);
  2421.                   *(_DWORD *)(v19 + 1024) = *v61;
  2422.                   *(_DWORD *)(v19 + 1028) = v61[1];
  2423.                   *(_DWORD *)(v19 + 1032) = v61[2];
  2424.                   *(_BYTE *)(*(_DWORD *)(v19 + 956) + 924) = 1;
  2425.                   v62 = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2426.                   v63 = *(_DWORD **)(v19 + 956);
  2427.                   if ( *(_BYTE *)(v62 + 7236) & 0x40 )
  2428.                     v939[1] = 0.0;
  2429.                   else
  2430.                     LODWORD(v939[1]) = 7;
  2431.                   goto LABEL_171;
  2432.                 }
  2433. LABEL_167:
  2434.                 if ( !APawn::PrimeActionIs((_DWORD *)v57, 0) )
  2435.                   goto LABEL_200;
  2436.                 (*(void (__thiscall **)(int))(*(_DWORD *)v19 + 860))(v19);
  2437.                 v70 = (_DWORD *)((*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19) + 436);
  2438.                 *(_DWORD *)(v19 + 1024) = *v70;
  2439.                 *(_DWORD *)(v19 + 1028) = v70[1];
  2440.                 *(_DWORD *)(v19 + 1032) = v70[2];
  2441.                 *(_BYTE *)(*(_DWORD *)(v19 + 956) + 924) = 1;
  2442.                 v71 = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2443.                 v63 = *(_DWORD **)(v19 + 956);
  2444.                 if ( *(_BYTE *)(v71 + 7236) & 0x40 )
  2445.                   v939[1] = 0.0;
  2446.                 else
  2447.                   LODWORD(v939[1]) = 2;
  2448. LABEL_171:
  2449.                 APawn::SetPrimeActionID(v63, SLODWORD(v939[1]));
  2450.                 *(_DWORD *)(*(_DWORD *)(v19 + 956) + 1624) = (*(int (__thiscall **)(int))(*(_DWORD *)v19 + 920))(v19);
  2451.                 sub_200913C0(0, *(_DWORD *)(v19 + 956) + 1640);
  2452.                 *(_DWORD *)(*(_DWORD *)(v19 + 956) + 1628) = 0;
  2453.                 *(_DWORD *)(*(_DWORD *)(v19 + 956) + 1632) = 0;
  2454.                 v21 = dword_2077EE00;
  2455.                 goto LABEL_205;
  2456.               }
  2457. LABEL_172:
  2458.               (*(void (__thiscall **)(int, _DWORD))(*(_DWORD *)v19 + 924))(v19, *v56);
  2459.               v21 = dword_2077EE00;
  2460.               goto LABEL_205;
  2461.             }
  2462.             v21 = dword_2077EE00;
  2463.             if ( *((_DWORD *)dword_2077EE00 + 154) )
  2464.             {
  2465.               if ( *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 154) + 172) > 0 )
  2466.               {
  2467.                 (*(void (__thiscall **)(int, _DWORD))(*(_DWORD *)v19 + 924))(v19, *((_DWORD *)dword_2077EE00 + 154));
  2468.                 *(float *)&a4 = sub_2009BB90((float *)dword_2077EE00 + 144, (float *)(*(_DWORD *)(v19 + 956) + 436));
  2469.                 v93 = (float *)(*(_DWORD *)(v19 + 956) + 436);
  2470.                 v1577 = *v93 - *((float *)dword_2077EE00 + 144);
  2471.                 v1574 = v93[1] - *((float *)dword_2077EE00 + 145);
  2472.                 *(float *)&v1575 = v93[2] - *((float *)dword_2077EE00 + 146);
  2473.                 *(float *)&v1111 = v1577;
  2474.                 v1112 = v1574;
  2475.                 v1113 = v1575;
  2476.                 LODWORD(v939[1]) = &v1007;
  2477.                 v94 = FVector::Rotation(&v1111, &v1005);
  2478.                 v95 = (float *)FRotator::Vector(v94, LODWORD(v939[1]));
  2479.                 v96 = sub_20005D30((float *)&v1003, v95, *(float *)&a4);
  2480.                 v97 = (float *)(*(_DWORD *)(v19 + 956) + 436);
  2481.                 *(float *)&a4 = *v97 - *v96;
  2482.                 v1577 = v97[1] - v96[1];
  2483.                 v1574 = v97[2] - v96[2];
  2484.                 v1334 = a4;
  2485.                 v1335 = v1577;
  2486.                 v1336 = v1574;
  2487.                 v1338 = 0.0;
  2488.                 v1339 = 0.0;
  2489.                 v1340 = 0.0;
  2490.                 v938 = 0.0;
  2491.                 v939[0] = 0.0;
  2492.                 v939[1] = 0.0;
  2493.                 v937 = 0.0;
  2494.                 v936 = 1.0;
  2495.                 v935 = 0.0;
  2496.                 v932 = *(float *)&a4;
  2497.                 v78 = v1577;
  2498.                 v79 = v1574;
  2499.                 goto LABEL_199;
  2500.               }
  2501.             }
  2502.           }
  2503.         }
  2504.       }
  2505.     }
  2506.     if ( 0.0 != *((float *)v21 + 144) || 0.0 != *((float *)v21 + 145) || 0.0 != *((float *)v21 + 146) )
  2507.     {
  2508.       v1330 = 0.0;
  2509.       v1331 = 0.0;
  2510.       v1332 = 0.0;
  2511.       v938 = 0.0;
  2512.       v939[0] = 0.0;
  2513.       v939[1] = 0.0;
  2514.       v937 = 0.0;
  2515.       v936 = 1.0;
  2516.       v935 = 0.0;
  2517.       AController::MoveTo(
  2518.         (float *)v19,
  2519.         *((float *)v21 + 144),
  2520.         *((float *)v21 + 145),
  2521.         *((float *)v21 + 146),
  2522.         0,
  2523.         1.0,
  2524.         0,
  2525.         COERCE_INT(0.0),
  2526.         COERCE_INT(0.0),
  2527.         COERCE_INT(0.0));
  2528.       v21 = dword_2077EE00;
  2529.     }
  2530.     goto LABEL_205;
  2531.   }
  2532.   if ( ParseCommand(&a3, L"CameraRotationOn") && !*(_DWORD *)GIsEditor )
  2533.   {
  2534.     v98 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2535.     if ( v98 )
  2536.     {
  2537.       if ( UClass::IsA(v98, ALineagePlayerController::PrivateStaticClass) )
  2538.       {
  2539.         if ( (*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))() )
  2540.         {
  2541.           v99 = *(ALineagePlayerController **)(*((_DWORD *)v4 + 926) + 60);
  2542.           if ( v99 )
  2543.           {
  2544.             v100 = *((_DWORD *)v99 + 663);
  2545.             if ( !(v100 & 0xC100) && !(v100 & 0x10) && !ALineagePlayerController::IsCamCutSceneMode(v99) )
  2546.               *((_DWORD *)v99 + 663) |= 0x20u;
  2547.           }
  2548.         }
  2549.       }
  2550.     }
  2551.     return 1;
  2552.   }
  2553.   if ( ParseCommand(&a3, L"UseAutoTrackingPawnOff") && !*(_DWORD *)GIsEditor )
  2554.   {
  2555.     v101 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2556.     if ( v101 && UClass::IsA(v101, ALineagePlayerController::PrivateStaticClass) )
  2557.       *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 2652) &= 0xFFFFFFFE;
  2558.     return 1;
  2559.   }
  2560.   if ( ParseCommand(&a3, L"STOPMOUSE") && !*(_DWORD *)GIsEditor )
  2561.   {
  2562.     LODWORD(v939[1]) = 1;
  2563.     LODWORD(v939[0]) = 1;
  2564.     LODWORD(v938) = 1;
  2565. LABEL_226:
  2566.     (*(void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD))(**((_DWORD **)v4 + 926) + 164))(
  2567.       *((_DWORD *)v4 + 926),
  2568.       LODWORD(v938),
  2569.       LODWORD(v939[0]),
  2570.       LODWORD(v939[1]));
  2571.     return 1;
  2572.   }
  2573.   if ( ParseCommand(&a3, L"CameraRotationOff") && !*(_DWORD *)GIsEditor )
  2574.   {
  2575.     if ( *((_DWORD *)v4 + 932) == 3 )
  2576.     {
  2577.       if ( ParseCommand(&a3, L"OnRelease") )
  2578.       {
  2579.         v102 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2580.         if ( v102 )
  2581.         {
  2582.           if ( UClass::IsA(v102, ALineagePlayerController::PrivateStaticClass) )
  2583.             *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 2652) &= 0xFFFFFFDF;
  2584.         }
  2585.       }
  2586.     }
  2587.     return 1;
  2588.   }
  2589.   if ( ParseCommand(&a3, L"UseAutoTrackingPawnOn") && !*(_DWORD *)GIsEditor )
  2590.   {
  2591.     if ( *((_DWORD *)v4 + 932) == 3 )
  2592.     {
  2593.       if ( ParseCommand(&a3, L"OnRelease") )
  2594.       {
  2595.         v103 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2596.         if ( v103 )
  2597.         {
  2598.           if ( UClass::IsA(v103, ALineagePlayerController::PrivateStaticClass) )
  2599.             *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 2652) |= 1u;
  2600.         }
  2601.       }
  2602.     }
  2603.     return 1;
  2604.   }
  2605.   if ( ParseCommand(&a3, L"MOVEMOUSE") && !*(_DWORD *)GIsEditor )
  2606.   {
  2607.     if ( *((_DWORD *)v4 + 932) != 3 || !ParseCommand(&a3, L"OnRelease") )
  2608.       return 1;
  2609.     v939[1] = 0.0;
  2610.     v939[0] = 0.0;
  2611.     v938 = 0.0;
  2612.     goto LABEL_226;
  2613.   }
  2614.   if ( ParseCommand(&a3, L"FIXEDDEFAULTCAMERA") && !*(_DWORD *)GIsEditor )
  2615.   {
  2616.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  2617.     v104 = *((_DWORD *)v4 + 932);
  2618.     if ( v105 )
  2619.       v105 = v104 == 1;
  2620.     else
  2621.       v105 = v104 == 3;
  2622.     if ( !v105 && v104 )
  2623.       return 1;
  2624.     v106 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2625.     if ( !v106 || !*(_DWORD *)(v106 + 956) || !UClass::IsA(v106, ALineagePlayerController::PrivateStaticClass) )
  2626.       goto LABEL_16;
  2627.     if ( !(*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))() )
  2628.       return 1;
  2629.     v107 = *((_DWORD *)v4 + 926);
  2630.     v108 = *(_DWORD *)(v107 + 60);
  2631.     if ( *(_DWORD *)(v108 + 2652) & 0xC000
  2632.       || ALineagePlayerController::IsCamCutSceneMode(*(ALineagePlayerController **)(v107 + 60))
  2633.       || *(_BYTE *)(v108 + 2656) & 2 )
  2634.     {
  2635.       return 1;
  2636.     }
  2637.     v1325 = 1;
  2638.     if ( *((_DWORD *)v4 + 932) == 3 )
  2639.     {
  2640.       if ( Parse(a3, L"MAXPRESSEDTIME=", &v1245) )
  2641.       {
  2642.         a4 = *((struct FOutputDevice **)v4 + 933);
  2643.         if ( *(float *)&a4 > (double)*(float *)&v1245 || *(_DWORD *)GIsFixedDefaultCamera )
  2644.         {
  2645.           v1325 = 0;
  2646.           return 1;
  2647.         }
  2648.       }
  2649.     }
  2650.     v109 = *(_DWORD *)(v108 + 2724);
  2651.     v1419 = *(_DWORD *)(v108 + 2724);
  2652.     if ( ParseCommand(&a3, L"UP") )
  2653.     {
  2654.       --v109;
  2655.     }
  2656.     else
  2657.     {
  2658.       if ( !ParseCommand(&a3, L"DOWN") )
  2659.       {
  2660. LABEL_270:
  2661.         ALineagePlayerController::SetFixedDefaultCameraNo((ALineagePlayerController *)v108, v109, 1);
  2662.         dword_20786F10 = 0;
  2663.         return 1;
  2664.       }
  2665.       ++v109;
  2666.     }
  2667.     v1419 = v109;
  2668.     goto LABEL_270;
  2669.   }
  2670.   if ( ParseCommand(&a3, L"ZOOMINPRESS") && !*(_DWORD *)GIsEditor )
  2671.   {
  2672.     if ( *((_DWORD *)v4 + 932) != 1 )
  2673.       return 1;
  2674.     v110 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2675.     if ( !v110
  2676.       || !UClass::IsA(v110, ALineagePlayerController::PrivateStaticClass)
  2677.       || !*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) )
  2678.     {
  2679.       goto LABEL_16;
  2680.     }
  2681.     if ( !(*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))() )
  2682.       return 1;
  2683.     v111 = *((_DWORD *)v4 + 926);
  2684.     v112 = *(_DWORD *)(v111 + 60);
  2685.     if ( *(_DWORD *)(v112 + 2652) & 0xC000 )
  2686.       return 1;
  2687.     if ( ALineagePlayerController::IsCamCutSceneMode(*(ALineagePlayerController **)(v111 + 60)) )
  2688.       return 1;
  2689.     v113 = *(_DWORD *)(v112 + 2652);
  2690.     if ( v113 & 0x1000 )
  2691.       return 1;
  2692.     v114 = v113 & 0xFFFFF7FF;
  2693.     *(_DWORD *)(v112 + 2652) = v114;
  2694.     *(_DWORD *)(v112 + 2652) = v114 | 0x40;
  2695.     *(float *)&v1559 = 1.0;
  2696.     Parse(a3, L"SPEED=", &v1559);
  2697.     if ( *(_DWORD *)(v112 + 956)
  2698.       && *(float *)(*(_DWORD *)(v112 + 956) + 752) + *(float *)(*(_DWORD *)(v112 + 956) + 752) + *(float *)(v112 + 2880) > *(float *)(v112 + 2712) )
  2699.     {
  2700.       *(float *)&v1559 = *(float *)&v1559 * 0.125;
  2701.     }
  2702.     if ( *(_DWORD *)GIsL2NetLogin )
  2703.       goto LABEL_2395;
  2704.     v115 = (UInput *)((char *)v4 - 52);
  2705.     if ( UInput::KeyDown(v115, 16) )
  2706.       *(float *)&v1559 = *(float *)&v1559 * 0.25;
  2707.     if ( *(_DWORD *)GIsL2NetLogin )
  2708.       goto LABEL_2395;
  2709.     if ( UInput::KeyDown(v115, 18) )
  2710.       *(float *)&v1559 = *(float *)&v1559 * 4.0;
  2711.     if ( *(_DWORD *)GIsL2NetLogin || !UInput::KeyDown(v115, 17) )
  2712.     {
  2713. LABEL_2395:
  2714.       *(float *)(v112 + 2712) = *(float *)(v112 + 2712) - *(float *)&v1559;
  2715.       *(float *)(v112 + 2708) = *(float *)(v112 + 2708) - *(float *)&v1559;
  2716.     }
  2717.     else
  2718.     {
  2719.       *(float *)(v112 + 2648) = *(float *)(v112 + 2648) - *(float *)&v1559 * 0.25;
  2720.     }
  2721.     if ( *(float *)(v112 + 2880) > (double)*(float *)(v112 + 2712) )
  2722.       *(float *)(v112 + 2712) = *(float *)(v112 + 2880);
  2723.     if ( *(float *)(v112 + 2880) > (double)*(float *)(v112 + 2708) && *(float *)(v112 + 2880) < 0.0 )
  2724.     {
  2725.       *(float *)(v112 + 2708) = *(float *)(v112 + 2880);
  2726.       if ( *(_DWORD *)(v112 + 956) )
  2727.       {
  2728.         if ( !dword_20786F10 )
  2729.         {
  2730.           *(float *)(v112 + 2648) = *(float *)(*(_DWORD *)(v112 + 956) + 752) * 4.0 / 5.0 + *(float *)(v112 + 2648);
  2731.           dword_20786F10 = 1;
  2732.         }
  2733.       }
  2734.     }
  2735.     goto LABEL_301;
  2736.   }
  2737.   if ( ParseCommand(&a3, L"ZOOMOUTPRESS") && !*(_DWORD *)GIsEditor )
  2738.   {
  2739.     if ( *((_DWORD *)v4 + 932) != 1 )
  2740.       return 1;
  2741.     v118 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2742.     if ( !v118
  2743.       || !UClass::IsA(v118, ALineagePlayerController::PrivateStaticClass)
  2744.       || !*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) )
  2745.     {
  2746.       goto LABEL_16;
  2747.     }
  2748.     if ( !(*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))() )
  2749.       return 1;
  2750.     v119 = *((_DWORD *)v4 + 926);
  2751.     v120 = *(_DWORD *)(v119 + 60);
  2752.     if ( *(_DWORD *)(v120 + 2652) & 0xC000 )
  2753.       return 1;
  2754.     if ( ALineagePlayerController::IsCamCutSceneMode(*(ALineagePlayerController **)(v119 + 60)) )
  2755.       return 1;
  2756.     v121 = *(_DWORD *)(v120 + 2652);
  2757.     if ( v121 & 0x1000 )
  2758.       return 1;
  2759.     v122 = v121 & 0xFFFFF7FF;
  2760.     *(_DWORD *)(v120 + 2652) = v122;
  2761.     *(_DWORD *)(v120 + 2652) = v122 | 0x40;
  2762.     *(float *)&v1557 = 1.0;
  2763.     Parse(a3, L"SPEED=", &v1557);
  2764.     if ( *(float *)(*(_DWORD *)(v120 + 956) + 752) + *(float *)(*(_DWORD *)(v120 + 956) + 752) + *(float *)(v120 + 2880) > *(float *)(v120 + 2712) )
  2765.       *(float *)&v1557 = *(float *)&v1557 * 0.125;
  2766.     if ( *(_DWORD *)GIsL2NetLogin )
  2767.       goto LABEL_2396;
  2768.     v123 = (UInput *)((char *)v4 - 52);
  2769.     if ( UInput::KeyDown(v123, 16) )
  2770.       *(float *)&v1557 = *(float *)&v1557 * 0.25;
  2771.     if ( *(_DWORD *)GIsL2NetLogin )
  2772.       goto LABEL_2396;
  2773.     if ( UInput::KeyDown(v123, 18) )
  2774.       *(float *)&v1557 = *(float *)&v1557 * 4.0;
  2775.     if ( *(_DWORD *)GIsL2NetLogin || !UInput::KeyDown(v123, 17) )
  2776.     {
  2777. LABEL_2396:
  2778.       *(float *)(v120 + 2712) = *(float *)&v1557 + *(float *)(v120 + 2712);
  2779.       *(float *)(v120 + 2708) = *(float *)&v1557 + *(float *)(v120 + 2708);
  2780.     }
  2781.     else
  2782.     {
  2783.       *(float *)(v120 + 2648) = *(float *)&v1557 * 0.25 + *(float *)(v120 + 2648);
  2784.     }
  2785.     if ( dword_20786F10 )
  2786.       *(float *)(v120 + 2648) = *(float *)(v120 + 2648) - *(float *)(*(_DWORD *)(v120 + 956) + 752) * 4.0 / 5.0;
  2787.     dword_20786F10 = 0;
  2788.     if ( *(float *)(v120 + 2876) < (double)*(float *)(v120 + 2712) )
  2789.       *(float *)(v120 + 2712) = *(float *)(v120 + 2876);
  2790.     if ( *(float *)(v120 + 2876) < (double)*(float *)(v120 + 2708) )
  2791.       *(float *)(v120 + 2708) = *(float *)(v120 + 2876);
  2792. LABEL_301:
  2793.     if ( *(_DWORD *)GIsL2NetLogin )
  2794.     {
  2795.       LODWORD(v939[1]) = 4;
  2796.       goto LABEL_303;
  2797.     }
  2798.     return 1;
  2799.   }
  2800.   if ( ParseCommand(&a3, L"ZOOMINHOLD") && !*(_DWORD *)GIsEditor )
  2801.   {
  2802.     if ( *((_DWORD *)v4 + 932) != 2 )
  2803.       return 1;
  2804.     v124 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2805.     if ( v124 && UClass::IsA(v124, ALineagePlayerController::PrivateStaticClass) )
  2806.     {
  2807.       if ( (*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))() )
  2808.       {
  2809.         v125 = *((_DWORD *)v4 + 926);
  2810.         v126 = *(_DWORD *)(v125 + 60);
  2811.         if ( !(*(_DWORD *)(v126 + 2652) & 0xC000)
  2812.           && !ALineagePlayerController::IsCamCutSceneMode(*(ALineagePlayerController **)(v125 + 60))
  2813.           && !(*(_DWORD *)(v126 + 2652) & 0x1000) )
  2814.         {
  2815.           *(float *)&v1508 = 1.0;
  2816.           Parse(a3, L"SPEED=", &v1508);
  2817.           a4 = *((struct FOutputDevice **)v4 + 933);
  2818.           *(float *)(v126 + 2712) = *(float *)(v126 + 2712) - *(float *)&v1508 * *(float *)&a4;
  2819.           a4 = *((struct FOutputDevice **)v4 + 933);
  2820.           *(float *)(v126 + 2708) = *(float *)(v126 + 2708) - *(float *)&v1508 * *(float *)&a4;
  2821.           if ( *(float *)(v126 + 2712) < -200.0 )
  2822.             *(float *)(v126 + 2712) = -200.0;
  2823.           if ( *(float *)(v126 + 2708) < -200.0 )
  2824.             *(float *)(v126 + 2708) = -200.0;
  2825.         }
  2826.       }
  2827.       return 1;
  2828.     }
  2829. LABEL_708:
  2830.     LODWORD(v939[1]) = a3;
  2831.     FOutputDevice::Logf(a4, L"%s Bad Axis command", a3);
  2832.     return 1;
  2833.   }
  2834.   if ( ParseCommand(&a3, L"ZOOMOUTHOLD") && !*(_DWORD *)GIsEditor )
  2835.   {
  2836.     if ( *((_DWORD *)v4 + 932) != 2 )
  2837.       return 1;
  2838.     v127 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2839.     if ( v127 && UClass::IsA(v127, ALineagePlayerController::PrivateStaticClass) )
  2840.     {
  2841.       if ( (*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))() )
  2842.       {
  2843.         v128 = *((_DWORD *)v4 + 926);
  2844.         v129 = *(_DWORD *)(v128 + 60);
  2845.         if ( !(*(_DWORD *)(v129 + 2652) & 0xC000)
  2846.           && !ALineagePlayerController::IsCamCutSceneMode(*(ALineagePlayerController **)(v128 + 60))
  2847.           && !(*(_DWORD *)(v129 + 2652) & 0x1000) )
  2848.         {
  2849.           *(float *)&v1506 = 1.0;
  2850.           Parse(a3, L"SPEED=", &v1506);
  2851.           a4 = *((struct FOutputDevice **)v4 + 933);
  2852.           *(float *)(v129 + 2712) = *(float *)&v1506 * *(float *)&a4 + *(float *)(v129 + 2712);
  2853.           a4 = *((struct FOutputDevice **)v4 + 933);
  2854.           *(float *)(v129 + 2708) = *(float *)&v1506 * *(float *)&a4 + *(float *)(v129 + 2708);
  2855.           if ( *(float *)(v129 + 2712) > 1000.0 )
  2856.             *(float *)(v129 + 2712) = 1000.0;
  2857.           if ( *(float *)(v129 + 2708) > 1000.0 )
  2858.             *(float *)(v129 + 2708) = 1000.0;
  2859.         }
  2860.       }
  2861.       return 1;
  2862.     }
  2863.     goto LABEL_16;
  2864.   }
  2865.   if ( ParseCommand(&a3, L"TURNBACK") && !*(_DWORD *)GIsEditor )
  2866.   {
  2867.     if ( *((_DWORD *)v4 + 932) == 1 )
  2868.     {
  2869.       v130 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2870.       if ( v130 )
  2871.       {
  2872.         if ( *(_DWORD *)(v130 + 956) )
  2873.         {
  2874.           v131 = (ALineagePlayerController *)sub_200D24A0(v130);
  2875.           if ( v131 )
  2876.           {
  2877.             if ( (*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))() )
  2878.             {
  2879.               if ( !(*((_DWORD *)v131 + 663) & 0xC000) && !ALineagePlayerController::IsCamCutSceneMode(v131) )
  2880.               {
  2881.                 v132 = *((_DWORD *)v131 + 663);
  2882.                 if ( !(v132 & 0x200) )
  2883.                 {
  2884.                   v133 = v132 & 0x100 ? *((_DWORD *)v131 + 707) - *(_DWORD *)(*((_DWORD *)v131 + 239) + 452) : *((_DWORD *)v131 + 113) - *(_DWORD *)(*((_DWORD *)v131 + 239) + 452);
  2885.                   *((_DWORD *)v131 + 707) = (unsigned int)(unsigned __int16)v133 - 32569 > 0x18E ? *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 452)
  2886.                                                                                                  + 0x8000 : *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 452);
  2887.                   *((_DWORD *)v131 + 663) |= 0x100u;
  2888.                   *((_DWORD *)v131 + 663) |= 0x200u;
  2889.                   if ( *(_DWORD *)GIsL2NetLogin )
  2890.                     (*(void (__stdcall **)(signed int))(*(_DWORD *)dword_2077EE00 + 568))(16);
  2891.                 }
  2892.               }
  2893.             }
  2894.           }
  2895.         }
  2896.       }
  2897.     }
  2898.     return 1;
  2899.   }
  2900.   if ( ParseCommand(&a3, L"DEFAULTCAMERA") && !*(_DWORD *)GIsEditor )
  2901.   {
  2902.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  2903.     v134 = *((_DWORD *)v4 + 932);
  2904.     if ( v105 )
  2905.       v135 = v134 == 1;
  2906.     else
  2907.       v135 = v134 == 3;
  2908.     if ( !v135 && v134 )
  2909.       return 1;
  2910.     v136 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2911.     if ( v136 && *(_DWORD *)(v136 + 956) && UClass::IsA(v136, ALineagePlayerController::PrivateStaticClass) )
  2912.     {
  2913.       if ( (*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))() )
  2914.       {
  2915.         v137 = *((_DWORD *)v4 + 926);
  2916.         v138 = *(_DWORD **)(v137 + 60);
  2917.         if ( !(v138[663] & 0xC000)
  2918.           && !ALineagePlayerController::IsCamCutSceneMode(*(ALineagePlayerController **)(v137 + 60)) )
  2919.         {
  2920.           v1260 = 1;
  2921.           if ( *((_DWORD *)v4 + 932) == 3
  2922.             && Parse(a3, L"MAXPRESSEDTIME=", &v1242)
  2923.             && (a4 = *((struct FOutputDevice **)v4 + 933), *(float *)&a4 > (double)*(float *)&v1242) )
  2924.           {
  2925.             v1260 = 0;
  2926.           }
  2927.           else
  2928.           {
  2929.             if ( Parse(a3, L"PITCH=", v138 + 683) )
  2930.               v138[663] |= 0x400u;
  2931.             else
  2932.               v138[663] &= 0xFFFFFBFF;
  2933.             if ( Parse(a3, L"YAW=", v138 + 682) )
  2934.               v138[663] |= 0x200u;
  2935.             else
  2936.               v138[663] &= 0xFFFFFDFF;
  2937.             if ( Parse(a3, L"DISTANCE=", v138 + 684) )
  2938.               v138[663] |= 0x800u;
  2939.             else
  2940.               v138[663] &= 0xFFFFF7FF;
  2941.             if ( v138[663] & 0xE00 )
  2942.             {
  2943.               v138[707] = *(_DWORD *)(v138[239] + 452);
  2944.               v138[708] = *(_DWORD *)(v138[239] + 448);
  2945.               v138[663] |= 0x100u;
  2946.             }
  2947.             if ( *(_DWORD *)GIsL2NetLogin )
  2948.               (*(void (__stdcall **)(signed int))(*(_DWORD *)dword_2077EE00 + 568))(8);
  2949.           }
  2950.         }
  2951.       }
  2952.       return 1;
  2953.     }
  2954.     goto LABEL_708;
  2955.   }
  2956.   if ( ParseCommand(&a3, L"KEYBOARDMOVEUPAIRSHIP") && !*(_DWORD *)GIsEditor )
  2957.   {
  2958.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  2959.     v139 = *((_DWORD *)v4 + 932);
  2960.     if ( v105 )
  2961.       v140 = v139 == 1;
  2962.     else
  2963.       v140 = v139 == 3;
  2964.     if ( v140 || !v139 )
  2965.     {
  2966.       v141 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  2967.       if ( *(_DWORD *)(v141 + 956) )
  2968.       {
  2969.         if ( UClass::IsA(v141, ALineagePlayerController::PrivateStaticClass) )
  2970.         {
  2971.           v142 = sub_200D24A0(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60));
  2972.           if ( *(_DWORD *)GIsL2NetLogin )
  2973.           {
  2974.             v143 = *(_DWORD **)(v142 + 956);
  2975.             v144 = **((_DWORD **)dword_2077EE00 + 26);
  2976.             v939[1] = 0.0;
  2977.             LODWORD(v939[0]) = 2;
  2978.             LODWORD(v938) = 1;
  2979.             (*(void (__stdcall **)(_DWORD *, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, signed int, signed int, _DWORD))(v144 + 208))(
  2980.               v143,
  2981.               *((_DWORD *)dword_2077EE00 + 144),
  2982.               *((_DWORD *)dword_2077EE00 + 145),
  2983.               *((_DWORD *)dword_2077EE00 + 146),
  2984.               v143[109],
  2985.               v143[110],
  2986.               v143[111],
  2987.               *((_DWORD *)dword_2077EE00 + 154),
  2988.               1,
  2989.               2,
  2990.               0);
  2991.           }
  2992.         }
  2993.       }
  2994.     }
  2995.     return 1;
  2996.   }
  2997.   if ( ParseCommand(&a3, L"KEYBOARDMOVEDOWNAIRSHIP") && !*(_DWORD *)GIsEditor )
  2998.   {
  2999.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3000.     v145 = *((_DWORD *)v4 + 932);
  3001.     if ( v105 )
  3002.       v146 = v145 == 1;
  3003.     else
  3004.       v146 = v145 == 3;
  3005.     if ( v146 || !v145 )
  3006.     {
  3007.       v147 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3008.       if ( *(_DWORD *)(v147 + 956) )
  3009.       {
  3010.         if ( UClass::IsA(v147, ALineagePlayerController::PrivateStaticClass) )
  3011.         {
  3012.           v148 = sub_200D24A0(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60));
  3013.           if ( *(_DWORD *)GIsL2NetLogin )
  3014.           {
  3015.             v149 = *(_DWORD **)(v148 + 956);
  3016.             v150 = **((_DWORD **)dword_2077EE00 + 26);
  3017.             v939[1] = 0.0;
  3018.             LODWORD(v939[0]) = 3;
  3019.             LODWORD(v938) = 1;
  3020.             (*(void (__stdcall **)(_DWORD *, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, signed int, signed int, _DWORD))(v150 + 208))(
  3021.               v149,
  3022.               *((_DWORD *)dword_2077EE00 + 144),
  3023.               *((_DWORD *)dword_2077EE00 + 145),
  3024.               *((_DWORD *)dword_2077EE00 + 146),
  3025.               v149[109],
  3026.               v149[110],
  3027.               v149[111],
  3028.               *((_DWORD *)dword_2077EE00 + 154),
  3029.               1,
  3030.               3,
  3031.               0);
  3032.           }
  3033.         }
  3034.       }
  3035.     }
  3036.     return 1;
  3037.   }
  3038.   if ( ParseCommand(&a3, L"KEYBOARDSTOPMOVEAIRSHIP") && !*(_DWORD *)GIsEditor )
  3039.   {
  3040.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3041.     v151 = *((_DWORD *)v4 + 932);
  3042.     if ( v105 )
  3043.       v152 = v151 == 1;
  3044.     else
  3045.       v152 = v151 == 3;
  3046.     if ( v152 || !v151 )
  3047.     {
  3048.       v153 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3049.       if ( *(_DWORD *)(v153 + 956) )
  3050.       {
  3051.         if ( UClass::IsA(v153, ALineagePlayerController::PrivateStaticClass) )
  3052.         {
  3053.           v154 = sub_200D24A0(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60));
  3054.           if ( *(_DWORD *)GIsL2NetLogin )
  3055.           {
  3056.             v155 = *(_DWORD **)(v154 + 956);
  3057.             v156 = **((_DWORD **)dword_2077EE00 + 26);
  3058.             v939[1] = 0.0;
  3059.             LODWORD(v939[0]) = 1;
  3060.             LODWORD(v938) = 1;
  3061.             (*(void (__stdcall **)(_DWORD *, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, signed int, signed int, _DWORD))(v156 + 208))(
  3062.               v155,
  3063.               *((_DWORD *)dword_2077EE00 + 144),
  3064.               *((_DWORD *)dword_2077EE00 + 145),
  3065.               *((_DWORD *)dword_2077EE00 + 146),
  3066.               v155[109],
  3067.               v155[110],
  3068.               v155[111],
  3069.               *((_DWORD *)dword_2077EE00 + 154),
  3070.               1,
  3071.               1,
  3072.               0);
  3073.           }
  3074.         }
  3075.       }
  3076.     }
  3077.     return 1;
  3078.   }
  3079.   if ( ParseCommand(&a3, L"KEYBOARDMOVESTART") && !*(_DWORD *)GIsEditor )
  3080.   {
  3081.     v157 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3082.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3083.     v158 = *((_DWORD *)v4 + 932);
  3084.     if ( v105 )
  3085.       v159 = v158 == 1;
  3086.     else
  3087.       v159 = v158 == 3;
  3088.     if ( !v159 && v158 && (!v157 || *(_BYTE *)(v157 + 2654) & 1 || v158 != 2) )
  3089.       return 1;
  3090.     v160 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3091.     if ( !*(_DWORD *)(v160 + 956) )
  3092.       return 1;
  3093.     if ( !UClass::IsA(v160, ALineagePlayerController::PrivateStaticClass) )
  3094.       return 1;
  3095.     v161 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3096.     if ( *(_DWORD *)(v161 + 976) & 0x80000 )
  3097.       return 1;
  3098.     v162 = *(_BYTE *)(v161 + 1089);
  3099.     if ( !v162
  3100.       || v162 == 2
  3101.       || v162 == 4
  3102.       || !(*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))()
  3103.       || *(_DWORD *)(v157 + 2652) & 0xC000
  3104.       || ALineagePlayerController::IsCamCutSceneMode((ALineagePlayerController *)v157) )
  3105.     {
  3106.       return 1;
  3107.     }
  3108.     Parse(a3, L"DIR=", &v1386);
  3109.     v163 = *(_DWORD *)(v157 + 2848);
  3110.     if ( v163 && v163 & v1386 )
  3111.     {
  3112.       a4 = *((struct FOutputDevice **)v4 + 933);
  3113.       *(float *)&a4 = *(float *)&a4 + *(float *)(v157 + 2864);
  3114.       v164 = *(float *)&a4;
  3115.       *(float *)(v157 + 2864) = *(float *)&a4;
  3116.       if ( dword_21601DC4 == *(_DWORD *)(v157 + 452) )
  3117.       {
  3118.         if ( v164 <= 3.0 )
  3119.         {
  3120. LABEL_468:
  3121.           *(_DWORD *)(v157 + 2652) &= 0xFFFDFFFF;
  3122.           return 1;
  3123.         }
  3124.       }
  3125.       else
  3126.       {
  3127.         dword_21601DC4 = *(_DWORD *)(v157 + 452);
  3128.       }
  3129.       *(float *)(v157 + 2864) = 0.0;
  3130.     }
  3131.     ALineagePlayerController::ResetKeyboardMoving((ALineagePlayerController *)v157, v1386, 1, 0);
  3132.     goto LABEL_468;
  3133.   }
  3134.   if ( ParseCommand(&a3, L"KEYBOARDMOVEFINISH") && !*(_DWORD *)GIsEditor )
  3135.   {
  3136.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3137.     v165 = *((_DWORD *)v4 + 932);
  3138.     if ( v105 )
  3139.       v166 = v165 == 1;
  3140.     else
  3141.       v166 = v165 == 3;
  3142.     if ( v166 || !v165 )
  3143.     {
  3144.       v167 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3145.       if ( *(_DWORD *)(v167 + 956) )
  3146.       {
  3147.         if ( UClass::IsA(v167, ALineagePlayerController::PrivateStaticClass) )
  3148.         {
  3149.           v168 = *(_BYTE *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 1089);
  3150.           if ( v168 )
  3151.           {
  3152.             if ( v168 != 2 && v168 != 4 )
  3153.             {
  3154.               Parse(a3, L"DIR=", &v1438);
  3155.               v169 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3156.               v170 = *(_DWORD *)(v169 + 2652);
  3157.               if ( v170 & 0x20000 )
  3158.               {
  3159.                 v171 = v170 & 0xFFFBFFFF;
  3160.                 *(_DWORD *)(v169 + 2652) = v171;
  3161.                 *(_DWORD *)(v169 + 2652) = v171 & 0xFFFEFFFF;
  3162.               }
  3163.               else
  3164.               {
  3165.                 a4 = *((struct FOutputDevice **)v4 + 933);
  3166.                 if ( 0.0 == *(float *)&a4 )
  3167.                   ALineagePlayerController::ResetKeyboardMoving((ALineagePlayerController *)v169, v1438, 0, 0);
  3168.                 else
  3169.                   ALineagePlayerController::ResetKeyboardMoving((ALineagePlayerController *)v169, v1438, 0, 1);
  3170.                 *(float *)(v169 + 2864) = 0.0;
  3171.               }
  3172.             }
  3173.           }
  3174.         }
  3175.       }
  3176.     }
  3177.     return 1;
  3178.   }
  3179.   if ( ParseCommand(&a3, L"LEFTTURNINGSTART") && !*(_DWORD *)GIsEditor )
  3180.   {
  3181.     v172 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3182.     v173 = *(APawn **)(v172 + 956);
  3183.     a4 = *(struct FOutputDevice **)(v172 + 956);
  3184.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3185.     v174 = *((_DWORD *)v4 + 932);
  3186.     if ( v105 )
  3187.       v175 = v174 == 1;
  3188.     else
  3189.       v175 = v174 == 3;
  3190.     if ( v175 || !v174 || v173 && !(*((_DWORD *)v173 + 421) & 0x400) && v174 == 2 )
  3191.     {
  3192.       v176 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3193.       if ( *(_DWORD *)(v176 + 956) )
  3194.       {
  3195.         if ( UClass::IsA(v176, ALineagePlayerController::PrivateStaticClass) )
  3196.         {
  3197.           v177 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3198.           if ( !(*(_DWORD *)(v177 + 976) & 0x80000) )
  3199.           {
  3200.             v178 = *(_BYTE *)(v177 + 1089);
  3201.             if ( v178 )
  3202.             {
  3203.               if ( v178 != 2
  3204.                 && v178 != 4
  3205.                 && !APawn::CheckAbnormalState(v173, 64i64)
  3206.                 && !APawn::CheckAbnormalState(v173, 0x20000i64)
  3207.                 && !APawn::CheckAbnormalState(v173, 0x40000i64) )
  3208.               {
  3209.                 if ( (*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))() )
  3210.                 {
  3211.                   v179 = *((_DWORD *)v4 + 926);
  3212.                   v180 = *(_DWORD *)(v179 + 60);
  3213.                   if ( (!v180 || !(*(_BYTE *)(*(_DWORD *)(v180 + 956) + 1840) & 2))
  3214.                     && !(*(_DWORD *)(v180 + 2652) & 0xC000)
  3215.                     && !ALineagePlayerController::IsCamCutSceneMode(*(ALineagePlayerController **)(v179 + 60)) )
  3216.                   {
  3217.                     *(float *)(v180 + 2840) = 0.0;
  3218.                     if ( *(_BYTE *)(v180 + 2654) & 1 || *(_BYTE *)(v180 + 2656) & 2 )
  3219.                     {
  3220.                       if ( *(_BYTE *)(v180 + 2848) & 8 )
  3221.                       {
  3222.                         a4 = *((struct FOutputDevice **)v4 + 933);
  3223.                         *(float *)&a4 = *(float *)(v180 + 2868) + *(float *)&a4;
  3224.                         v182 = *(float *)&a4;
  3225.                         *(float *)(v180 + 2868) = *(float *)&a4;
  3226.                         if ( v182 > 1.0 )
  3227.                         {
  3228.                           *(float *)(v180 + 2868) = 0.0;
  3229.                           ALineagePlayerController::ResetKeyboardMoving((ALineagePlayerController *)v180, 8, 1, 0);
  3230.                         }
  3231.                       }
  3232.                       else
  3233.                       {
  3234.                         ALineagePlayerController::ResetKeyboardMoving((ALineagePlayerController *)v180, 8, 1, 0);
  3235.                       }
  3236.                     }
  3237.                     else
  3238.                     {
  3239.                       v181 = a4;
  3240.                       if ( *(_DWORD *)GIsL2NetLogin )
  3241.                       {
  3242.                         if ( !(*((_BYTE *)a4 + 1684) & 1) )
  3243.                           (*(void (__stdcall **)(_DWORD, signed int))(**((_DWORD **)dword_2077EE00 + 26) + 272))(
  3244.                             *((_DWORD *)a4 + 113),
  3245.                             -1);
  3246.                       }
  3247.                       else
  3248.                       {
  3249.                         *((_DWORD *)a4 + 421) |= 0x400u;
  3250.                         *((_DWORD *)v181 + 444) = -1;
  3251.                       }
  3252.                     }
  3253.                   }
  3254.                 }
  3255.               }
  3256.             }
  3257.           }
  3258.         }
  3259.       }
  3260.     }
  3261.     return 1;
  3262.   }
  3263.   if ( ParseCommand(&a3, L"LEFTTURNINGFINISH") && !*(_DWORD *)GIsEditor )
  3264.   {
  3265.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3266.     v183 = *((_DWORD *)v4 + 932);
  3267.     if ( v105 )
  3268.       v184 = v183 == 1;
  3269.     else
  3270.       v184 = v183 == 3;
  3271.     if ( v184 || !v183 )
  3272.     {
  3273.       v185 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3274.       if ( *(_DWORD *)(v185 + 956) )
  3275.       {
  3276.         if ( UClass::IsA(v185, ALineagePlayerController::PrivateStaticClass) )
  3277.         {
  3278.           v186 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3279.           if ( !(*(_DWORD *)(v186 + 976) & 0x80000) )
  3280.           {
  3281.             v187 = *(_DWORD **)(v186 + 956);
  3282.             if ( *(_BYTE *)(v186 + 2654) & 1 || *(_BYTE *)(v186 + 2656) & 2 )
  3283.             {
  3284.               ALineagePlayerController::ResetKeyboardMoving((ALineagePlayerController *)v186, 8, 0, 0);
  3285.               *(float *)(v186 + 2868) = 0.0;
  3286.             }
  3287.             else
  3288.             {
  3289.               if ( *(_DWORD *)GIsL2NetLogin )
  3290.                 (*(void (__stdcall **)(_DWORD))(**((_DWORD **)dword_2077EE00 + 26) + 276))(v187[113]);
  3291.               v187[421] &= 0xFFFFFBFF;
  3292.               v188 = v187 + 204;
  3293.               *v188 = v187[112];
  3294.               v188[1] = v187[113];
  3295.               v188[2] = v187[114];
  3296.               *(float *)(v186 + 2868) = 0.0;
  3297.             }
  3298.           }
  3299.         }
  3300.       }
  3301.     }
  3302.     return 1;
  3303.   }
  3304.   if ( ParseCommand(&a3, L"RIGHTTURNINGSTART") && !*(_DWORD *)GIsEditor )
  3305.   {
  3306.     v189 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  3307.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3308.     v190 = *((_DWORD *)v4 + 932);
  3309.     if ( v105 )
  3310.       v191 = v190 == 1;
  3311.     else
  3312.       v191 = v190 == 3;
  3313.     if ( v191 || !v190 || v189 && !(*(_DWORD *)(v189 + 1684) & 0x400) && v190 == 2 )
  3314.     {
  3315.       v192 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3316.       if ( *(_DWORD *)(v192 + 956) )
  3317.       {
  3318.         if ( UClass::IsA(v192, ALineagePlayerController::PrivateStaticClass) )
  3319.         {
  3320.           v193 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3321.           if ( !(*(_DWORD *)(v193 + 976) & 0x80000) )
  3322.           {
  3323.             v194 = *(_BYTE *)(v193 + 1089);
  3324.             if ( v194 )
  3325.             {
  3326.               if ( v194 != 2
  3327.                 && v194 != 4
  3328.                 && !APawn::CheckAbnormalState((APawn *)v189, 64i64)
  3329.                 && !APawn::CheckAbnormalState((APawn *)v189, 0x20000i64)
  3330.                 && !APawn::CheckAbnormalState((APawn *)v189, 0x40000i64) )
  3331.               {
  3332.                 if ( (*(int (**)(void))(*(_DWORD *)dword_2077EE00 + 224))() )
  3333.                 {
  3334.                   v195 = *((_DWORD *)v4 + 926);
  3335.                   v196 = *(_DWORD *)(v195 + 60);
  3336.                   if ( (!v196 || !(*(_BYTE *)(*(_DWORD *)(v196 + 956) + 1840) & 2))
  3337.                     && !(*(_DWORD *)(v196 + 2652) & 0xC000)
  3338.                     && !ALineagePlayerController::IsCamCutSceneMode(*(ALineagePlayerController **)(v195 + 60)) )
  3339.                   {
  3340.                     *(float *)(v196 + 2840) = 0.0;
  3341.                     if ( *(_BYTE *)(v196 + 2654) & 1 || *(_BYTE *)(v196 + 2656) & 2 )
  3342.                     {
  3343.                       if ( *(_BYTE *)(v196 + 2848) & 2 )
  3344.                       {
  3345.                         a4 = *((struct FOutputDevice **)v4 + 933);
  3346.                         *(float *)&a4 = *(float *)(v196 + 2872) + *(float *)&a4;
  3347.                         v197 = *(float *)&a4;
  3348.                         *(float *)(v196 + 2872) = *(float *)&a4;
  3349.                         if ( v197 > 1.0 )
  3350.                         {
  3351.                           *(float *)(v196 + 2872) = 0.0;
  3352.                           ALineagePlayerController::ResetKeyboardMoving((ALineagePlayerController *)v196, 2, 1, 0);
  3353.                         }
  3354.                       }
  3355.                       else
  3356.                       {
  3357.                         ALineagePlayerController::ResetKeyboardMoving((ALineagePlayerController *)v196, 2, 1, 0);
  3358.                       }
  3359.                     }
  3360.                     else if ( *(_DWORD *)GIsL2NetLogin )
  3361.                     {
  3362.                       if ( !(*(_BYTE *)(v189 + 1684) & 1) )
  3363.                         (*(void (__stdcall **)(_DWORD, signed int))(**((_DWORD **)dword_2077EE00 + 26) + 272))(
  3364.                           *(_DWORD *)(v189 + 452),
  3365.                           1);
  3366.                     }
  3367.                     else
  3368.                     {
  3369.                       *(_DWORD *)(v189 + 1684) |= 0x400u;
  3370.                       *(_DWORD *)(v189 + 1776) = 1;
  3371.                     }
  3372.                   }
  3373.                 }
  3374.               }
  3375.             }
  3376.           }
  3377.         }
  3378.       }
  3379.     }
  3380.     return 1;
  3381.   }
  3382.   if ( ParseCommand(&a3, L"RIGHTTURNINGFINISH") && !*(_DWORD *)GIsEditor )
  3383.   {
  3384.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3385.     v198 = *((_DWORD *)v4 + 932);
  3386.     if ( v105 )
  3387.       v199 = v198 == 1;
  3388.     else
  3389.       v199 = v198 == 3;
  3390.     if ( v199 || !v198 )
  3391.     {
  3392.       v200 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3393.       if ( *(_DWORD *)(v200 + 956) )
  3394.       {
  3395.         if ( UClass::IsA(v200, ALineagePlayerController::PrivateStaticClass) )
  3396.         {
  3397.           v201 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3398.           if ( !(*(_DWORD *)(v201 + 976) & 0x80000) )
  3399.           {
  3400.             v202 = *(_DWORD **)(v201 + 956);
  3401.             if ( *(_BYTE *)(v201 + 2654) & 1 || *(_BYTE *)(v201 + 2656) & 2 )
  3402.             {
  3403.               ALineagePlayerController::ResetKeyboardMoving((ALineagePlayerController *)v201, 2, 0, 0);
  3404.               *(float *)(v201 + 2872) = 0.0;
  3405.             }
  3406.             else
  3407.             {
  3408.               if ( *(_DWORD *)GIsL2NetLogin )
  3409.                 (*(void (__stdcall **)(_DWORD))(**((_DWORD **)dword_2077EE00 + 26) + 276))(v202[113]);
  3410.               v202[421] &= 0xFFFFFBFF;
  3411.               v203 = v202 + 204;
  3412.               *v203 = v202[112];
  3413.               v203[1] = v202[113];
  3414.               v203[2] = v202[114];
  3415.               *(float *)(v201 + 2872) = 0.0;
  3416.             }
  3417.           }
  3418.         }
  3419.       }
  3420.     }
  3421.     return 1;
  3422.   }
  3423.   if ( ParseCommand(&a3, L"KEYBOARDPERMANENTMOVE") && !*(_DWORD *)GIsEditor )
  3424.   {
  3425.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3426.     v204 = *((_DWORD *)v4 + 932);
  3427.     if ( v105 )
  3428.       v205 = v204 == 1;
  3429.     else
  3430.       v205 = v204 == 3;
  3431.     if ( !v205 && v204 )
  3432.       return 1;
  3433.     v206 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3434.     if ( !*(_DWORD *)(v206 + 956) )
  3435.       return 1;
  3436.     if ( !UClass::IsA(v206, ALineagePlayerController::PrivateStaticClass) )
  3437.       return 1;
  3438.     v207 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3439.     v208 = *(_BYTE *)(v207 + 1089);
  3440.     if ( !v208 || v208 == 2 || v208 == 4 )
  3441.       return 1;
  3442.     v209 = *(_DWORD *)(v207 + 2652) ^ (*(_DWORD *)(v207 + 2652) ^ ~*(_DWORD *)(v207 + 2652)) & 0x20000;
  3443.     *(_DWORD *)(v207 + 2652) = v209;
  3444.     if ( v209 & 0x20000 )
  3445.     {
  3446.       *(_DWORD *)(v207 + 2844) = *(_DWORD *)(*(_DWORD *)(v207 + 956) + 452);
  3447.       return 1;
  3448.     }
  3449.     if ( v209 & 0x10000 )
  3450.       return 1;
  3451.     (*(void (__thiscall **)(int))(*(_DWORD *)v207 + 860))(v207);
  3452.     if ( !*(_DWORD *)GIsL2NetLogin )
  3453.       return 1;
  3454.     v210 = *(_DWORD *)(v207 + 956);
  3455. LABEL_604:
  3456.     v211 = **((_DWORD **)dword_2077EE00 + 26);
  3457.     v939[1] = 0.0;
  3458.     (*(void (__stdcall **)(int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(v211 + 252))(
  3459.       v210,
  3460.       *(_DWORD *)(v210 + 436),
  3461.       *(_DWORD *)(v210 + 440),
  3462.       *(_DWORD *)(v210 + 444),
  3463.       *(_DWORD *)(v210 + 452),
  3464.       0);
  3465.     return 1;
  3466.   }
  3467.   if ( ParseCommand(&a3, L"KeyboardPermanentMovingForward") && !*(_DWORD *)GIsEditor )
  3468.   {
  3469.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3470.     v212 = *((_DWORD *)v4 + 932);
  3471.     if ( v105 )
  3472.       v213 = v212 == 1;
  3473.     else
  3474.       v213 = v212 == 3;
  3475.     if ( v213 || !v212 )
  3476.     {
  3477.       v214 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3478.       if ( *(_DWORD *)(v214 + 956) )
  3479.       {
  3480.         if ( UClass::IsA(v214, ALineagePlayerController::PrivateStaticClass) )
  3481.         {
  3482.           v215 = *(_DWORD **)(*((_DWORD *)v4 + 926) + 60);
  3483.           v216 = *((_BYTE *)v215 + 1089);
  3484.           if ( v216 )
  3485.           {
  3486.             if ( v216 != 2 && v216 != 4 )
  3487.             {
  3488.               v217 = v215[663];
  3489.               if ( v217 & 0x10000 )
  3490.               {
  3491.                 v215[663] = v217 & 0xFFFEFFFF;
  3492.                 (*(void (__thiscall **)(_DWORD *))(*v215 + 860))(v215);
  3493.                 if ( *(_DWORD *)GIsL2NetLogin )
  3494.                 {
  3495.                   v218 = (_DWORD *)v215[239];
  3496.                   v219 = **((_DWORD **)dword_2077EE00 + 26);
  3497.                   v939[1] = 0.0;
  3498.                   (*(void (__stdcall **)(_DWORD *, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(v219 + 252))(
  3499.                     v218,
  3500.                     v218[109],
  3501.                     v218[110],
  3502.                     v218[111],
  3503.                     v218[113],
  3504.                     0);
  3505.                 }
  3506.               }
  3507.               ALineagePlayerController::ResetKeyboardMoving((ALineagePlayerController *)v215, 1, 1, 0);
  3508.               v215[663] |= 0x20000u;
  3509.               v215[711] = *(_DWORD *)(v215[239] + 452);
  3510.             }
  3511.           }
  3512.         }
  3513.       }
  3514.     }
  3515.     return 1;
  3516.   }
  3517.   if ( ParseCommand(&a3, L"KEYBOARDBACKMOVESTART") && !*(_DWORD *)GIsEditor )
  3518.   {
  3519.     v220 = ParseCommand(&a3, L"OnRelease");
  3520.     v1571 = *(int *)(*((_DWORD *)v4 + 926) + 60);
  3521.     v221 = sub_200D24A0(v1571);
  3522.     if ( v221 )
  3523.     {
  3524.       v222 = *((_DWORD *)v4 + 932);
  3525.       v223 = v220 ? v222 == 3 : v222 == 1;
  3526.       if ( v223 || !v222 || !(*(_BYTE *)(v221 + 2654) & 1) && v222 == 2 )
  3527.       {
  3528.         if ( *(_DWORD *)(v1571 + 956) )
  3529.         {
  3530.           if ( UClass::IsA(v1571, ALineagePlayerController::PrivateStaticClass) )
  3531.           {
  3532.             v224 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3533.             if ( !(*(_DWORD *)(v224 + 976) & 0x80000) )
  3534.             {
  3535.               v225 = *(_BYTE *)(v224 + 1089);
  3536.               if ( v225 )
  3537.               {
  3538.                 if ( v225 != 2 && v225 != 4 )
  3539.                 {
  3540.                   v226 = *(_DWORD *)(v224 + 956);
  3541.                   *(float *)(v221 + 2852) = 0.0;
  3542.                   LODWORD(v939[1]) = &v1001;
  3543.                   v227 = FRotator::FRotator(&v999, 0, *(_DWORD *)(*(_DWORD *)(v221 + 956) + 452) + 0x8000, 0);
  3544.                   v228 = (float *)FRotator::Vector(v227, &v1001);
  3545.                   *(float *)&a4 = (*(float *)(v226 + 7336) + *(float *)(v226 + 7336)) / 3.0 * 5.0;
  3546.                   v229 = sub_20005D30((float *)&v997, v228, *(float *)&a4);
  3547.                   *(float *)&a4 = *(float *)(v226 + 436) + *v229;
  3548.                   v1577 = v229[1] + *(float *)(v226 + 440);
  3549.                   v1574 = v229[2] + *(float *)(v226 + 444);
  3550.                   v1413 = a4;
  3551.                   v1414 = v1577;
  3552.                   v1415 = v1574;
  3553.                   if ( *(_DWORD *)GIsL2NetLogin )
  3554.                   {
  3555.                     (*(void (__stdcall **)(struct FOutputDevice *, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(**((_DWORD **)dword_2077EE00 + 26) + 224))(
  3556.                       v1413,
  3557.                       LODWORD(v1414),
  3558.                       LODWORD(v1415),
  3559.                       *(_DWORD *)(v226 + 436),
  3560.                       *(_DWORD *)(v226 + 440),
  3561.                       *(_DWORD *)(v226 + 444));
  3562.                   }
  3563.                   else
  3564.                   {
  3565.                     v939[1] = 1.0;
  3566.                     v939[0] = 0.0;
  3567.                     v936 = *(float *)&v1413;
  3568.                     v937 = v1414;
  3569.                     v938 = v1415;
  3570.                     AController::MoveBackTo(*(_DWORD **)(v226 + 7216), *(float *)&v1413, v1414, v1415, 0, 1.0);
  3571.                   }
  3572.                 }
  3573.               }
  3574.             }
  3575.           }
  3576.         }
  3577.       }
  3578.     }
  3579.     return 1;
  3580.   }
  3581.   if ( ParseCommand(&a3, L"KEYBOARDBACKMOVEFINISH") && !*(_DWORD *)GIsEditor )
  3582.   {
  3583.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3584.     v230 = *((_DWORD *)v4 + 932);
  3585.     if ( v105 )
  3586.       v231 = v230 == 1;
  3587.     else
  3588.       v231 = v230 == 3;
  3589.     if ( !v231 && v230 )
  3590.       return 1;
  3591.     v232 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3592.     if ( !*(_DWORD *)(v232 + 956) )
  3593.       return 1;
  3594.     if ( !UClass::IsA(v232, ALineagePlayerController::PrivateStaticClass) )
  3595.       return 1;
  3596.     v233 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3597.     v234 = *(_BYTE *)(v233 + 1089);
  3598.     if ( !v234 || v234 == 2 || v234 == 4 )
  3599.       return 1;
  3600.     v210 = *(_DWORD *)(v233 + 956);
  3601. LABEL_653:
  3602.     *(float *)(v233 + 2852) = 0.0;
  3603.     *(_DWORD *)(v233 + 2652) &= 0xFFFEFFFF;
  3604.     (*(void (**)(void))(**(_DWORD **)(v210 + 7216) + 860))();
  3605.     if ( !*(_DWORD *)GIsL2NetLogin )
  3606.       return 1;
  3607.     goto LABEL_604;
  3608.   }
  3609.   if ( ParseCommand(&a3, L"KeyboardMoveFinishAll") && !*(_DWORD *)GIsEditor )
  3610.   {
  3611.     v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3612.     v235 = *((_DWORD *)v4 + 932);
  3613.     if ( v105 )
  3614.       v236 = v235 == 1;
  3615.     else
  3616.       v236 = v235 == 3;
  3617.     if ( !v236 && v235 )
  3618.       return 1;
  3619.     v237 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3620.     if ( !*(_DWORD *)(v237 + 956) )
  3621.       return 1;
  3622.     if ( !UClass::IsA(v237, ALineagePlayerController::PrivateStaticClass) )
  3623.       return 1;
  3624.     v233 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3625.     v238 = *(_BYTE *)(v233 + 1089);
  3626.     if ( !v238 || v238 == 2 || v238 == 4 )
  3627.       return 1;
  3628.     v210 = *(_DWORD *)(v233 + 956);
  3629.     *(_DWORD *)(v233 + 2652) &= 0xFFFDFFFF;
  3630.     *(_DWORD *)(v233 + 2848) = 0;
  3631.     goto LABEL_653;
  3632.   }
  3633.   if ( ParseCommand(&a3, L"BUTTON") )
  3634.   {
  3635.     if ( *(_DWORD *)(*((_DWORD *)v4 + 926) + 60) )
  3636.     {
  3637.       if ( ParseToken(&a3, &v961, 256, 0) )
  3638.       {
  3639.         v239 = (_BYTE *)(*(int (__thiscall **)(int, _DWORD, int *))(*((_DWORD *)v4 - 13) + 148))(
  3640.                           (int)v4 - 52,
  3641.                           *(_DWORD *)(*((_DWORD *)v4 + 926) + 60),
  3642.                           &v961);
  3643.         if ( v239
  3644.           || (v240 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956)) != 0
  3645.           && (v239 = (_BYTE *)(*(int (__thiscall **)(int, int, int *))(*((_DWORD *)v4 - 13) + 148))(
  3646.                                 (int)v4 - 52,
  3647.                                 v240,
  3648.                                 &v961)) != 0 )
  3649.         {
  3650.           v241 = *((_DWORD *)v4 + 932);
  3651.           if ( v241 != 1 )
  3652.           {
  3653.             if ( v241 == 3 && *v239 )
  3654.               *v239 = 0;
  3655.             return 1;
  3656.           }
  3657.           goto LABEL_686;
  3658.         }
  3659.       }
  3660.     }
  3661.     goto LABEL_678;
  3662.   }
  3663.   if ( ParseCommand(&a3, L"PULSE") )
  3664.   {
  3665.     if ( *(_DWORD *)(*((_DWORD *)v4 + 926) + 60) )
  3666.     {
  3667.       if ( ParseToken(&a3, &v961, 256, 0) )
  3668.       {
  3669.         v239 = (_BYTE *)(*(int (__thiscall **)(int, _DWORD, int *))(*((_DWORD *)v4 - 13) + 148))(
  3670.                           (int)v4 - 52,
  3671.                           *(_DWORD *)(*((_DWORD *)v4 + 926) + 60),
  3672.                           &v961);
  3673.         if ( v239
  3674.           || (v242 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956)) != 0
  3675.           && (v239 = (_BYTE *)(*(int (__thiscall **)(int, int, int *))(*((_DWORD *)v4 - 13) + 148))(
  3676.                                 (int)v4 - 52,
  3677.                                 v242,
  3678.                                 &v961)) != 0 )
  3679.         {
  3680.           if ( *((_DWORD *)v4 + 932) != 1 )
  3681.             return 1;
  3682. LABEL_686:
  3683.           *v239 = 1;
  3684.           return 1;
  3685.         }
  3686.       }
  3687.     }
  3688. LABEL_678:
  3689.     FOutputDevice::Log(a4, L"Bad Button command");
  3690.     return 1;
  3691.   }
  3692.   if ( ParseCommand(&a3, L"TOGGLE") )
  3693.   {
  3694.     if ( *(_DWORD *)(*((_DWORD *)v4 + 926) + 60)
  3695.       && ParseToken(&a3, &v961, 256, 0)
  3696.       && (v243 = (_BYTE *)(*(int (__stdcall **)(_DWORD, int *))(*((_DWORD *)v4 - 13) + 148))(
  3697.                             *(_DWORD *)(*((_DWORD *)v4 + 926) + 60),
  3698.                             &v961)) != 0 )
  3699.     {
  3700.       if ( *((_DWORD *)v4 + 932) == 1 )
  3701.         *v243 ^= 0x80u;
  3702.     }
  3703.     else
  3704.     {
  3705.       FOutputDevice::Log(a4, L"Bad Toggle command");
  3706.     }
  3707.     return 1;
  3708.   }
  3709.   if ( ParseCommand(&a3, L"AXIS") )
  3710.   {
  3711.     if ( *(_DWORD *)(*((_DWORD *)v4 + 926) + 60) )
  3712.     {
  3713.       if ( ParseToken(&a3, &v961, 256, 0) )
  3714.       {
  3715.         v244 = (float *)(*(int (__stdcall **)(_DWORD, int *))(*((_DWORD *)v4 - 13) + 152))(
  3716.                           *(_DWORD *)(*((_DWORD *)v4 + 926) + 60),
  3717.                           &v961);
  3718.         if ( v244 )
  3719.         {
  3720.           v1556 = 1.0;
  3721.           v1504 = 0.0;
  3722.           v1441 = 0.0;
  3723.           v1535 = 1;
  3724.           Parse(a3, L"SPEED=", &v1556);
  3725.           Parse(a3, L"SPEEDBASE=", &v1504);
  3726.           Parse(a3, L"INVERT=", &v1535);
  3727.           Parse(a3, L"DEADZONE=", &v1441);
  3728.           if ( v1504 <= 0.0 )
  3729.           {
  3730.             v250 = *((_DWORD *)v4 + 932);
  3731.             if ( v250 == 4 )
  3732.             {
  3733.               a4 = *((struct FOutputDevice **)v4 + 933);
  3734.               *v244 = *(float *)&a4 * 0.009999999776482582 * v1556 * (double)v1535 + *v244;
  3735.             }
  3736.             else if ( v250 == 2 )
  3737.             {
  3738.               a4 = *((struct FOutputDevice **)v4 + 933);
  3739.               *v244 = *(float *)&a4 * v1556 * (double)v1535 + *v244;
  3740.             }
  3741.           }
  3742.           else
  3743.           {
  3744.             v245 = sub_20091CE0(v1556);
  3745.             v246 = v1441 < v245;
  3746.             v247 = v1441;
  3747.             if ( v246 )
  3748.             {
  3749.               v248 = v1556;
  3750.               if ( v1556 <= 0.0 )
  3751.                 v249 = -((-v248 - v247) / (1.0 - v247));
  3752.               else
  3753.                 v249 = (v248 - v247) / (1.0 - v247);
  3754.               v1556 = v249;
  3755.               *v244 = v1504 * v1556 * (double)v1535 + *v244;
  3756.             }
  3757.           }
  3758.           return 1;
  3759.         }
  3760.       }
  3761.     }
  3762.     goto LABEL_708;
  3763.   }
  3764.   if ( ParseCommand(&a3, L"JOYPAD") )
  3765.   {
  3766.     if ( *(_DWORD *)GL2UsingJoystick )
  3767.       UInput::ExecJoyPad((UInput *)((char *)v4 - 52), a3);
  3768.     return 1;
  3769.   }
  3770.   if ( ParseCommand(&a3, L"COUNT") )
  3771.   {
  3772.     if ( *(_DWORD *)(*((_DWORD *)v4 + 926) + 60)
  3773.       && ParseToken(&a3, &v961, 256, 0)
  3774.       && (v251 = (_BYTE *)(*(int (__stdcall **)(_DWORD, int *))(*((_DWORD *)v4 - 13) + 148))(
  3775.                             *(_DWORD *)(*((_DWORD *)v4 + 926) + 60),
  3776.                             &v961)) != 0 )
  3777.     {
  3778.       ++*v251;
  3779.     }
  3780.     else
  3781.     {
  3782.       FOutputDevice::Logf(a4, L"%s Bad Count command", a3);
  3783.     }
  3784.     return 1;
  3785.   }
  3786.   if ( ParseCommand(&a3, L"KEYNAME") )
  3787.   {
  3788.     v252 = appAtoi(a3);
  3789.     v253 = (*(int (__stdcall **)(int))(*((_DWORD *)v4 - 13) + 136))(v252);
  3790.     FOutputDevice::Log(a4, v253);
  3791.     return 1;
  3792.   }
  3793.   if ( ParseCommand(&a3, L"LOCALIZEDKEYNAME") )
  3794.   {
  3795.     v254 = appAtoi(a3);
  3796.     v255 = (*(int (__stdcall **)(int))(*((_DWORD *)v4 - 13) + 140))(v254);
  3797.     FOutputDevice::Log(a4, v255);
  3798.     return 1;
  3799.   }
  3800.   if ( ParseCommand(&a3, L"KEYBINDING") )
  3801.   {
  3802.     if ( (*(int (__stdcall **)(const wchar_t *, int *))(*((_DWORD *)v4 - 13) + 144))(a3, &v1439)
  3803.       && FString::Len((char *)v4 + 12 * v1439 + 644) )
  3804.     {
  3805.       v256 = FString::operator*((char *)v4 + 12 * v1439 + 644);
  3806.       FOutputDevice::Log(a4, v256);
  3807.     }
  3808.     return 1;
  3809.   }
  3810.   if ( ParseCommand(&a3, L"L2Restart") && !*(_DWORD *)GIsEditor )
  3811.   {
  3812.     L2ParamStack::L2ParamStack(&v1015, 10);
  3813.     LOBYTE(v1544) = 2;
  3814.     if ( dword_2077EE00 )
  3815.       (*(void (__thiscall **)(_DWORD, int *))(**((_DWORD **)dword_2077EE00 + 26) + 672))(
  3816.         *((_DWORD *)dword_2077EE00 + 26),
  3817.         &v1015);
  3818.     LOBYTE(v1544) = 0;
  3819.     L2ParamStack::~L2ParamStack(&v1015);
  3820.     goto LABEL_1312;
  3821.   }
  3822.   if ( ParseCommand(&a3, L"Warp") && !*(_DWORD *)GIsEditor )
  3823.   {
  3824.     FString::FString(&v1126);
  3825.     LOBYTE(v1544) = 3;
  3826.     Parse(a3, L"Name=", &v1126, 0);
  3827.     v939[1] = 0.0;
  3828.     v939[0] = 0.0;
  3829.     v938 = v257;
  3830.     *(float *)&a4 = COERCE_FLOAT(&v938);
  3831.     v258 = FString::operator*(&v1126);
  3832.     FName::FName(&v938, v258, 1);
  3833.     AActor::eventTriggerEvent(
  3834.       *(_DWORD **)(*((_DWORD *)v4 + 926) + 60),
  3835.       SLODWORD(v938),
  3836.       SLODWORD(v939[0]),
  3837.       SLODWORD(v939[1]));
  3838.     LOBYTE(v1544) = 0;
  3839.     FString::~FString(&v1126);
  3840.     return 1;
  3841.   }
  3842.   if ( ParseCommand(&a3, L"rwarp") && !*(_DWORD *)GIsEditor )
  3843.   {
  3844.     FString::FString(&v1144);
  3845.     LOBYTE(v1544) = 4;
  3846.     Parse(a3, L"Name=", &v1144, 0);
  3847.     v939[1] = 0.0;
  3848.     v939[0] = *(float *)(*((_DWORD *)v4 + 926) + 60);
  3849.     v938 = v939[0];
  3850.     *(float *)&a4 = COERCE_FLOAT(&v938);
  3851.     v259 = FString::operator*(&v1144);
  3852.     FName::FName(&v938, v259, 1);
  3853.     AActor::eventTriggerEvent(
  3854.       *(_DWORD **)(*((_DWORD *)v4 + 926) + 60),
  3855.       SLODWORD(v938),
  3856.       SLODWORD(v939[0]),
  3857.       SLODWORD(v939[1]));
  3858.     LOBYTE(v1544) = 0;
  3859.     FString::~FString(&v1144);
  3860.     return 1;
  3861.   }
  3862.   if ( ParseCommand(&a3, L"FadeOut") && !*(_DWORD *)GIsEditor )
  3863.   {
  3864.     if ( dword_2077EE00 )
  3865.     {
  3866.       v260 = (int *)sub_20007420(&v1103, 255, 255, 255, 255);
  3867.       UGameEngine::ScreenFadeOut((int)dword_2077EE00, 3000.0, *v260, 2);
  3868.     }
  3869.     return 1;
  3870.   }
  3871.   if ( ParseCommand(&a3, L"FadeIn") && !*(_DWORD *)GIsEditor )
  3872.   {
  3873.     if ( dword_2077EE00 )
  3874.       UGameEngine::ScreenFadeIn((int)dword_2077EE00, 3000.0, 2);
  3875.     return 1;
  3876.   }
  3877.   if ( ParseCommand(&a3, L"bbb") && !*(_DWORD *)GIsEditor )
  3878.   {
  3879.     if ( dword_2077EE00 )
  3880.     {
  3881.       v261 = sub_20007420(&v1098, 255, 255, 255, 255);
  3882.       sub_200E0BC0((float *)&v1515, v261);
  3883.       v262 = *(_DWORD *)(**(_DWORD **)(*((_DWORD *)dword_2077EE00 + 22) + 56) + 60) + 1644;
  3884.       *(_DWORD *)v262 = v1515;
  3885.       *(_DWORD *)(v262 + 4) = v1516;
  3886.       *(float *)(v262 + 8) = v1517;
  3887.       *(float *)(*(_DWORD *)(**(_DWORD **)(*((_DWORD *)dword_2077EE00 + 22) + 56) + 60) + 1632) = 0.0;
  3888.     }
  3889.     return 1;
  3890.   }
  3891.   if ( ParseCommand(&a3, L"bbbb") && !*(_DWORD *)GIsEditor )
  3892.   {
  3893.     if ( dword_2077EE00 )
  3894.     {
  3895.       v263 = sub_20007420(&v1079, 255, 255, 255, 255);
  3896.       sub_200E0BC0((float *)&v1515, v263);
  3897.       v264 = *(_DWORD *)(**(_DWORD **)(*((_DWORD *)dword_2077EE00 + 22) + 56) + 60) + 1644;
  3898.       *(_DWORD *)v264 = v1515;
  3899.       *(_DWORD *)(v264 + 4) = v1516;
  3900.       *(float *)(v264 + 8) = v1517;
  3901.       *(float *)(*(_DWORD *)(**(_DWORD **)(*((_DWORD *)dword_2077EE00 + 22) + 56) + 60) + 1632) = 1.0;
  3902.     }
  3903.     return 1;
  3904.   }
  3905.   if ( ParseCommand(&a3, L"MoveWarp") && !*(_DWORD *)GIsEditor )
  3906.   {
  3907.     v265 = (int *)FName::FName(&v1093, L"MoveWarp", 1);
  3908.     AActor::eventTriggerEvent(*(_DWORD **)(*((_DWORD *)v4 + 926) + 60), *v265, 0, 0);
  3909.     return 1;
  3910.   }
  3911.   if ( ParseCommand(&a3, L"L2WaterInfo") && !*(_DWORD *)GIsEditor )
  3912.   {
  3913.     *(_DWORD *)GIsLoadL2WaterEffect = 1;
  3914.     return 1;
  3915.   }
  3916.   if ( ParseCommand(&a3, L"L2WaterReflect") && !*(_DWORD *)GIsEditor )
  3917.   {
  3918.     *(_DWORD *)GIsL2WaterEffect = *(_DWORD *)GIsL2WaterEffect == 0;
  3919.     return 1;
  3920.   }
  3921.   if ( ParseCommand(&a3, L"L2UnderWaterEffect") && !*(_DWORD *)GIsEditor )
  3922.   {
  3923.     *(_DWORD *)GL2UnderWaterEffect = *(_DWORD *)GL2UnderWaterEffect == 0;
  3924.     return 1;
  3925.   }
  3926.   if ( ParseCommand(&a3, L"EnterChat") && !*(_DWORD *)GIsEditor )
  3927.   {
  3928.     *(_DWORD *)GIsEnterChatting = *(_DWORD *)GIsEnterChatting == 0;
  3929.     return 1;
  3930.   }
  3931.   if ( ParseCommand(&a3, L"YAWTURN") && !*(_DWORD *)GIsEditor )
  3932.   {
  3933.     v266 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  3934.     if ( v266 && UClass::IsA(v266, ALineagePlayerController::PrivateStaticClass) )
  3935.     {
  3936.       *(float *)&v1502 = 1.0;
  3937.       Parse(a3, L"SPEED=", &v1502);
  3938.       if ( *((_DWORD *)v4 + 932) == 2 )
  3939.       {
  3940.         a4 = *((struct FOutputDevice **)v4 + 933);
  3941.         v267 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  3942.         *(_DWORD *)(v267 + 452) = (signed int)(*(float *)&v1502 * *(float *)&a4 + (double)*(signed int *)(v267 + 452));
  3943.         a4 = *((struct FOutputDevice **)v4 + 933);
  3944.         *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 452) = (signed int)(*(float *)&v1502 * *(float *)&a4
  3945.                                                                                 + (double)*(signed int *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 452));
  3946.         *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 764) &= 0xFFFFFFF7;
  3947.       }
  3948.       return 1;
  3949.     }
  3950.     goto LABEL_708;
  3951.   }
  3952.   if ( ParseCommand(&a3, L"HideName") && !*(_DWORD *)GIsEditor )
  3953.   {
  3954.     *(_DWORD *)GIsL2HideName = *(_DWORD *)GIsL2HideName == 0;
  3955. LABEL_1312:
  3956.     v268 = (int (__cdecl *)(const wchar_t *, const wchar_t *, int *))Parse;
  3957.     goto LABEL_1313;
  3958.   }
  3959.   if ( !ParseCommand(&a3, L"aaa") || *(_DWORD *)GIsEditor )
  3960.   {
  3961.     if ( ParseCommand(&a3, L"L2EVENTON") && !*(_DWORD *)GIsEditor )
  3962.     {
  3963.       if ( Parse(a3, L"ID=", &v1217) )
  3964.         UGameEngine::L2EventTrigger(dword_2077EE00, v1217, 1);
  3965.       return 1;
  3966.     }
  3967.     if ( ParseCommand(&a3, L"L2EVENTOFF") && !*(_DWORD *)GIsEditor )
  3968.     {
  3969.       if ( Parse(a3, L"ID=", &v1250) )
  3970.         UGameEngine::L2EventTrigger(dword_2077EE00, v1250, 0);
  3971.       return 1;
  3972.     }
  3973.     if ( ParseCommand(&a3, L"GETITEM") && !*(_DWORD *)GIsEditor )
  3974.     {
  3975.       if ( UInput::KeyDown(*(UInput **)(*((_DWORD *)v4 + 926) + 120), 210) )
  3976.         return 1;
  3977.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  3978.       v269 = *((_DWORD *)v4 + 932);
  3979.       if ( v105 )
  3980.         v270 = v269 == 1;
  3981.       else
  3982.         v270 = v269 == 3;
  3983.       if ( v270 || !v269 )
  3984.       {
  3985.         v1577 = *(float *)(*((_DWORD *)v4 + 926) + 60);
  3986.         a2 = 200.0;
  3987.         v271 = (*(int (__stdcall **)(_DWORD, signed int))(**((_DWORD **)dword_2077EE00 + 26) + 976))(200.0, -1);
  3988.         v272 = (_DWORD *)v271;
  3989.         if ( v271 )
  3990.         {
  3991.           if ( v271 != -20 )
  3992.           {
  3993.             v273 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, int))(**((_DWORD **)dword_2077EE00 + 26)
  3994.                                                                                      + 232);
  3995.             v274 = (*(int (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 1544))();
  3996.             (*v273)(
  3997.               *((_DWORD *)dword_2077EE00 + 26),
  3998.               *v272,
  3999.               *(_DWORD *)(*(_DWORD *)(LODWORD(v1577) + 956) + 436),
  4000.               *(_DWORD *)(*(_DWORD *)(LODWORD(v1577) + 956) + 440),
  4001.               *(_DWORD *)(*(_DWORD *)(LODWORD(v1577) + 956) + 444),
  4002.               v274);
  4003.           }
  4004.         }
  4005.       }
  4006.       goto LABEL_1312;
  4007.     }
  4008.     if ( ParseCommand(&a3, L"ATTACK") && !*(_DWORD *)GIsEditor )
  4009.     {
  4010.       v275 = *((_DWORD *)v4 + 926);
  4011.       if ( UInput::KeyDown(*(UInput **)(v275 + 120), 210) )
  4012.         return 1;
  4013.       v276 = *(_BYTE *)(*(_DWORD *)(v275 + 60) + 1089);
  4014.       if ( !v276 || v276 == 4 || v276 == 2 )
  4015.         return 1;
  4016.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  4017.       v277 = *((_DWORD *)v4 + 932);
  4018.       if ( v105 )
  4019.         v278 = v277 == 1;
  4020.       else
  4021.         v278 = v277 == 3;
  4022.       if ( v278 || !v277 )
  4023.       {
  4024.         v279 = *(_DWORD **)(*((_DWORD *)v4 + 926) + 60);
  4025.         if ( *(_DWORD *)GIsL2NetLogin )
  4026.         {
  4027.           if ( (*(int (__thiscall **)(_DWORD *))(*v279 + 920))(v279)
  4028.             && *(_DWORD *)((*(int (__thiscall **)(_DWORD *))(*v279 + 920))(v279) + 88) != -1 )
  4029.           {
  4030.             v280 = (void (__thiscall **)(_DWORD, _DWORD))(**((_DWORD **)dword_2077EE00 + 26) + 232);
  4031.             v281 = (*(int (**)(void))(**((_DWORD **)dword_2077EE00 + 28) + 1544))();
  4032.             v282 = (*(int (__thiscall **)(_DWORD *, _DWORD, _DWORD, _DWORD, int))(*v279 + 920))(
  4033.                      v279,
  4034.                      *(_DWORD *)(v279[239] + 436),
  4035.                      *(_DWORD *)(v279[239] + 440),
  4036.                      *(_DWORD *)(v279[239] + 444),
  4037.                      v281);
  4038.             (*v280)(*((_DWORD *)dword_2077EE00 + 26), *(_DWORD *)(v282 + 88));
  4039.           }
  4040.           *((_DWORD *)dword_2077EE00 + 27) = 1;
  4041.         }
  4042.       }
  4043.       goto LABEL_1312;
  4044.     }
  4045.     if ( ParseCommand(&a3, L"SHOWCOMPASS") && !*(_DWORD *)GIsEditor )
  4046.     {
  4047.       *((_DWORD *)dword_2077EE00 + 60) = 0;
  4048.       return 1;
  4049.     }
  4050.     if ( ParseCommand(&a3, L"HIDECOMPASS") && !*(_DWORD *)GIsEditor )
  4051.     {
  4052.       result = 1;
  4053.       *((_DWORD *)dword_2077EE00 + 60) = 1;
  4054.       return result;
  4055.     }
  4056.     if ( ParseCommand(&a3, L"SCENE0") && !*(_DWORD *)GIsEditor )
  4057.     {
  4058.       v283 = (int *)FName::FName(&v1091, L"SceneManager0", 1);
  4059.       AActor::eventTriggerEvent(*(_DWORD **)(*((_DWORD *)v4 + 926) + 60), *v283, 0, 0);
  4060.       return 1;
  4061.     }
  4062.     if ( ParseCommand(&a3, L"SCENE1") && !*(_DWORD *)GIsEditor )
  4063.     {
  4064.       v284 = (int *)FName::FName(&v1056, L"SceneManager1", 1);
  4065.       AActor::eventTriggerEvent(*(_DWORD **)(*((_DWORD *)v4 + 926) + 60), *v284, 0, 0);
  4066.       return 1;
  4067.     }
  4068.     if ( ParseCommand(&a3, L"ANTIPORTAL") && !*(_DWORD *)GIsEditor )
  4069.     {
  4070.       if ( !Parse(a3, L"Range=", &v1218) )
  4071.         return 1;
  4072.       a2 = *(float *)&v1218;
  4073.       *(float *)LODWORD(GL2AntiPortalCR) = *(float *)&v1218;
  4074.       goto LABEL_1312;
  4075.     }
  4076.     if ( ParseCommand(&a3, L"TELEPORT") && !*(_DWORD *)GIsEditor )
  4077.     {
  4078.       LOBYTE(v1544) = 5;
  4079.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  4080.       v285 = *((_DWORD *)v4 + 932);
  4081.       if ( v105 )
  4082.         v286 = v285 == 1;
  4083.       else
  4084.         v286 = v285 == 3;
  4085.       if ( v286 || !v285 )
  4086.       {
  4087.         if ( !Parse(a3, L"X=", &v1409) || !Parse(a3, L"Y=", &v1410) || !Parse(a3, L"Z=", &v1411) )
  4088.           return 1;
  4089.         v287 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4090.         v288 = *(float *)(v287 + 956);
  4091.         if ( v288 != 0.0 )
  4092.         {
  4093.           v289 = *(int **)(v287 + 216);
  4094.           v939[1] = 0.0;
  4095.           LODWORD(v939[0]) = 1;
  4096.           v938 = 0.0;
  4097.           v105 = *(_DWORD *)GIsL2Seamless == 0;
  4098.           v934 = v288;
  4099.           if ( !v105 )
  4100.           {
  4101.             UGameEngine::L2_Teleport(
  4102.               (void *)dword_2077EE00,
  4103.               SLODWORD(v934),
  4104.               SLODWORD(v1409),
  4105.               SLODWORD(v1410),
  4106.               v1411,
  4107.               SLODWORD(v938),
  4108.               SLODWORD(v939[0]),
  4109.               v939[1]);
  4110.             v1544 = 0;
  4111.             goto LABEL_1312;
  4112.           }
  4113.           v290 = *v289;
  4114.           v935 = v1409;
  4115.           v936 = v1410;
  4116.           v937 = v1411;
  4117.           (*(void (__stdcall **)(float, float, float, float, _DWORD, _DWORD, _DWORD))(v290 + 160))(
  4118.             COERCE_FLOAT(LODWORD(v934)),
  4119.             COERCE_FLOAT(LODWORD(v1409)),
  4120.             COERCE_FLOAT(LODWORD(v1410)),
  4121.             COERCE_FLOAT(LODWORD(v1411)),
  4122.             LODWORD(v938),
  4123.             LODWORD(v939[0]),
  4124.             LODWORD(v939[1]));
  4125.         }
  4126.       }
  4127.       v1544 = 0;
  4128.       goto LABEL_1312;
  4129.     }
  4130.     if ( ParseCommand(&a3, L"Observer") && !*(_DWORD *)GIsEditor )
  4131.     {
  4132.       v291 = ParseCommand(&a3, L"On");
  4133.       v292 = *((_DWORD *)v4 + 926);
  4134.       if ( v292 )
  4135.       {
  4136.         v293 = *(_DWORD *)(v292 + 60);
  4137.         if ( v293 )
  4138.         {
  4139.           v294 = *(int **)(v293 + 956);
  4140.           if ( v294 )
  4141.           {
  4142.             if ( v291 )
  4143.             {
  4144.               v1575 = *(ULevel **)(v293 + 216);
  4145.               v1517 = *((float *)v294 + 111);
  4146.               a2 = v1517 + 50.0;
  4147.               v1517 = a2;
  4148.               v295 = sub_200D24A0(v293);
  4149.               if ( v295 )
  4150.               {
  4151.                 v939[1] = 0.0;
  4152.                 LODWORD(v939[0]) = 1;
  4153.                 v938 = 0.0;
  4154.                 if ( *(_DWORD *)GIsL2Seamless )
  4155.                 {
  4156.                   UGameEngine::L2_Teleport(
  4157.                     (void *)dword_2077EE00,
  4158.                     (int)v294,
  4159.                     v294[109],
  4160.                     v294[110],
  4161.                     v1517,
  4162.                     SLODWORD(v938),
  4163.                     SLODWORD(v939[0]),
  4164.                     v939[1]);
  4165.                 }
  4166.                 else
  4167.                 {
  4168.                   v296 = *(_DWORD *)v1575;
  4169.                   v935 = *((float *)v294 + 109);
  4170.                   v936 = *((float *)v294 + 110);
  4171.                   v937 = v1517;
  4172.                   (*(void (__thiscall **)(ULevel *, int *, float, _DWORD, float, _DWORD, _DWORD, _DWORD))(v296 + 160))(
  4173.                     v1575,
  4174.                     v294,
  4175.                     COERCE_FLOAT(LODWORD(v935)),
  4176.                     LODWORD(v936),
  4177.                     COERCE_FLOAT(LODWORD(v1517)),
  4178.                     LODWORD(v938),
  4179.                     LODWORD(v939[0]),
  4180.                     LODWORD(v939[1]));
  4181.                 }
  4182.                 *(_DWORD *)(v295 + 2652) |= 0x1000000u;
  4183.               }
  4184.             }
  4185.             else
  4186.             {
  4187.               v297 = sub_200D24A0(v293);
  4188.               *(_DWORD *)(v297 + 2652) &= 0xFEFFFFFF;
  4189.             }
  4190.           }
  4191.         }
  4192.       }
  4193.       goto LABEL_1312;
  4194.     }
  4195.     if ( ParseCommand(&a3, L"WAITMODECHANGE") && !*(_DWORD *)GIsEditor )
  4196.     {
  4197.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  4198.       v298 = *((_DWORD *)v4 + 932);
  4199.       if ( v105 )
  4200.         v299 = v298 == 1;
  4201.       else
  4202.         v299 = v298 == 3;
  4203.       if ( !v299 && v298 )
  4204.         return 1;
  4205.       v300 = *((_DWORD *)v4 + 926);
  4206.       if ( *(_DWORD *)GIsL2NetLogin )
  4207.       {
  4208.         v301 = *(_BYTE *)(*(_DWORD *)(v300 + 60) + 1089);
  4209.         if ( v301 )
  4210.         {
  4211.           if ( v301 == 1 )
  4212.           {
  4213.             v303 = **((_DWORD **)dword_2077EE00 + 26);
  4214.             v939[1] = 0.0;
  4215.             v116 = *(void (__stdcall **)(_DWORD))(v303 + 248);
  4216.           }
  4217.           else
  4218.           {
  4219.             if ( v301 != 4 )
  4220.               return 1;
  4221.             v304 = **((_DWORD **)dword_2077EE00 + 26);
  4222.             LODWORD(v939[1]) = 1;
  4223.             v116 = *(void (__stdcall **)(_DWORD))(v304 + 248);
  4224.           }
  4225.         }
  4226.         else
  4227.         {
  4228.           v302 = **((_DWORD **)dword_2077EE00 + 26);
  4229.           LODWORD(v939[1]) = 1;
  4230.           v116 = *(void (__stdcall **)(_DWORD))(v302 + 248);
  4231.         }
  4232.         goto LABEL_304;
  4233.       }
  4234.       v305 = *(_DWORD *)(v300 + 60);
  4235.       v306 = *(_BYTE *)(v305 + 1089);
  4236.       if ( v306 )
  4237.       {
  4238.         if ( v306 == 1 )
  4239.           *(_BYTE *)(v305 + 1089) = 0;
  4240.         return 1;
  4241.       }
  4242.       goto LABEL_1287;
  4243.     }
  4244.     if ( ParseCommand(&a3, L"MOVEMODECHANGE") && !*(_DWORD *)GIsEditor )
  4245.     {
  4246.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  4247.       v307 = *((_DWORD *)v4 + 932);
  4248.       if ( v105 )
  4249.         v308 = v307 == 1;
  4250.       else
  4251.         v308 = v307 == 3;
  4252.       if ( !v308 && v307 )
  4253.         return 1;
  4254.       FString::FString(&v1168);
  4255.       LOBYTE(v1544) = 7;
  4256.       Parse(a3, L"Mode=", &v1168, 0);
  4257.       v309 = FString::operator*(&v1168);
  4258.       if ( !appStricmp(v309, L"Walk") )
  4259.       {
  4260.         if ( !*(_DWORD *)GIsL2NetLogin )
  4261.         {
  4262.           *(_BYTE *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 1088) = 0;
  4263.           *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7336) = 80.0;
  4264. LABEL_898:
  4265.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7884) = *APawn::GetCurMoveAnimName(
  4266.                                                                                               *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  4267.                                                                                               &v1075);
  4268.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7888) = *APawn::GetCurMoveAnimName(
  4269.                                                                                               *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  4270.                                                                                               &v1088);
  4271.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7892) = *APawn::GetCurMoveAnimName(
  4272.                                                                                               *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  4273.                                                                                               &v1060);
  4274.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7896) = *APawn::GetCurMoveAnimName(
  4275.                                                                                               *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  4276.                                                                                               &v1087);
  4277.           LOBYTE(v1544) = 0;
  4278.           FString::~FString(&v1168);
  4279.           return 1;
  4280.         }
  4281. LABEL_895:
  4282.         (*(void (__stdcall **)(_DWORD))(**((_DWORD **)dword_2077EE00 + 26) + 244))(0);
  4283.         goto LABEL_898;
  4284.       }
  4285.       v310 = FString::operator*(&v1168);
  4286.       if ( appStricmp(v310, L"Run") )
  4287.       {
  4288.         v312 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4289.         v313 = *(_BYTE *)(v312 + 1088);
  4290.         if ( v313 )
  4291.         {
  4292.           if ( v313 != 1 )
  4293.             goto LABEL_898;
  4294.           if ( *(_DWORD *)GIsL2NetLogin )
  4295.             goto LABEL_895;
  4296.           *(_BYTE *)(v312 + 1088) = 0;
  4297.           v311 = 80.0;
  4298.         }
  4299.         else
  4300.         {
  4301.           if ( *(_DWORD *)GIsL2NetLogin )
  4302.           {
  4303.             (*(void (__stdcall **)(signed int))(**((_DWORD **)dword_2077EE00 + 26) + 244))(1);
  4304.             goto LABEL_898;
  4305.           }
  4306.           *(_BYTE *)(v312 + 1088) = 1;
  4307.           v311 = 120.0;
  4308.         }
  4309.       }
  4310.       else
  4311.       {
  4312.         if ( *(_DWORD *)GIsL2NetLogin )
  4313.         {
  4314.           (*(void (__stdcall **)(signed int))(**((_DWORD **)dword_2077EE00 + 26) + 244))(1);
  4315.           goto LABEL_898;
  4316.         }
  4317.         *(_BYTE *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 1088) = 1;
  4318.         v311 = 120.0;
  4319.       }
  4320.       *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7336) = v311;
  4321.       goto LABEL_898;
  4322.     }
  4323.     if ( ParseCommand(&a3, L"CONTROLLERVIEW") && !*(_DWORD *)GIsEditor )
  4324.     {
  4325.       v314 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4326.       if ( v314 && UClass::IsA(v314, ALineagePlayerController::PrivateStaticClass) )
  4327.         (*(void (__stdcall **)(_DWORD))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 976))(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60));
  4328.       return 1;
  4329.     }
  4330.     if ( ParseCommand(&a3, L"PAWNVIEW") && !*(_DWORD *)GIsEditor )
  4331.     {
  4332.       v315 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4333.       if ( !v315 )
  4334.         return 1;
  4335.       if ( !UClass::IsA(v315, ALineagePlayerController::PrivateStaticClass) )
  4336.         return 1;
  4337.       v316 = *(float **)(*((_DWORD *)v4 + 926) + 60);
  4338.       if ( !*((_DWORD *)v316 + 239) )
  4339.         return 1;
  4340.       v317 = *v316;
  4341.       v939[1] = v316[239];
  4342.       v116 = *(void (__stdcall **)(_DWORD))(LODWORD(v317) + 976);
  4343.       goto LABEL_304;
  4344.     }
  4345.     if ( ParseCommand(&a3, L"SPAWNPLAYERPAWN") && !*(_DWORD *)GIsEditor )
  4346.     {
  4347.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  4348.       v318 = *((_DWORD *)v4 + 932);
  4349.       if ( v105 )
  4350.         v319 = v318 == 1;
  4351.       else
  4352.         v319 = v318 == 3;
  4353.       if ( !v319 && v318 )
  4354.         return 1;
  4355.       v320 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4356.       if ( v320 && *(_DWORD *)(v320 + 216) )
  4357.       {
  4358.         if ( !*(_DWORD *)(v320 + 956) )
  4359.         {
  4360.           FString::FString(&v1119);
  4361.           LOBYTE(v1544) = 8;
  4362.           Parse(a3, L"Class=", &v1119, 0);
  4363.           if ( !Parse(a3, L"X=", &v1405) )
  4364.             v1405 = *(float *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 436);
  4365.           if ( !Parse(a3, L"Y=", &v1406) )
  4366.             v1406 = *(float *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 440);
  4367.           if ( !Parse(a3, L"Z=", &v1407) )
  4368.             v1407 = *(float *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 444);
  4369.           v321 = FString::operator*(&v1119);
  4370.           FString::FString(&v1068, v321);
  4371.           LOBYTE(v1544) = 9;
  4372.           v322 = *(ULevel **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216);
  4373.           v323 = (float *)FRotator::FRotator(&v995, 0, 0, 0);
  4374.           v938 = *v323;
  4375.           v939[0] = v323[1];
  4376.           v939[1] = v323[2];
  4377.           v935 = v1405;
  4378.           v936 = v1406;
  4379.           v937 = v1407;
  4380.           v934 = COERCE_FLOAT(&v1068);
  4381.           v933 = *(float *)(*((_DWORD *)v4 + 926) + 60);
  4382.           v324 = (int *)ULevel::GetGameInfo(v322);
  4383.           AGameInfo::eventSpawnPlayerPawn(
  4384.             v324,
  4385.             SLODWORD(v933),
  4386.             (int)&v1068,
  4387.             SLODWORD(v935),
  4388.             SLODWORD(v936),
  4389.             SLODWORD(v937),
  4390.             SLODWORD(v938),
  4391.             SLODWORD(v939[0]),
  4392.             SLODWORD(v939[1]));
  4393.           LOBYTE(v1544) = 8;
  4394.           FString::~FString(&v1068);
  4395.           v325 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4396.           if ( *(_DWORD *)(v325 + 956) && UClass::IsA(v325, ALineagePlayerController::PrivateStaticClass) )
  4397.             (*(void (__stdcall **)(_DWORD))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 976))(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956));
  4398.           LOBYTE(v1544) = 0;
  4399.           FString::~FString(&v1119);
  4400.         }
  4401.         return 1;
  4402.       }
  4403.       goto LABEL_708;
  4404.     }
  4405.     if ( ParseCommand(&a3, L"DeletePlayer") && !*(_DWORD *)GIsEditor )
  4406.     {
  4407.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  4408.       v326 = *((_DWORD *)v4 + 932);
  4409.       if ( v105 )
  4410.         v327 = v326 == 1;
  4411.       else
  4412.         v327 = v326 == 3;
  4413.       if ( v327 || !v326 )
  4414.       {
  4415.         v328 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4416.         if ( v328 )
  4417.         {
  4418.           v329 = *(_DWORD *)(v328 + 216);
  4419.           if ( v329 )
  4420.           {
  4421.             v330 = *(_DWORD *)(v328 + 956);
  4422.             if ( v330 )
  4423.             {
  4424.               (*(void (__stdcall **)(int, _DWORD))(*(_DWORD *)v329 + 164))(v330, 0);
  4425.               *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) = 0;
  4426.             }
  4427.           }
  4428.         }
  4429.       }
  4430.       return 1;
  4431.     }
  4432.     if ( ParseCommand(&a3, L"SPAWNACTOR") && !*(_DWORD *)GIsEditor )
  4433.     {
  4434.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  4435.       v331 = *((_DWORD *)v4 + 932);
  4436.       if ( v105 )
  4437.         v332 = v331 == 1;
  4438.       else
  4439.         v332 = v331 == 3;
  4440.       if ( !v332 && v331 )
  4441.         return 1;
  4442.       v333 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4443.       if ( v333 && *(_DWORD *)(v333 + 956) && *(_DWORD *)(v333 + 216) )
  4444.       {
  4445.         FString::FString(&v1170);
  4446.         LOBYTE(v1544) = 10;
  4447.         Parse(a3, L"Class=", &v1170, 0);
  4448.         if ( !Parse(a3, L"X=", &v1537) )
  4449.           v1537 = *(int *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 436);
  4450.         if ( !Parse(a3, L"Y=", &v1538) )
  4451.           *(float *)&v1538 = *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 440) + 100.0;
  4452.         if ( !Parse(a3, L"Z=", &v1539) )
  4453.           v1539 = *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 444);
  4454.         v334 = *(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216);
  4455.         *(float *)&a4 = COERCE_FLOAT(
  4456.                           UObject::StaticLoadClass(
  4457.                             AController::PrivateStaticClass,
  4458.                             0,
  4459.                             L"Engine.PlayerController",
  4460.                             0,
  4461.                             1,
  4462.                             0));
  4463.         v335 = (int (__thiscall **)(_DWORD *, struct FOutputDevice *))(*v334 + 184);
  4464.         v336 = FRotator::FRotator(&v993, 0, 0, 0);
  4465.         v939[1] = 0.0;
  4466.         v939[0] = 0.0;
  4467.         LODWORD(v938) = 1;
  4468.         LODWORD(v937) = 1;
  4469.         v936 = 0.0;
  4470.         v933 = *(float *)v336;
  4471.         v934 = *(float *)(v336 + 4);
  4472.         v935 = *(float *)(v336 + 8);
  4473.         v930 = *(float *)&v1537;
  4474.         v931 = *(float *)&v1538;
  4475.         v932 = v1539;
  4476.         v929 = v1539;
  4477.         v1573 = COERCE_FLOAT(&v929);
  4478.         FName::FName(&v929, 0);
  4479.         LODWORD(v939[1]) = a4;
  4480.         dword_20786E40 = (*v335)(v334, a4);
  4481.         v939[1] = 0.0;
  4482.         v939[0] = 0.0;
  4483.         v938 = 0.0;
  4484.         v337 = FString::operator*(&v1170);
  4485.         v338 = UObject::StaticLoadClass(
  4486.                  APawn::PrivateStaticClass,
  4487.                  0,
  4488.                  v337,
  4489.                  LODWORD(v938),
  4490.                  LODWORD(v939[0]),
  4491.                  LODWORD(v939[1]));
  4492.         if ( v338 )
  4493.         {
  4494.           v339 = (int (__thiscall **)(_DWORD *, int))(*v334 + 184);
  4495.           v340 = FRotator::FRotator(&v991, 0, 0, 0);
  4496.           v939[1] = 0.0;
  4497.           LODWORD(v939[0]) = dword_20786E40;
  4498.           v938 = 0.0;
  4499.           LODWORD(v937) = 1;
  4500.           v936 = 0.0;
  4501.           v933 = *(float *)v340;
  4502.           v934 = *(float *)(v340 + 4);
  4503.           v935 = *(float *)(v340 + 8);
  4504.           v930 = *(float *)&v1537;
  4505.           v931 = *(float *)&v1538;
  4506.           v932 = v1539;
  4507.           v929 = v1539;
  4508.           *(float *)&a4 = COERCE_FLOAT(&v929);
  4509.           FName::FName(&v929, 0);
  4510.           LODWORD(v939[1]) = v338;
  4511.           v341 = (*v339)(v334, v338);
  4512.           *(_DWORD *)(dword_20786E40 + 956) = v341;
  4513.           *(_DWORD *)(v341 + 7216) = dword_20786E40;
  4514.           *(_BYTE *)(dword_20786E40 + 182) = 4;
  4515.           *(_BYTE *)(*(_DWORD *)(dword_20786E40 + 956) + 182) = 4;
  4516.           v1326 = 0.0;
  4517.           v1327 = 0.0;
  4518.           v1328 = 1.0;
  4519.           v342 = **(_DWORD **)(dword_20786E40 + 956);
  4520.           v938 = 0.0;
  4521.           v939[0] = 0.0;
  4522.           v939[1] = 1.0;
  4523.           v937 = 0.0;
  4524.           LODWORD(v936) = 1;
  4525.           (*(void (__stdcall **)(signed int, _DWORD, _DWORD, _DWORD, _DWORD))(v342 + 468))(1, 0, 0.0, 0.0, 1.0);
  4526.           v1382 = *(float *)&v1537;
  4527.           v1383 = *(float *)&v1538;
  4528.           v1318 = v1537;
  4529.           v1319 = v1538;
  4530.           v1320 = v1539;
  4531.           v1384 = v1539 + 50.0;
  4532.           for ( i = 0; ; ++i )
  4533.           {
  4534.             v1206 = i;
  4535.             if ( i >= 30 )
  4536.               break;
  4537.             sub_2009B790((int)&v1018, 1.0);
  4538.             v1384 = v1384 + 30.0;
  4539.             v1320 = v1320 - 30.0;
  4540.             v344 = *(float *)(dword_20786E40 + 956);
  4541.             a4 = *(struct FOutputDevice **)(LODWORD(v344) + 748);
  4542.             v1577 = *(float *)&a4;
  4543.             v1574 = *(float *)(LODWORD(v344) + 752);
  4544.             v1322 = a4;
  4545.             v1323 = a4;
  4546.             v1324 = v1574;
  4547.             v345 = *v334;
  4548.             v938 = *(float *)&a4;
  4549.             LODWORD(v939[0]) = a4;
  4550.             v939[1] = v1574;
  4551.             LODWORD(v937) = 134;
  4552.             v936 = COERCE_FLOAT(&v1382);
  4553.             v935 = COERCE_FLOAT(&v1318);
  4554.             v934 = v344;
  4555.             v933 = COERCE_FLOAT(&v1018);
  4556.             (*(void (__thiscall **)(_DWORD *, char *, float, int *, float *, signed int, struct FOutputDevice *, struct FOutputDevice *, _DWORD))(v345 + 220))(
  4557.               v334,
  4558.               &v1018,
  4559.               COERCE_FLOAT(LODWORD(v344)),
  4560.               &v1318,
  4561.               &v1382,
  4562.               134,
  4563.               a4,
  4564.               a4,
  4565.               LODWORD(v1574));
  4566.             if ( v1021 != 0.0 )
  4567.             {
  4568.               *(float *)&a4 = v1022 * 12.0;
  4569.               if ( *(float *)&a4 < 1.899999976158142 )
  4570.                 v1021 = v1021 + 2.150000035762787 - *(float *)&a4;
  4571.               v346 = *v334;
  4572.               v939[1] = 0.0;
  4573.               v939[0] = 0.0;
  4574.               v938 = 0.0;
  4575.               v935 = v1019;
  4576.               v936 = v1020;
  4577.               v937 = v1021;
  4578.               (*(void (__thiscall **)(_DWORD *, _DWORD, float, float, _DWORD, _DWORD, _DWORD, _DWORD))(v346 + 160))(
  4579.                 v334,
  4580.                 *(_DWORD *)(dword_20786E40 + 956),
  4581.                 COERCE_FLOAT(LODWORD(v1019)),
  4582.                 COERCE_FLOAT(LODWORD(v1020)),
  4583.                 LODWORD(v1021),
  4584.                 0,
  4585.                 0,
  4586.                 0);
  4587.               break;
  4588.             }
  4589.           }
  4590.         }
  4591.         LOBYTE(v1544) = 0;
  4592.         FString::~FString(&v1170);
  4593.         return 1;
  4594.       }
  4595.       goto LABEL_708;
  4596.     }
  4597.     if ( ParseCommand(&a3, L"SPAWNNPCS") && !*(_DWORD *)GIsEditor )
  4598.     {
  4599.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  4600.       v347 = *((_DWORD *)v4 + 932);
  4601.       if ( v105 )
  4602.         v348 = v347 == 1;
  4603.       else
  4604.         v348 = v347 == 3;
  4605.       if ( !v348 && v347 )
  4606.         return 1;
  4607.       v349 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4608.       if ( v349 && *(_DWORD *)(v349 + 956) && *(_DWORD *)(v349 + 216) )
  4609.       {
  4610.         v1435 = 0;
  4611.         Parse(a3, L"Num=", &v1435);
  4612.         for ( j = 0; j < v1435; ++j )
  4613.         {
  4614.           v350 = ((int (*)(void))appRand)();
  4615.           a4 = (struct FOutputDevice *)(v350 % 1000);
  4616.           v351 = *((_DWORD *)v4 + 926);
  4617.           *(float *)&v1512 = (double)(v350 % 1000) + *(float *)(*(_DWORD *)(*(_DWORD *)(v351 + 60) + 956) + 436) - 500.0;
  4618.           v352 = *(_DWORD *)(v351 + 60);
  4619.           v353 = *(_DWORD *)(v352 + 956);
  4620.           v354 = ((int (*)(void))appRand)();
  4621.           a4 = (struct FOutputDevice *)(v354 % 1000);
  4622.           *(float *)&v1513 = (double)(v354 % 1000) + *(float *)(v353 + 440) - 500.0;
  4623.           v1514 = *(float *)(v353 + 444);
  4624.           v355 = *(_DWORD **)(v352 + 216);
  4625.           *(float *)&a4 = COERCE_FLOAT(
  4626.                             UObject::StaticLoadClass(
  4627.                               AController::PrivateStaticClass,
  4628.                               0,
  4629.                               L"Engine.PlayerController",
  4630.                               0,
  4631.                               1,
  4632.                               0));
  4633.           v356 = (int (__thiscall **)(_DWORD *, struct FOutputDevice *))(*v355 + 184);
  4634.           v357 = FRotator::FRotator(&v972, 0, 0, 0);
  4635.           v939[1] = 0.0;
  4636.           v939[0] = 0.0;
  4637.           LODWORD(v938) = 1;
  4638.           LODWORD(v937) = 1;
  4639.           v936 = 0.0;
  4640.           v933 = *(float *)v357;
  4641.           v934 = *(float *)(v357 + 4);
  4642.           v935 = *(float *)(v357 + 8);
  4643.           v930 = *(float *)&v1512;
  4644.           v931 = *(float *)&v1513;
  4645.           v932 = v1514;
  4646.           v929 = v1514;
  4647.           v1573 = COERCE_FLOAT(&v929);
  4648.           FName::FName(&v929, 0);
  4649.           LODWORD(v939[1]) = a4;
  4650.           v358 = (*v356)(v355, a4);
  4651.           FName::FName(&v1433, 0);
  4652.           for ( k = 0; !k; v1433 = *(_DWORD *)(k + 32) )
  4653.           {
  4654.             do
  4655.             {
  4656.               a4 = *(struct FOutputDevice **)(dword_207A14DC + 4);
  4657.               v360 = appRand(v940);
  4658.               LODWORD(v1574) = v360 % (signed int)a4;
  4659.               k = sub_200CD5D0((int *)&v1574, (int *)dword_207A14DC);
  4660.             }
  4661.             while ( !k );
  4662.           }
  4663.           v939[1] = 0.0;
  4664.           v939[0] = 0.0;
  4665.           v938 = 0.0;
  4666.           v361 = FName::operator*(&v1433);
  4667.           *(float *)&a4 = COERCE_FLOAT(
  4668.                             UObject::StaticLoadClass(
  4669.                               APawn::PrivateStaticClass,
  4670.                               0,
  4671.                               v361,
  4672.                               LODWORD(v938),
  4673.                               LODWORD(v939[0]),
  4674.                               LODWORD(v939[1])));
  4675.           if ( *(float *)&a4 != 0.0 )
  4676.           {
  4677.             LODWORD(v1577) = *v355 + 184;
  4678.             v362 = appRand(0) % 0x10000;
  4679.             v363 = FRotator::FRotator(&v970, 0, v362, LODWORD(v939[1]));
  4680.             v939[1] = 0.0;
  4681.             LODWORD(v939[0]) = v358;
  4682.             v938 = 0.0;
  4683.             LODWORD(v937) = 1;
  4684.             v936 = 0.0;
  4685.             v933 = *(float *)v363;
  4686.             v934 = *(float *)(v363 + 4);
  4687.             v935 = *(float *)(v363 + 8);
  4688.             v930 = *(float *)&v1512;
  4689.             v931 = *(float *)&v1513;
  4690.             v932 = v1514;
  4691.             v929 = v1514;
  4692.             v1573 = COERCE_FLOAT(&v929);
  4693.             FName::FName(&v929, 0);
  4694.             LODWORD(v939[1]) = a4;
  4695.             v364 = (*(int (__thiscall **)(_DWORD *, struct FOutputDevice *))LODWORD(v1577))(v355, a4);
  4696.             *(_DWORD *)(v358 + 956) = v364;
  4697.             *(_DWORD *)(v364 + 7216) = v358;
  4698.             *(_BYTE *)(v358 + 182) = 4;
  4699.             *(_BYTE *)(*(_DWORD *)(v358 + 956) + 182) = 4;
  4700.             v1314 = 0.0;
  4701.             v1315 = 0.0;
  4702.             v1316 = 1.0;
  4703.             v365 = **(_DWORD **)(v358 + 956);
  4704.             v938 = 0.0;
  4705.             v939[0] = 0.0;
  4706.             v939[1] = 1.0;
  4707.             v937 = 0.0;
  4708.             LODWORD(v936) = 1;
  4709.             (*(void (__thiscall **)(_DWORD, signed int, _DWORD, _DWORD, _DWORD, _DWORD))(v365 + 468))(
  4710.               *(_DWORD *)(v358 + 956),
  4711.               1,
  4712.               0,
  4713.               0.0,
  4714.               0.0,
  4715.               1.0);
  4716.             v1373 = *(float *)&v1512;
  4717.             v1374 = *(float *)&v1513;
  4718.             v1306 = v1512;
  4719.             v1307 = v1513;
  4720.             v1308 = v1514;
  4721.             v1375 = v1514 + 50.0;
  4722.             for ( l = 0; l < 30; ++l )
  4723.             {
  4724.               sub_2009B790((int)&v1023, 1.0);
  4725.               v1375 = v1375 + 30.0;
  4726.               v1308 = v1308 - 30.0;
  4727.               v366 = *(_DWORD *)(v358 + 956);
  4728.               a4 = *(struct FOutputDevice **)(v366 + 748);
  4729.               v1577 = *(float *)&a4;
  4730.               v1575 = *(ULevel **)(v366 + 752);
  4731.               v1310 = a4;
  4732.               v1311 = a4;
  4733.               v1312 = v1575;
  4734.               v367 = *v355;
  4735.               v938 = *(float *)&a4;
  4736.               LODWORD(v939[0]) = a4;
  4737.               LODWORD(v939[1]) = v1575;
  4738.               LODWORD(v937) = 134;
  4739.               v936 = COERCE_FLOAT(&v1373);
  4740.               v935 = COERCE_FLOAT(&v1306);
  4741.               v934 = *(float *)(v358 + 956);
  4742.               v933 = COERCE_FLOAT(&v1023);
  4743.               (*(void (__thiscall **)(_DWORD *, char *, float, int *, float *, signed int, struct FOutputDevice *, struct FOutputDevice *, ULevel *))(v367 + 220))(
  4744.                 v355,
  4745.                 &v1023,
  4746.                 COERCE_FLOAT(LODWORD(v934)),
  4747.                 &v1306,
  4748.                 &v1373,
  4749.                 134,
  4750.                 a4,
  4751.                 a4,
  4752.                 v1575);
  4753.               if ( v1026 != 0.0 )
  4754.               {
  4755.                 *(float *)&a4 = v1027 * 12.0;
  4756.                 if ( *(float *)&a4 < 1.899999976158142 )
  4757.                   v1026 = v1026 + 2.150000035762787 - *(float *)&a4;
  4758.                 v368 = *v355;
  4759.                 v939[1] = 0.0;
  4760.                 v939[0] = 0.0;
  4761.                 v938 = 0.0;
  4762.                 v935 = v1024;
  4763.                 v936 = v1025;
  4764.                 v937 = v1026;
  4765.                 (*(void (__thiscall **)(_DWORD *, _DWORD, float, float, _DWORD, _DWORD, _DWORD, _DWORD))(v368 + 160))(
  4766.                   v355,
  4767.                   *(_DWORD *)(v358 + 956),
  4768.                   COERCE_FLOAT(LODWORD(v1024)),
  4769.                   COERCE_FLOAT(LODWORD(v1025)),
  4770.                   LODWORD(v1026),
  4771.                   0,
  4772.                   0,
  4773.                   0);
  4774.                 break;
  4775.               }
  4776.             }
  4777.           }
  4778.         }
  4779.         return 1;
  4780.       }
  4781.       goto LABEL_708;
  4782.     }
  4783.     if ( ParseCommand(&a3, L"PlayerMove") && !*(_DWORD *)GIsEditor )
  4784.     {
  4785.       Parse(a3, L"index=", &v1494);
  4786.       if ( v1494 < 0 )
  4787.       {
  4788.         v1494 = appAtoi(a3);
  4789.         if ( v1494 < 0 )
  4790.           return 1;
  4791.       }
  4792.       v369 = *(float *)(*((_DWORD *)v4 + 926) + 60);
  4793.       *(float *)&v1571 = v369;
  4794.       if ( v369 == 0.0
  4795.         || !*(_DWORD *)(LODWORD(v369) + 956)
  4796.         || (v370 = *(ULevel **)(LODWORD(v369) + 216), *(float *)&v370 == 0.0) )
  4797.       {
  4798.         *(float *)&v370 = 0.0;
  4799.       }
  4800.       v1575 = v370;
  4801.       if ( *(float *)&v370 == 0.0 )
  4802.         return 1;
  4803.       v371 = 0;
  4804.       v1492 = 0;
  4805.       v372 = 0;
  4806.       while ( 1 )
  4807.       {
  4808.         v1247 = v371;
  4809.         v373 = *(_DWORD *)(v1571 + 716);
  4810.         if ( v371 >= *(_DWORD *)(v373 + 60) )
  4811.           break;
  4812.         v374 = sub_200E44B0(*(_DWORD *)(*(_DWORD *)(v373 + 56) + 4 * v371));
  4813.         if ( v374 )
  4814.         {
  4815.           if ( v1492 >= v1494 )
  4816.           {
  4817.             v372 = (float *)v374;
  4818.             break;
  4819.           }
  4820.           ++v1492;
  4821.         }
  4822.         ++v371;
  4823.       }
  4824.       if ( !v372 )
  4825.         return 1;
  4826.       v375 = *(_DWORD *)(v1571 + 956);
  4827.       v376 = v1575;
  4828.       if ( v375 )
  4829.       {
  4830.         (*(void (__thiscall **)(ULevel *, int, _DWORD))(*(_DWORD *)v1575 + 164))(v1575, v375, 0);
  4831.         *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) = 0;
  4832.       }
  4833.       FString::FString(&v1169);
  4834.       LOBYTE(v1544) = 11;
  4835.       if ( !(*(int (__stdcall **)(const wchar_t *, const wchar_t *, int *, const wchar_t *))(**(_DWORD **)GConfig + 12))(
  4836.               L"DefaultPlayer",
  4837.               L"Class",
  4838.               &v1169,
  4839.               L"user.ini") )
  4840.         FString::operator=(&v1169, L"LineageWarrior.MFighter");
  4841.       v377 = FString::operator*(&v1169);
  4842.       FString::FString(&v1101, v377);
  4843.       LOBYTE(v1544) = 12;
  4844.       v938 = v372[112];
  4845.       v939[0] = v372[113];
  4846.       v939[1] = v372[114];
  4847.       v935 = v372[109];
  4848.       v936 = v372[110];
  4849.       v937 = v372[111];
  4850.       v934 = COERCE_FLOAT(&v1101);
  4851.       v933 = *(float *)(*((_DWORD *)v4 + 926) + 60);
  4852.       v378 = (int *)ULevel::GetGameInfo(v376);
  4853.       AGameInfo::eventSpawnPlayerPawn(
  4854.         v378,
  4855.         SLODWORD(v933),
  4856.         (int)&v1101,
  4857.         SLODWORD(v935),
  4858.         SLODWORD(v936),
  4859.         SLODWORD(v937),
  4860.         SLODWORD(v938),
  4861.         SLODWORD(v939[0]),
  4862.         SLODWORD(v939[1]));
  4863.       LOBYTE(v1544) = 11;
  4864.       FString::~FString(&v1101);
  4865.       v379 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4866.       if ( *(_DWORD *)(v379 + 956) && UClass::IsA(v379, ALineagePlayerController::PrivateStaticClass) )
  4867.       {
  4868.         (*(void (__stdcall **)(_DWORD))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 976))(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956));
  4869.         User::User((User *)&v953);
  4870.         sub_20005B80(&v953, 1088);
  4871.         v954 = 0;
  4872.         v955 = 0;
  4873.         v956 = 0;
  4874.         v957 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  4875.         User::SetPawnResource((User *)&v953, 1);
  4876.       }
  4877.       LOBYTE(v1544) = 0;
  4878.       FString::~FString(&v1169);
  4879.       goto LABEL_1312;
  4880.     }
  4881.     if ( ParseCommand(&a3, L"DumpActor") && !*(_DWORD *)GIsEditor )
  4882.     {
  4883.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  4884.       v380 = *((_DWORD *)v4 + 932);
  4885.       if ( v105 )
  4886.         v381 = v380 == 1;
  4887.       else
  4888.         v381 = v380 == 3;
  4889.       if ( v381 || !v380 )
  4890.       {
  4891.         v382 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4892.         if ( v382 )
  4893.         {
  4894.           if ( *(_DWORD *)(v382 + 956) )
  4895.           {
  4896.             v383 = *(_DWORD *)(v382 + 216);
  4897.             if ( v383 )
  4898.             {
  4899.               if ( dword_20786E44 )
  4900.               {
  4901.                 for ( m = 0; ; ++m )
  4902.                 {
  4903.                   v1216 = m;
  4904.                   if ( m >= 50 )
  4905.                     break;
  4906.                   v396 = dword_20786E48[m];
  4907.                   if ( v396 )
  4908.                   {
  4909.                     v1577 = *(float *)(v396 + 7216);
  4910.                     (*(void (__thiscall **)(int, int, _DWORD))(*(_DWORD *)v383 + 164))(v383, v396, 0);
  4911.                     (*(void (__thiscall **)(int, float, _DWORD))(*(_DWORD *)v383 + 164))(
  4912.                       v383,
  4913.                       COERCE_FLOAT(LODWORD(v1577)),
  4914.                       0);
  4915.                     dword_20786E48[m] = 0;
  4916.                   }
  4917.                 }
  4918.                 dword_20786E44 = 0;
  4919.               }
  4920.               else
  4921.               {
  4922.                 FString::FString(&v1117);
  4923.                 LOBYTE(v1544) = 13;
  4924.                 Parse(a3, L"Class=", &v1117, 0);
  4925.                 v1488 = 0;
  4926.                 v1534 = 0;
  4927.                 v384 = 0;
  4928.                 v1532 = 0;
  4929.                 while ( v384 < 50 )
  4930.                 {
  4931.                   if ( v384 % 10 )
  4932.                   {
  4933.                     v1534 += 10;
  4934.                   }
  4935.                   else
  4936.                   {
  4937.                     v1488 += 10;
  4938.                     v1534 = 0;
  4939.                   }
  4940.                   v385 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  4941.                   v386 = *(float **)(v385 + 956);
  4942.                   *(float *)&v1401 = v386[109] + (double)v1488;
  4943.                   v1402 = v386[110] + (double)v1534;
  4944.                   v1403 = v386[111];
  4945.                   v387 = *(_DWORD **)(v385 + 216);
  4946.                   *(float *)&v1575 = COERCE_FLOAT(
  4947.                                        UObject::StaticLoadClass(
  4948.                                          AController::PrivateStaticClass,
  4949.                                          0,
  4950.                                          L"Engine.PlayerController",
  4951.                                          0,
  4952.                                          1,
  4953.                                          0));
  4954.                   v388 = (int (__thiscall **)(_DWORD *, ULevel *))(*v387 + 184);
  4955.                   v389 = FRotator::FRotator(&v1013, 0, 0, 0);
  4956.                   v939[1] = 0.0;
  4957.                   v939[0] = 0.0;
  4958.                   LODWORD(v938) = 1;
  4959.                   LODWORD(v937) = 1;
  4960.                   v936 = 0.0;
  4961.                   v933 = *(float *)v389;
  4962.                   v934 = *(float *)(v389 + 4);
  4963.                   v935 = *(float *)(v389 + 8);
  4964.                   v930 = *(float *)&v1401;
  4965.                   v931 = v1402;
  4966.                   v932 = v1403;
  4967.                   v929 = v1403;
  4968.                   v1573 = COERCE_FLOAT(&v929);
  4969.                   FName::FName(&v929, 0);
  4970.                   LODWORD(v939[1]) = v1575;
  4971.                   v390 = (*v388)(v387, v1575);
  4972.                   v939[1] = 0.0;
  4973.                   LODWORD(v939[0]) = 1;
  4974.                   v938 = 0.0;
  4975.                   v391 = FString::operator*(&v1117);
  4976.                   *(float *)&v1575 = COERCE_FLOAT(
  4977.                                        UObject::StaticLoadClass(
  4978.                                          APawn::PrivateStaticClass,
  4979.                                          0,
  4980.                                          v391,
  4981.                                          LODWORD(v938),
  4982.                                          LODWORD(v939[0]),
  4983.                                          LODWORD(v939[1])));
  4984.                   LODWORD(v1577) = *v387 + 184;
  4985.                   v392 = FRotator::FRotator(&v975, 0, 0, 0);
  4986.                   v939[1] = 0.0;
  4987.                   LODWORD(v939[0]) = v390;
  4988.                   v938 = 0.0;
  4989.                   LODWORD(v937) = 1;
  4990.                   v936 = 0.0;
  4991.                   v933 = *(float *)v392;
  4992.                   v934 = *(float *)(v392 + 4);
  4993.                   v935 = *(float *)(v392 + 8);
  4994.                   v930 = *(float *)&v1401;
  4995.                   v931 = v1402;
  4996.                   v932 = v1403;
  4997.                   v929 = v1403;
  4998.                   v1573 = COERCE_FLOAT(&v929);
  4999.                   FName::FName(&v929, 0);
  5000.                   LODWORD(v939[1]) = v1575;
  5001.                   v393 = (*(int (__thiscall **)(_DWORD *, ULevel *))LODWORD(v1577))(v387, v1575);
  5002.                   *(_DWORD *)(v390 + 956) = v393;
  5003.                   *(_DWORD *)(v393 + 7216) = v390;
  5004.                   *(_BYTE *)(v390 + 182) = 4;
  5005.                   *(_BYTE *)(*(_DWORD *)(v390 + 956) + 182) = 4;
  5006.                   v1302 = 0.0;
  5007.                   v1303 = 0.0;
  5008.                   a2 = 1.0;
  5009.                   v1304 = 1.0;
  5010.                   v394 = **(_DWORD **)(v390 + 956);
  5011.                   v938 = 0.0;
  5012.                   v939[0] = 0.0;
  5013.                   v939[1] = 1.0;
  5014.                   v937 = 0.0;
  5015.                   LODWORD(v936) = 1;
  5016.                   (*(void (__stdcall **)(signed int, _DWORD, _DWORD, _DWORD, _DWORD))(v394 + 468))(1, 0, 0.0, 0.0, 1.0);
  5017.                   dword_20786E48[v1532++] = *(_DWORD *)(v390 + 956);
  5018.                   v384 = v1532;
  5019.                 }
  5020.                 dword_20786E44 = 1;
  5021.                 LOBYTE(v1544) = 0;
  5022.                 FString::~FString(&v1117);
  5023.               }
  5024.             }
  5025.           }
  5026.         }
  5027.       }
  5028.       goto LABEL_1312;
  5029.     }
  5030.     if ( ParseCommand(&a3, L"SPAWNVEHICLES") && !*(_DWORD *)GIsEditor )
  5031.     {
  5032.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  5033.       v397 = *((_DWORD *)v4 + 932);
  5034.       if ( v105 )
  5035.         v398 = v397 == 1;
  5036.       else
  5037.         v398 = v397 == 3;
  5038.       if ( !v398 && v397 )
  5039.         return 1;
  5040.       v399 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5041.       if ( v399 && *(_DWORD *)(v399 + 956) && *(_DWORD *)(v399 + 216) )
  5042.       {
  5043.         FString::FString(&v1107);
  5044.         LOBYTE(v1544) = 14;
  5045.         Parse(a3, L"Class=", &v1107, 0);
  5046.         if ( !Parse(a3, L"X=", &v1397) )
  5047.           v1397 = *(int *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 436);
  5048.         if ( !Parse(a3, L"Y=", &v1398) )
  5049.           v1398 = *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 440) + 1000.0;
  5050.         if ( !Parse(a3, L"Z=", &v1399) )
  5051.           v1399 = *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 444);
  5052.         if ( !Parse(a3, L"YAW=", &v1431) )
  5053.           v1431 = 0;
  5054.         v400 = *(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216);
  5055.         v401 = FString::operator*(&v1107);
  5056.         v402 = UObject::StaticLoadClass(AVehicle::PrivateStaticClass, 0, v401, 0, 1, 0);
  5057.         v403 = (void (__thiscall **)(_DWORD *, int))(*v400 + 184);
  5058.         v404 = FRotator::FRotator(&v1010, 0, v1431, 0);
  5059.         v939[1] = 0.0;
  5060.         v939[0] = 0.0;
  5061.         v938 = 0.0;
  5062.         v937 = 0.0;
  5063.         v936 = 0.0;
  5064.         v933 = *(float *)v404;
  5065.         v934 = *(float *)(v404 + 4);
  5066.         v935 = *(float *)(v404 + 8);
  5067.         v930 = *(float *)&v1397;
  5068.         v931 = v1398;
  5069.         v932 = v1399;
  5070.         v929 = v1399;
  5071.         *(float *)&a4 = COERCE_FLOAT(&v929);
  5072.         FName::FName(&v929, 0);
  5073.         LODWORD(v939[1]) = v402;
  5074.         (*v403)(v400, v402);
  5075.         LOBYTE(v1544) = 0;
  5076.         FString::~FString(&v1107);
  5077.         return 1;
  5078.       }
  5079.       goto LABEL_708;
  5080.     }
  5081.     if ( ParseCommand(&a3, L"SAS") && !*(_DWORD *)GIsEditor )
  5082.     {
  5083.       if ( !(dword_21702E30 & 1) )
  5084.       {
  5085.         dword_21702E30 |= 1u;
  5086.         LOBYTE(v1544) = 15;
  5087.         sub_203A7070((int)&dword_21702DE8);
  5088.         LOBYTE(v1544) = 0;
  5089.       }
  5090.       v405 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5091.       if ( !v405 )
  5092.         return 1;
  5093.       if ( !*(_DWORD *)(v405 + 956) )
  5094.         return 1;
  5095.       if ( !*(_DWORD *)(v405 + 216) )
  5096.         return 1;
  5097.       v406 = sub_200D24A0(v405);
  5098.       if ( !v406 )
  5099.         return 1;
  5100.       if ( ParseCommand(&a3, L"ON") )
  5101.       {
  5102.         if ( !dword_21702E08 )
  5103.         {
  5104.           dword_21702DE8 = 2;
  5105.           dword_21702DEC = 7777;
  5106.           dword_21702DF0 = 0;
  5107.           dword_21702DF4 = 1;
  5108.           dword_21702E08 = (unsigned __int8)dword_21702DF0;
  5109.           v981 = 0.0;
  5110.           v407 = *(float **)(v406 + 956);
  5111.           *(float *)&a4 = v407[109] + 0.0;
  5112.           v1577 = v407[110] + 0.0;
  5113.           v1574 = v407[111] + 500.0;
  5114.           v1298 = a4;
  5115.           v1299 = v1577;
  5116.           v1300 = v1574;
  5117.           v408 = *(_DWORD *)dword_2077EE00;
  5118.           LODWORD(v939[1]) = 9999;
  5119.           LODWORD(v939[0]) = 0x2000;
  5120.           LODWORD(v938) = 450;
  5121.           v937 = v407[113];
  5122.           v934 = *(float *)&a4;
  5123.           v935 = v1577;
  5124.           v936 = v1574;
  5125.           (*(void (__stdcall **)(int *, _DWORD, struct FOutputDevice *, float, _DWORD, _DWORD, signed int, signed int, signed int))(v408 + 748))(
  5126.             &dword_21702DE8,
  5127.             0,
  5128.             a4,
  5129.             COERCE_FLOAT(LODWORD(v1577)),
  5130.             LODWORD(v1574),
  5131.             LODWORD(v937),
  5132.             450,
  5133.             0x2000,
  5134.             9999);
  5135.         }
  5136.         return 1;
  5137.       }
  5138.       if ( ParseCommand(&a3, L"OFF") )
  5139.       {
  5140.         if ( !dword_21702E08 )
  5141.           return 1;
  5142.         v409 = sub_200966D0(dword_21702E08);
  5143.         v410 = v409;
  5144.         if ( v409 && !*(_DWORD *)(v409 + 8416) )
  5145.         {
  5146.           sub_202BE030(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216), v409);
  5147.           (*(void (__stdcall **)(int, _DWORD))(**(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216) + 164))(
  5148.             v410,
  5149.             0);
  5150.         }
  5151.         dword_21702E08 = 0;
  5152.         *(float *)&v1571 = 0.0;
  5153.         v411 = &v1571;
  5154.       }
  5155.       else
  5156.       {
  5157.         if ( !ParseCommand(&a3, L"RIDE") )
  5158.         {
  5159.           if ( ParseCommand(&a3, L"D") )
  5160.           {
  5161.             if ( dword_21702E08 )
  5162.             {
  5163.               if ( *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 100) > 0 )
  5164.               {
  5165.                 v418 = (AVehicleServerPart *)sub_200966D0(dword_21702E08);
  5166.                 if ( v418 )
  5167.                 {
  5168.                   if ( !*((_DWORD *)v418 + 2104) )
  5169.                   {
  5170.                     *(float *)&v1475 = 0.0;
  5171.                     v1476 = 0.0;
  5172.                     v1477 = 0.0;
  5173.                     LODWORD(v939[1]) = 1;
  5174.                     AVehicle::SetDriverPawn(
  5175.                       v418,
  5176.                       8888,
  5177.                       *(_DWORD *)(v406 + 956),
  5178.                       COERCE_INT(0.0),
  5179.                       COERCE_INT(0.0),
  5180.                       COERCE_INT(0.0),
  5181.                       1u);
  5182.                   }
  5183.                 }
  5184.               }
  5185.             }
  5186.           }
  5187.           else if ( ParseCommand(&a3, L"P") )
  5188.           {
  5189.             if ( dword_21702E08 )
  5190.             {
  5191.               v419 = (AVehicleServerPart *)sub_200966D0(dword_21702E08);
  5192.               if ( v419 )
  5193.               {
  5194.                 if ( *((_DWORD *)v419 + 2104) )
  5195.                 {
  5196.                   v1469 = 0.0;
  5197.                   v1470 = 0.0;
  5198.                   v1471 = 0.0;
  5199.                   AVehicle::SetDriverPawn(v419, 0, 0, COERCE_INT(0.0), COERCE_INT(0.0), COERCE_INT(0.0), 1u);
  5200.                 }
  5201.               }
  5202.             }
  5203.           }
  5204.           else if ( ParseCommand(&a3, L"MOVE") )
  5205.           {
  5206.             if ( dword_21702E08 )
  5207.             {
  5208.               v420 = sub_200966D0(dword_21702E08);
  5209.               if ( v420 )
  5210.               {
  5211.                 v1429 = 0;
  5212.                 if ( Parse(a3, L"YAW=", &v1429) )
  5213.                 {
  5214.                   *(_DWORD *)(v420 + 820) = v1429;
  5215.                 }
  5216.                 else
  5217.                 {
  5218.                   v1524 = 0.0;
  5219.                   v1525 = 0.0;
  5220.                   v1526 = 0.0;
  5221.                   Parse(a3, L"X=", &v1524);
  5222.                   Parse(a3, L"Y=", &v1525);
  5223.                   Parse(a3, L"Z=", &v1526);
  5224.                   v1524 = *(float *)(v420 + 436) + v1524;
  5225.                   v1525 = *(float *)(v420 + 440) + v1525;
  5226.                   v1526 = *(float *)(v420 + 444) + v1526;
  5227.                   v421 = *(_DWORD *)dword_2077EE00;
  5228.                   v940 = *(const wchar_t **)(v420 + 436);
  5229.                   v941 = *(_DWORD *)(v420 + 440);
  5230.                   v942 = *(struct FOutputDevice **)(v420 + 444);
  5231.                   (*(void (__stdcall **)(int *, _DWORD, _DWORD, _DWORD))(v421 + 752))(
  5232.                     &dword_21702DE8,
  5233.                     LODWORD(v1524),
  5234.                     LODWORD(v1525),
  5235.                     LODWORD(v1526));
  5236.                 }
  5237.               }
  5238.             }
  5239.           }
  5240.           return 1;
  5241.         }
  5242.         if ( !dword_21702E08 )
  5243.           return 1;
  5244.         a4 = (struct FOutputDevice *)dword_21702E08;
  5245.         v412 = *(float *)(dword_21702E08 + 436);
  5246.         v1295 = *(float *)(dword_21702E08 + 440);
  5247.         v1296 = *(float *)(dword_21702E08 + 444);
  5248.         v413 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5249.         v414 = *(_DWORD *)(v413 + 956);
  5250.         v1296 = *(float *)(v414 + 752) + v1296;
  5251.         v415 = **(_DWORD **)(v413 + 216);
  5252.         v939[1] = 0.0;
  5253.         LODWORD(v939[0]) = 1;
  5254.         v938 = 0.0;
  5255.         v935 = v412;
  5256.         v936 = v1295;
  5257.         v937 = v1296;
  5258.         (*(void (__stdcall **)(int, float, float, float, _DWORD, signed int, _DWORD))(v415 + 160))(
  5259.           v414,
  5260.           COERCE_FLOAT(LODWORD(v412)),
  5261.           COERCE_FLOAT(LODWORD(v1295)),
  5262.           COERCE_FLOAT(LODWORD(v1296)),
  5263.           0,
  5264.           1,
  5265.           0);
  5266.         v416 = *((signed int *)a4 + 22);
  5267.         if ( v416 <= 0 )
  5268.           v416 = 9999;
  5269.         v1576 = *(float *)&v416;
  5270.         v411 = (int *)&v1576;
  5271.       }
  5272.       LODWORD(v939[1]) = v411;
  5273.       v417 = sub_203A6FF0((int)&dword_21702DE8);
  5274.       APawn::SetVehicle(*(APawn **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956), v417, (const int *)LODWORD(v939[1]));
  5275.       return 1;
  5276.     }
  5277.     if ( ParseCommand(&a3, L"TRAIL") && !*(_DWORD *)GIsEditor )
  5278.     {
  5279.       v422 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5280.       if ( !v422 || !*(_DWORD *)(v422 + 956) || !*(_DWORD *)(v422 + 216) )
  5281.         return 1;
  5282.       FString::FString(&v1482);
  5283.       LOBYTE(v1544) = 16;
  5284.       if ( Parse(a3, L"Name=", &v1482, 0) )
  5285.       {
  5286.         LODWORD(v939[1]) = FString::operator*(&v1482);
  5287.         FString::Printf(&v1100, L"LineageEffect.%s", v939[1]);
  5288.         LOBYTE(v1544) = 17;
  5289.         if ( dword_21601DC8 )
  5290.           (*(void (__stdcall **)(int, _DWORD))(**(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216) + 164))(
  5291.             dword_21601DC8,
  5292.             0);
  5293.         v423 = *(float **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  5294.         v1475 = *((int *)v423 + 109);
  5295.         v1476 = v423[110];
  5296.         v1477 = v423[111];
  5297.         v1469 = v423[112];
  5298.         v1470 = v423[113];
  5299.         v1471 = v423[114];
  5300.         v424 = FString::operator*(&v1100);
  5301.         *(float *)&a4 = COERCE_FLOAT(UObject::StaticLoadClass(AActor::PrivateStaticClass, 0, v424, 0, 0x2000, 0));
  5302.         if ( *(float *)&a4 == 0.0 )
  5303.         {
  5304.           v429 = (int *)dword_21601DC8;
  5305.         }
  5306.         else
  5307.         {
  5308.           v425 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5309.           v426 = *(_DWORD **)(v425 + 216);
  5310.           v427 = (int (__thiscall **)(_DWORD *, struct FOutputDevice *))(*v426 + 184);
  5311.           v939[1] = 0.0;
  5312.           v939[0] = *(float *)(v425 + 956);
  5313.           v938 = 0.0;
  5314.           LODWORD(v937) = 1;
  5315.           v936 = 0.0;
  5316.           v933 = v1469;
  5317.           v934 = v1470;
  5318.           v935 = v1471;
  5319.           v930 = *(float *)&v1475;
  5320.           v931 = v1476;
  5321.           v932 = v1477;
  5322.           v929 = v1477;
  5323.           v1573 = COERCE_FLOAT(&v929);
  5324.           FName::FName(&v929, 0);
  5325.           LODWORD(v939[1]) = a4;
  5326.           v428 = (*v427)(v426, a4);
  5327.           v429 = (int *)sub_200D2650(v428);
  5328.           dword_21601DC8 = (int)v429;
  5329.         }
  5330.         v1287 = 0.0;
  5331.         v1288 = 0.0;
  5332.         v1289 = 1.0;
  5333.         v430 = *v429;
  5334.         LODWORD(v939[1]) = 1;
  5335.         v937 = 0.0;
  5336.         v938 = 0.0;
  5337.         v939[0] = 1.0;
  5338.         (*(void (__thiscall **)(int *, _DWORD, _DWORD, _DWORD, _DWORD, signed int))(v430 + 372))(
  5339.           v429,
  5340.           *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  5341.           0.0,
  5342.           0.0,
  5343.           1.0,
  5344.           1);
  5345.         LOBYTE(v1544) = 16;
  5346.         FString::~FString(&v1100);
  5347.         LOBYTE(v1544) = 0;
  5348.         FString::~FString(&v1482);
  5349.         return 1;
  5350.       }
  5351.       if ( dword_21601DC8 )
  5352.       {
  5353.         if ( *(_DWORD *)(dword_21601DC8 + 960) > 0 )
  5354.         {
  5355.           v431 = (float *)sub_200E44E0(**(_DWORD **)(dword_21601DC8 + 956));
  5356.           if ( v431 )
  5357.           {
  5358.             if ( Parse(a3, L"Attach=", &v1482, 0) )
  5359.             {
  5360.               FName::FName(&v1486, 0);
  5361.               if ( FString::operator==(&v1482, L"RH") )
  5362.               {
  5363.                 v1486 = *(_DWORD *)(*(int (__stdcall **)(char *))(**(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60)
  5364.                                                                               + 956)
  5365.                                                                 + 560))(&v1073);
  5366.               }
  5367.               else if ( FString::operator==(&v1482, L"LH") )
  5368.               {
  5369.                 v1486 = *(_DWORD *)(*(int (__stdcall **)(char *))(**(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60)
  5370.                                                                               + 956)
  5371.                                                                 + 564))(&v1085);
  5372.               }
  5373.               AActor::AttachToBone(*(void **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956), dword_21601DC8, v1486, 0);
  5374.               LOBYTE(v1544) = 0;
  5375.               FString::~FString(&v1482);
  5376.               return 1;
  5377.             }
  5378.             if ( Parse(a3, L"MaxParticles=", &v1558) )
  5379.             {
  5380.               (*(void (__thiscall **)(float *))(*(_DWORD *)v431 + 112))(v431);
  5381.               *((_DWORD *)v431 + 68) = v1558;
  5382.               (*(void (__thiscall **)(float *, int))(*(_DWORD *)v431 + 108))(v431, v1558);
  5383.               LOBYTE(v1544) = 0;
  5384.               FString::~FString(&v1482);
  5385.               return 1;
  5386.             }
  5387.             if ( Parse(a3, L"MaxPointsPerTrail=", &v1558) )
  5388.             {
  5389.               (*(void (__thiscall **)(float *))(*(_DWORD *)v431 + 112))(v431);
  5390.               *((_DWORD *)v431 + 317) = v1558;
  5391.               (*(void (__thiscall **)(float *, _DWORD))(*(_DWORD *)v431 + 108))(v431, *((_DWORD *)v431 + 68));
  5392.               LOBYTE(v1544) = 0;
  5393.               FString::~FString(&v1482);
  5394.               return 1;
  5395.             }
  5396.             if ( Parse(a3, L"PointLifeTime=", &v1570) )
  5397.             {
  5398.               v431[321] = v1570;
  5399.               v431[225] = v1570;
  5400.               v431[226] = v1570;
  5401.               LOBYTE(v1544) = 0;
  5402.               FString::~FString(&v1482);
  5403.               return 1;
  5404.             }
  5405.             if ( Parse(a3, L"DistanceThreshold=", &v1570) )
  5406.             {
  5407.               v431[318] = v1570;
  5408.               LOBYTE(v1544) = 0;
  5409.               FString::~FString(&v1482);
  5410.               return 1;
  5411.             }
  5412.             if ( Parse(a3, L"UseCrossedSheets=", &v1558) )
  5413.             {
  5414.               *((_DWORD *)v431 + 319) ^= ((unsigned __int8)v1558 ^ (unsigned __int8)*((_DWORD *)v431 + 319)) & 1;
  5415.               LOBYTE(v1544) = 0;
  5416.               FString::~FString(&v1482);
  5417.               return 1;
  5418.             }
  5419.             if ( Parse(a3, L"InitialParticlesPerSecond=", &v1558) )
  5420.             {
  5421.               v431[208] = (double)v1558;
  5422.               LOBYTE(v1544) = 0;
  5423.               FString::~FString(&v1482);
  5424.               return 1;
  5425.             }
  5426.             if ( Parse(a3, L"Opacity=", &v1570) )
  5427.             {
  5428.               v431[52] = v1570;
  5429.               LOBYTE(v1544) = 0;
  5430.               FString::~FString(&v1482);
  5431.               return 1;
  5432.             }
  5433.             if ( Parse(a3, L"VelocityMinThreshold=", &v1570) )
  5434.             {
  5435.               v431[322] = v1570;
  5436.               LOBYTE(v1544) = 0;
  5437.               FString::~FString(&v1482);
  5438.               return 1;
  5439.             }
  5440.             if ( Parse(a3, L"VelocityMaxThreshold=", &v1570) )
  5441.             {
  5442.               v431[323] = v1570;
  5443.               LOBYTE(v1544) = 0;
  5444.               FString::~FString(&v1482);
  5445.               return 1;
  5446.             }
  5447.             if ( Parse(a3, L"TrailShadeType=", &v1558) )
  5448.             {
  5449.               *((_BYTE *)v431 + 1264) = v1558;
  5450.               LOBYTE(v1544) = 0;
  5451.               FString::~FString(&v1482);
  5452.               return 1;
  5453.             }
  5454.             if ( Parse(a3, L"StartLocationOffset=", &v1570) )
  5455.             {
  5456.               v431[84] = v1570;
  5457.               LOBYTE(v1544) = 0;
  5458.               FString::~FString(&v1482);
  5459.               return 1;
  5460.             }
  5461.             if ( Parse(a3, L"StartSizeRange=", &v1570) )
  5462.             {
  5463.               v431[180] = v1570;
  5464.               v431[181] = v1570;
  5465.               LOBYTE(v1544) = 0;
  5466.               FString::~FString(&v1482);
  5467.               return 1;
  5468.             }
  5469.             if ( Parse(a3, L"Texture=", &v1482, 0) )
  5470.             {
  5471.               v432 = FString::operator*(&v1482);
  5472.               v433 = UObject::StaticFindObject(&UTexture::PrivateStaticClass, -1, v432, 0);
  5473.               v434 = sub_200D4BA0(v433);
  5474.               if ( v434
  5475.                 || (v435 = FString::operator*(&v1482),
  5476.                     v436 = UObject::StaticLoadObject(&UTexture::PrivateStaticClass, 0, v435, 0, 0, 0),
  5477.                     (v434 = sub_200D4BA0(v436)) != 0) )
  5478.               {
  5479.                 *((_DWORD *)v431 + 211) = v434;
  5480.               }
  5481.             }
  5482.           }
  5483.         }
  5484.       }
  5485.       LOBYTE(v1544) = 0;
  5486.       FString::~FString(&v1482);
  5487.       return 1;
  5488.     }
  5489.     if ( ParseCommand(&a3, L"SPS") && !*(_DWORD *)GIsEditor )
  5490.     {
  5491.       v437 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5492.       if ( v437 && *(_DWORD *)(v437 + 956) && *(_DWORD *)(v437 + 216) )
  5493.       {
  5494.         *(float *)&v438 = COERCE_FLOAT(sub_20093630(72));
  5495.         a4 = v438;
  5496.         LOBYTE(v1544) = 18;
  5497.         if ( *(float *)&v438 == 0.0 )
  5498.           v439 = 0;
  5499.         else
  5500.           v439 = (_DWORD *)sub_203A7070((int)v438);
  5501.         LOBYTE(v1544) = 0;
  5502.         *v439 = 1;
  5503.         v439[1] = 0;
  5504.         v439[8] = 0;
  5505.         v440 = *(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  5506.         (*(void (__stdcall **)(_DWORD *, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)dword_2077EE00 + 724))(
  5507.           v439,
  5508.           v440[109],
  5509.           v440[110],
  5510.           v440[111],
  5511.           v440[113]);
  5512.       }
  5513.       return 1;
  5514.     }
  5515.     if ( ParseCommand(&a3, L"SPSM") && !*(_DWORD *)GIsEditor )
  5516.     {
  5517.       *(float *)&v441 = COERCE_FLOAT(sub_20093630(72));
  5518.       a4 = v441;
  5519.       LOBYTE(v1544) = 19;
  5520.       if ( *(float *)&v441 == 0.0 )
  5521.         v442 = 0;
  5522.       else
  5523.         v442 = (_DWORD *)sub_203A7070((int)v441);
  5524.       LOBYTE(v1544) = 0;
  5525.       *v442 = 1;
  5526.       v442[1] = 0;
  5527.       v442[8] = 0;
  5528.       v443 = *(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  5529.       (*(void (__stdcall **)(_DWORD *, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)dword_2077EE00 + 724))(
  5530.         v442,
  5531.         v443[109],
  5532.         v443[110],
  5533.         v443[111],
  5534.         v443[113]);
  5535.       v1283 = 0.0;
  5536.       v1284 = 0.0;
  5537.       v1285 = 0.0;
  5538.       (*(void (__stdcall **)(_DWORD *, signed int, signed int, _DWORD, _DWORD, _DWORD))(*(_DWORD *)dword_2077EE00 + 732))(
  5539.         v442,
  5540.         10,
  5541.         10,
  5542.         0.0,
  5543.         0.0,
  5544.         0.0);
  5545.       return 1;
  5546.     }
  5547.     if ( ParseCommand(&a3, L"SPAWNITEM") && !*(_DWORD *)GIsEditor )
  5548.     {
  5549.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  5550.       v444 = *((_DWORD *)v4 + 932);
  5551.       if ( v105 )
  5552.         v445 = v444 == 1;
  5553.       else
  5554.         v445 = v444 == 3;
  5555.       if ( !v445 && v444 )
  5556.         return 1;
  5557.       v446 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5558.       if ( v446 )
  5559.       {
  5560.         v447 = *(float **)(v446 + 956);
  5561.         if ( v447 )
  5562.         {
  5563.           v448 = *(_DWORD **)(v446 + 216);
  5564.           if ( v448 )
  5565.           {
  5566.             v1279 = v447[109];
  5567.             v1280 = v447[110] + 100.0;
  5568.             v1281 = v447[111] - v447[188];
  5569.             v449 = UObject::StaticLoadClass(AL2Pickup::PrivateStaticClass, 0, L"Engine.L2Pickup", 0, 1, 0);
  5570.             FName::FName(&v1189, L"ItemBox", 1);
  5571.             v450 = (int (__thiscall **)(_DWORD *, int, int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, signed int, _DWORD, _DWORD, _DWORD))(*v448 + 184);
  5572.             v451 = (_DWORD *)FRotator::FRotator(&v1008, 0, 0, 0);
  5573.             v452 = (*v450)(
  5574.                      v448,
  5575.                      v449,
  5576.                      v1189,
  5577.                      LODWORD(v1279),
  5578.                      LODWORD(v1280),
  5579.                      LODWORD(v1281),
  5580.                      *v451,
  5581.                      v451[1],
  5582.                      v451[2],
  5583.                      0,
  5584.                      1,
  5585.                      0,
  5586.                      0,
  5587.                      0);
  5588.             v453 = UObject::StaticFindObject(UMesh::PrivateStaticClass, -1, L"LineageWeapons.Box_m00_et", 0);
  5589.             *(_DWORD *)(v452 + 248) = v453;
  5590.             if ( !v453 )
  5591.               *(_DWORD *)(v452 + 248) = UObject::StaticLoadObject(
  5592.                                           USkeletalMesh::PrivateStaticClass,
  5593.                                           0,
  5594.                                           L"LineageWeapons.Box_m00_et",
  5595.                                           0,
  5596.                                           0,
  5597.                                           0);
  5598.             return 1;
  5599.           }
  5600.         }
  5601.       }
  5602.       goto LABEL_16;
  5603.     }
  5604.     if ( ParseCommand(&a3, L"SPAWNEDPAWNMOVETO") )
  5605.     {
  5606.       if ( !*(_DWORD *)GIsEditor )
  5607.       {
  5608.         v454 = *((_DWORD *)v4 + 932);
  5609.         if ( v454 != 4 && v454 != 2 && v454 == 1 )
  5610.         {
  5611.           if ( dword_20786E40 && *(_DWORD *)(dword_20786E40 + 956) )
  5612.           {
  5613.             v1275 = 0.0;
  5614.             v1276 = 0.0;
  5615.             v1277 = 0.0;
  5616.             v938 = 0.0;
  5617.             v939[0] = 0.0;
  5618.             v939[1] = 0.0;
  5619.             v937 = 0.0;
  5620.             v936 = 1.0;
  5621.             v935 = 0.0;
  5622.             AController::MoveTo(
  5623.               (float *)dword_20786E40,
  5624.               *((float *)dword_2077EE00 + 144),
  5625.               *((float *)dword_2077EE00 + 145),
  5626.               *((float *)dword_2077EE00 + 146),
  5627.               0,
  5628.               1.0,
  5629.               0,
  5630.               COERCE_INT(0.0),
  5631.               COERCE_INT(0.0),
  5632.               COERCE_INT(0.0));
  5633.             return 1;
  5634.           }
  5635. LABEL_1184:
  5636.           FOutputDevice::Logf(a4, L"%s Bad Axis command", a3);
  5637.           return 1;
  5638.         }
  5639.       }
  5640.     }
  5641.     if ( ParseCommand(&a3, L"STOPPAWNMOVING") && !*(_DWORD *)GIsEditor )
  5642.     {
  5643.       v105 = ParseCommand(&a3, L"OnRelease") == 0;
  5644.       v455 = *((_DWORD *)v4 + 932);
  5645.       if ( v105 )
  5646.         v456 = v455 == 1;
  5647.       else
  5648.         v456 = v455 == 3;
  5649.       if ( !v456 && v455 )
  5650.         return 1;
  5651.       v457 = *(_DWORD **)(*((_DWORD *)v4 + 926) + 60);
  5652.       if ( v457 && v457[239] )
  5653.       {
  5654.         (*(void (**)(void))(*v457 + 860))();
  5655.         return 1;
  5656.       }
  5657.       goto LABEL_1184;
  5658.     }
  5659.     if ( ParseCommand(&a3, L"DISTANCEFOG") && !*(_DWORD *)GIsEditor && *((_DWORD *)v4 + 932) == 1 )
  5660.     {
  5661.       v458 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5662.       if ( v458 && *(_DWORD *)(v458 + 216) )
  5663.       {
  5664.         for ( n = 0; ; ++n )
  5665.         {
  5666.           v1244 = n;
  5667.           v460 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216);
  5668.           if ( n >= *(_DWORD *)(v460 + 60) )
  5669.             break;
  5670.           v461 = sub_200E4510(*(_DWORD *)(*(_DWORD *)(v460 + 56) + 4 * n));
  5671.           v462 = v461;
  5672.           if ( v461 && !UClass::IsA(v461, ALevelInfo::PrivateStaticClass) )
  5673.             *(_DWORD *)(v462 + 1008) ^= ((unsigned __int8)*(_DWORD *)(v462 + 1008) ^ (unsigned __int8)~(unsigned __int8)*(_DWORD *)(v462 + 1008)) & 4;
  5674.         }
  5675.       }
  5676.       else
  5677.       {
  5678.         FOutputDevice::Logf(a4, L"%s Bad Axis command", a3);
  5679.       }
  5680.       return 1;
  5681.     }
  5682.     if ( ParseCommand(&a3, L"DISTANCEFOGRANGE") && !*(_DWORD *)GIsEditor && *((_DWORD *)v4 + 932) == 1 )
  5683.     {
  5684.       v463 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5685.       if ( v463 && *(_DWORD *)(v463 + 216) )
  5686.       {
  5687.         *(float *)&v1427 = 1.0;
  5688.         Parse(a3, L"RANGE=", &v1427);
  5689.         for ( ii = 0; ; ++ii )
  5690.         {
  5691.           v1214 = ii;
  5692.           v465 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216);
  5693.           if ( ii >= *(_DWORD *)(v465 + 60) )
  5694.             break;
  5695.           v466 = sub_200E4510(*(_DWORD *)(*(_DWORD *)(v465 + 56) + 4 * ii));
  5696.           v467 = v466;
  5697.           if ( v466 )
  5698.           {
  5699.             if ( !UClass::IsA(v466, ALevelInfo::PrivateStaticClass) )
  5700.             {
  5701.               *(float *)&a4 = *(float *)&v1427 + *(float *)(v467 + 1044);
  5702.               v468 = *(float *)&a4;
  5703.               *(float *)(v467 + 1044) = *(float *)&a4;
  5704.               if ( v468 < 100.0 )
  5705.                 *(float *)(v467 + 1044) = 100.0;
  5706.             }
  5707.           }
  5708.         }
  5709.         return 1;
  5710.       }
  5711.       goto LABEL_708;
  5712.     }
  5713.     if ( ParseCommand(&a3, L"PERSPECTIVE") && !*(_DWORD *)GIsEditor && *((_DWORD *)v4 + 932) == 1 )
  5714.     {
  5715.       v469 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5716.       if ( v469 && UClass::IsA(v469, APlayerController::PrivateStaticClass) )
  5717.       {
  5718.         v470 = *(float **)(*((_DWORD *)v4 + 926) + 60);
  5719.         *(float *)&v1536 = 1.0;
  5720.         Parse(a3, L"SPEED=", &v1536);
  5721.         *(float *)&a4 = *(float *)&v1536 + v470[242];
  5722.         v471 = *(float *)&a4;
  5723.         v470[242] = *(float *)&a4;
  5724.         if ( 0.0 == v471 )
  5725.           v470[242] = 5.0;
  5726.         *(float *)&a4 = *(float *)&v1536 + v470[383];
  5727.         v472 = *(float *)&a4;
  5728.         v470[383] = *(float *)&a4;
  5729.         if ( 0.0 == v472 )
  5730.           v470[383] = 5.0;
  5731.         *(float *)&a4 = *(float *)&v1536 + v470[384];
  5732.         v473 = *(float *)&a4;
  5733.         v470[384] = *(float *)&a4;
  5734.         if ( v473 == 0.0 )
  5735.           v470[384] = 5.0;
  5736.         result = 1;
  5737.       }
  5738.       else
  5739.       {
  5740.         FOutputDevice::Logf(a4, L"%s Bad Axis command", a3);
  5741.         result = 1;
  5742.       }
  5743.       return result;
  5744.     }
  5745.     if ( !ParseCommand(&a3, L"GROUNDSPEEDUP") || *(_DWORD *)GIsEditor || *((_DWORD *)v4 + 932) != 2 )
  5746.     {
  5747.       if ( !ParseCommand(&a3, L"GROUNDSPEEDDOWN") || *(_DWORD *)GIsEditor || *((_DWORD *)v4 + 932) != 2 )
  5748.       {
  5749.         if ( ParseCommand(&a3, L"CAMERAVIEWHEIGHTADJUST") && !*(_DWORD *)GIsEditor && *((_DWORD *)v4 + 932) == 2 )
  5750.         {
  5751.           v489 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5752.           if ( v489 && UClass::IsA(v489, ALineagePlayerController::PrivateStaticClass) )
  5753.           {
  5754.             v490 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5755.             *(float *)&v1425 = 20.0;
  5756.             Parse(a3, L"SPEED=", &v1425);
  5757.             a4 = *((struct FOutputDevice **)v4 + 933);
  5758.             *(float *)(v490 + 2648) = *(float *)&v1425 * *(float *)&a4 + *(float *)(v490 + 2648);
  5759.             return 1;
  5760.           }
  5761.           goto LABEL_16;
  5762.         }
  5763.         if ( ParseCommand(&a3, L"SELECTINGCANCEL") && !*(_DWORD *)GIsEditor && *((_DWORD *)v4 + 932) == 1 )
  5764.         {
  5765.           v491 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5766.           if ( v491 )
  5767.             (*(void (__stdcall **)(_DWORD))(*(_DWORD *)v491 + 924))(0);
  5768.           else
  5769.             FOutputDevice::Logf(a4, L"%s Bad Axis command", a3);
  5770.           return 1;
  5771.         }
  5772.         if ( ParseCommand(&a3, L"Crash") )
  5773.         {
  5774.           LOBYTE(v1544) = 20;
  5775.           appFailAssert(L"0", ".\\UnIn.cpp", 3273);
  5776.           v1544 = 0;
  5777.           goto LABEL_1312;
  5778.         }
  5779.         if ( ParseCommand(&a3, L"CHAIR") && !*(_DWORD *)GIsEditor )
  5780.         {
  5781.           v492 = ParseCommand(&a3, L"SIT");
  5782.           *(float *)&a4 = COERCE_FLOAT(ParseCommand(&a3, L"STAND"));
  5783.           v493 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5784.           if ( !*(_DWORD *)(v493 + 956)
  5785.             || *(_DWORD *)(v493 + 976) & 0x80000
  5786.             || !UClass::IsA(v493, ALineagePlayerController::PrivateStaticClass) )
  5787.           {
  5788.             return 1;
  5789.           }
  5790.           v494 = *((_DWORD *)v4 + 926);
  5791.           v495 = *(_DWORD **)(v494 + 60);
  5792.           if ( v492 )
  5793.           {
  5794.             if ( v495
  5795.               && (*(int (__thiscall **)(_DWORD))(*v495 + 920))(*(_DWORD *)(v494 + 60))
  5796.               && *(_DWORD *)((*(int (__thiscall **)(_DWORD *))(*v495 + 920))(v495) + 172) > 0
  5797.               && *(_BYTE *)((*(int (__thiscall **)(_DWORD *))(*v495 + 920))(v495) + 180) == 2 )
  5798.             {
  5799.               v496 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216);
  5800.               v497 = (int *)((*(int (__thiscall **)(_DWORD *))(*v495 + 920))(v495) + 448);
  5801.               v1466 = *v497;
  5802.               v1467 = v497[1];
  5803.               v1468 = v497[2];
  5804.               v1467 -= 0x4000;
  5805.               v498 = (float *)FRotator::Vector(&v1466, &v971);
  5806.               *(float *)&a4 = *v498 * 17.0;
  5807.               v1576 = v498[1] * 17.0;
  5808.               v1577 = 17.0 * v498[2];
  5809.               v1006 = a4;
  5810.               v499 = (float *)((*(int (__thiscall **)(_DWORD *))(*v495 + 920))(v495) + 436);
  5811.               *(float *)&a4 = *(float *)&a4 + *v499;
  5812.               v1576 = v499[1] + v1576;
  5813.               v1577 = v499[2] + v1577;
  5814.               v1271 = a4;
  5815.               v1272 = v1576;
  5816.               v1273 = v1577;
  5817.               (*(void (__thiscall **)(int, _DWORD, struct FOutputDevice *, float, float, _DWORD, signed int, _DWORD))(*(_DWORD *)v496 + 160))(
  5818.                 v496,
  5819.                 *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  5820.                 a4,
  5821.                 COERCE_FLOAT(LODWORD(v1576)),
  5822.                 COERCE_FLOAT(LODWORD(v1577)),
  5823.                 0,
  5824.                 1,
  5825.                 0);
  5826.               sub_2009B790((int)&v964, 1.0);
  5827.               v1120 = 0.0;
  5828.               v1121 = 0.0;
  5829.               v1122 = 0.0;
  5830.               (*(void (__thiscall **)(int, _DWORD, float *, int, int, int, char *, signed int, signed int, signed int, signed int))(*(_DWORD *)v496 + 156))(
  5831.                 v496,
  5832.                 *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  5833.                 &v1120,
  5834.                 v1466,
  5835.                 v1467,
  5836.                 v1468,
  5837.                 &v964,
  5838.                 1,
  5839.                 1,
  5840.                 1,
  5841.                 1);
  5842.               v500 = (int *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 816);
  5843.               *v500 = v1466;
  5844.               v500[1] = v1467;
  5845.               v500[2] = v1468;
  5846.               v501 = *(float **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  5847.               v502 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)v501 + 876);
  5848.               LODWORD(v939[1]) = 1;
  5849.               v939[0] = 0.0;
  5850.               v938 = 0.1;
  5851.               v937 = v501[434];
  5852.               *(float *)&a4 = COERCE_FLOAT(&v936);
  5853.               v503 = APawn::GetChairSitAnimName((unsigned __int8 *)v501, &v1083);
  5854.               v504 = FName::operator*(v503);
  5855.               FName::FName(&v936, v504, 1);
  5856.               (*v502)(
  5857.                 *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  5858.                 0,
  5859.                 LODWORD(v936),
  5860.                 LODWORD(v937),
  5861.                 LODWORD(v938),
  5862.                 LODWORD(v939[0]),
  5863.                 LODWORD(v939[1]));
  5864.               *(_BYTE *)(*(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7216) + 1089) = 4;
  5865.             }
  5866.             return 1;
  5867.           }
  5868.           if ( *(float *)&a4 == 0.0 )
  5869.             return 1;
  5870.           v505 = (unsigned __int8 *)v495[239];
  5871.           if ( *(_BYTE *)(*((_DWORD *)v505 + 1804) + 1089) != 4 )
  5872.             return 1;
  5873.           v506 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)v505 + 876);
  5874.           LODWORD(v939[1]) = 1;
  5875.           v939[0] = 0.0;
  5876.           v938 = 0.1;
  5877.           v937 = *((float *)v505 + 434);
  5878.           *(float *)&a4 = COERCE_FLOAT(&v936);
  5879.           v507 = APawn::GetChairStandAnimName(v505, &v1086);
  5880.           v508 = FName::operator*(v507);
  5881.           FName::FName(a4, v508, 1);
  5882.           (*v506)(
  5883.             *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  5884.             0,
  5885.             LODWORD(v936),
  5886.             LODWORD(v937),
  5887.             LODWORD(v938),
  5888.             LODWORD(v939[0]),
  5889.             LODWORD(v939[1]));
  5890.           v305 = *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7216);
  5891. LABEL_1287:
  5892.           *(_BYTE *)(v305 + 1089) = 1;
  5893.           return 1;
  5894.         }
  5895.         if ( !ParseCommand(&a3, L"JOYSTICKMOVE") || *(_DWORD *)GIsEditor )
  5896.         {
  5897.           if ( ParseCommand(&a3, L"STEPMOVE") && !*(_DWORD *)GIsEditor && *((_DWORD *)v4 + 932) == 1 )
  5898.           {
  5899.             if ( *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) )
  5900.             {
  5901.               v1423 = 0;
  5902.               *(float *)&v1421 = 0.0;
  5903.               Parse(a3, L"YAW=", &v1423);
  5904.               Parse(a3, L"DIST=", &v1421);
  5905.               v514 = (int *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 448);
  5906.               v1165 = *v514;
  5907.               v1166 = v514[1];
  5908.               v1167 = v514[2];
  5909.               v1166 += v1423;
  5910.               v515 = (float *)FRotator::Vector(&v1165, &v979);
  5911.               v516 = sub_20005D30((float *)&v1004, v515, *(float *)&v1421);
  5912.               v517 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5913.               v518 = (float *)(*(_DWORD *)(v517 + 956) + 436);
  5914.               *(float *)&a4 = *v516 + *v518;
  5915.               v1576 = v516[1] + v518[1];
  5916.               v1577 = v516[2] + v518[2];
  5917.               v1267 = a4;
  5918.               v1268 = v1576;
  5919.               v1269 = v1577;
  5920.               AController::MoveToNotRotation((float *)v517, *(float *)&a4, v1576, v1577, 0, 1.0);
  5921.               LODWORD(v939[1]) = ALineagePlayerController::PrivateStaticClass;
  5922.               if ( UClass::IsA(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60), ALineagePlayerController::PrivateStaticClass) )
  5923.               {
  5924.                 LODWORD(v939[1]) = &v1084;
  5925.                 LODWORD(v939[1]) = APawn::GetJumpAnimName(
  5926.                                      *(unsigned __int8 **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  5927.                                      &v1084);
  5928.                 v939[0] = 0.0;
  5929.                 v938 = COERCE_FLOAT(&v1082);
  5930.                 v519 = APawn::GetCurAnimName(*(void **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956), &v1082, 0);
  5931.                 if ( FName::operator!=(v519, LODWORD(v939[1])) )
  5932.                 {
  5933.                   v520 = *(float **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  5934.                   v521 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)v520 + 876);
  5935.                   v939[1] = 0.0;
  5936.                   v939[0] = 0.0;
  5937.                   v938 = 0.0;
  5938.                   *(float *)&a4 = v520[434] + v520[434];
  5939.                   v937 = *(float *)&a4;
  5940.                   *(float *)&a4 = COERCE_FLOAT(&v936);
  5941.                   v522 = APawn::GetJumpAnimName((unsigned __int8 *)v520, &v1080);
  5942.                   v523 = FName::operator*(v522);
  5943.                   FName::FName(&v936, v523, 1);
  5944.                   (*v521)(
  5945.                     *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  5946.                     0,
  5947.                     LODWORD(v936),
  5948.                     LODWORD(v937),
  5949.                     LODWORD(v938),
  5950.                     LODWORD(v939[0]),
  5951.                     LODWORD(v939[1]));
  5952.                 }
  5953.               }
  5954.               return 1;
  5955.             }
  5956.             goto LABEL_16;
  5957.           }
  5958.           goto LABEL_1312;
  5959.         }
  5960.         v105 = ParseCommand(&a3, L"OnRelease") == 0;
  5961.         v509 = *((_DWORD *)v4 + 932);
  5962.         if ( v105 )
  5963.           v510 = v509 == 1;
  5964.         else
  5965.           v510 = v509 == 3;
  5966.         if ( v510 || !v509 )
  5967.         {
  5968.           v511 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5969.           if ( !*(_DWORD *)(v511 + 956) )
  5970.             return 1;
  5971.           if ( *(_DWORD *)(v511 + 976) & 0x80000 )
  5972.             return 1;
  5973.           v512 = *(_BYTE *)(v511 + 1089);
  5974.           if ( !v512 || v512 == 2 || v512 == 4 )
  5975.             return 1;
  5976.           v513 = (ALineagePlayerController *)sub_200D24A0(v511);
  5977.           if ( v513 )
  5978.           {
  5979.             a4 = *((struct FOutputDevice **)v4 + 933);
  5980.             if ( *(float *)&a4 < 0.5 )
  5981.             {
  5982.               ALineagePlayerController::ResetKeyboardMoving(v513, 2, 0, 1);
  5983.               return 1;
  5984.             }
  5985.             ALineagePlayerController::ResetKeyboardMoving(v513, 2, 0, 0);
  5986.           }
  5987.         }
  5988.         return 1;
  5989.       }
  5990.       v486 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5991.       if ( !v486 || !*(_DWORD *)(v486 + 956) )
  5992.         goto LABEL_1312;
  5993.       *(float *)&v1547 = 100.0;
  5994.       Parse(a3, L"SPEED=", &v1547);
  5995.       v487 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  5996.       v1576 = *((float *)v4 + 933);
  5997.       v105 = (*(_DWORD *)(v487 + 1388) & 0x40000) == 0;
  5998.       v488 = *(_DWORD *)(v487 + 956);
  5999.       if ( !v105 )
  6000.       {
  6001.         *(float *)(v488 + 7344) = *(float *)(v488 + 7344) - *(float *)&v1547 * v1576;
  6002.         v1576 = *((float *)v4 + 933);
  6003.         v478 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6004.         v479 = *(float *)(v478 + 1800) - *(float *)&v1547 * v1576;
  6005.         goto LABEL_1241;
  6006.       }
  6007.       *(float *)(v488 + 1784) = *(float *)(v488 + 1784) - *(float *)&v1547 * v1576;
  6008.       v1576 = *((float *)v4 + 933);
  6009.       v482 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6010.       v483 = *(float *)(v482 + 1788) - *(float *)&v1547 * v1576;
  6011.     }
  6012.     else
  6013.     {
  6014.       v474 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6015.       if ( !v474 || !*(_DWORD *)(v474 + 956) )
  6016.         goto LABEL_1312;
  6017.       *(float *)&v1545 = 100.0;
  6018.       Parse(a3, L"SPEED=", &v1545);
  6019.       v475 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6020.       v1576 = *((float *)v4 + 933);
  6021.       v476 = *(float *)&v1545 * v1576;
  6022.       v105 = (*(_DWORD *)(v475 + 1388) & 0x40000) == 0;
  6023.       v477 = *(_DWORD *)(v475 + 956);
  6024.       if ( !v105 )
  6025.       {
  6026.         *(float *)(v477 + 7344) = v476 + *(float *)(v477 + 7344);
  6027.         v1576 = *((float *)v4 + 933);
  6028.         v478 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6029.         v479 = *(float *)&v1545 * v1576 + *(float *)(v478 + 1800);
  6030. LABEL_1241:
  6031.         *(float *)(v478 + 1800) = v479;
  6032.         v480 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6033.         a2 = 0.0;
  6034.         if ( *(float *)(v480 + 7344) <= 0.0 )
  6035.           *(float *)(v480 + 7344) = 0.0;
  6036.         v481 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6037.         if ( *(float *)(v481 + 1800) <= 0.0 )
  6038.           *(float *)(v481 + 1800) = 0.0;
  6039.         goto LABEL_1312;
  6040.       }
  6041.       *(float *)(v477 + 1784) = v476 + *(float *)(v477 + 1784);
  6042.       v1576 = *((float *)v4 + 933);
  6043.       v482 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6044.       v483 = *(float *)&v1545 * v1576 + *(float *)(v482 + 1788);
  6045.     }
  6046.     *(float *)(v482 + 1788) = v483;
  6047.     v484 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6048.     a2 = 0.0;
  6049.     if ( *(float *)(v484 + 1784) <= 0.0 )
  6050.       *(float *)(v484 + 1784) = 0.0;
  6051.     v485 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6052.     if ( *(float *)(v485 + 1788) <= 0.0 )
  6053.       *(float *)(v485 + 1784) = 0.0;
  6054.     goto LABEL_1312;
  6055.   }
  6056.   v1437 = 0;
  6057.   v268 = (int (__cdecl *)(const wchar_t *, const wchar_t *, int *))Parse;
  6058.   Parse(a3, L"Type=", &v1437);
  6059.   *(_DWORD *)GL2Antialiasing = v1437;
  6060.   (*(void (__stdcall **)(int *, int *, int *, char *, int *))(**((_DWORD **)dword_2077EE00 + 25) + 204))(
  6061.     &v1236,
  6062.     &v1252,
  6063.     &v1211,
  6064.     &v1077,
  6065.     &v1254);
  6066.   (*(void (__stdcall **)(_DWORD, int, int, int, int, signed int, _DWORD))(**((_DWORD **)dword_2077EE00 + 25) + 116))(
  6067.     **(_DWORD **)(*((_DWORD *)dword_2077EE00 + 22) + 56),
  6068.     v1252,
  6069.     v1211,
  6070.     v1254,
  6071.     v1236,
  6072.     1,
  6073.     0);
  6074. LABEL_1313:
  6075.   if ( ParseCommand(&a3, L"COMBOANIMPLAY") && !*(_DWORD *)GIsEditor && *((_DWORD *)v4 + 932) == 1 )
  6076.   {
  6077.     LODWORD(v939[1]) = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7784;
  6078.     if ( v268(a3, L"ATTACKNUM=", (int *)LODWORD(v939[1])) )
  6079.     {
  6080.       v524 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6081.       v525 = *(_DWORD *)(v524 + 7784);
  6082.       if ( v525 > 0 )
  6083.       {
  6084.         if ( v525 > 8 )
  6085.           *(_DWORD *)(v524 + 7784) = 8;
  6086.         FString::FString(&v1143);
  6087.         LOBYTE(v1544) = 22;
  6088.         v526 = 0.0;
  6089.         v1371 = 0.0;
  6090.         while ( SLODWORD(v526) < *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7784) )
  6091.         {
  6092.           v939[1] = v526;
  6093.           appSprintf(&v963, L"ATTACKNAME%d=", v526);
  6094.           Parse(a3, &v963, &v1143, 0);
  6095.           LODWORD(v939[1]) = 1;
  6096.           v527 = FString::operator*(&v1143);
  6097.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 4 * LODWORD(v526)++ + 7788) = *(_DWORD *)FName::FName(&v1078, v527, LODWORD(v939[1]));
  6098.           v1371 = v526;
  6099.         }
  6100.         *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7820) = 0;
  6101.         v528 = *(float **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6102.         v529 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)v528 + 876);
  6103.         v939[1] = 0.0;
  6104.         LODWORD(v939[0]) = 1;
  6105.         v938 = 0.1;
  6106.         v937 = v528[434];
  6107.         *(float *)&a4 = COERCE_FLOAT(&v936);
  6108.         LODWORD(v935) = 1;
  6109.         v530 = FName::operator*(v528 + 1947);
  6110.         FName::FName(&v936, v530, LODWORD(v935));
  6111.         v935 = 0.0;
  6112.         (*v529)(
  6113.           *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  6114.           0,
  6115.           LODWORD(v936),
  6116.           LODWORD(v937),
  6117.           LODWORD(v938),
  6118.           LODWORD(v939[0]),
  6119.           LODWORD(v939[1]));
  6120.         LOBYTE(v1544) = 0;
  6121.         FString::~FString(&v1143);
  6122.       }
  6123.     }
  6124.     *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1684) |= 0x20u;
  6125.     return 1;
  6126.   }
  6127.   if ( ParseCommand(&a3, L"CHANGEANIM") && !*(_DWORD *)GIsEditor )
  6128.   {
  6129.     FString::FString(&v1265);
  6130.     LOBYTE(v1544) = 23;
  6131.     Parse(a3, L"ANIM=", &v1265, 0);
  6132.     if ( ParseCommand(&a3, L"RUN") )
  6133.     {
  6134.       LODWORD(v939[1]) = 1;
  6135.       v531 = FString::operator*(&v1265);
  6136.       FName::FName(&v1370, v531, LODWORD(v939[1]));
  6137.       *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 2024) = v1370;
  6138.       v532 = *(float **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6139.       v533 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)v532 + 876);
  6140.       v939[1] = 0.0;
  6141.       LODWORD(v939[0]) = 1;
  6142.       v938 = 0.1;
  6143.       v937 = v532[434];
  6144.       *(float *)&a4 = COERCE_FLOAT(&v936);
  6145.       LODWORD(v935) = 1;
  6146.       v534 = APawn::GetRunAnimName((unsigned __int8 *)v532, &v1076);
  6147.     }
  6148.     else if ( ParseCommand(&a3, L"WALK") )
  6149.     {
  6150.       LODWORD(v939[1]) = 1;
  6151.       v535 = FString::operator*(&v1265);
  6152.       FName::FName(&v1293, v535, LODWORD(v939[1]));
  6153.       *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1980) = v1293;
  6154.       v536 = *(float **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6155.       v533 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)v536 + 876);
  6156.       v939[1] = 0.0;
  6157.       LODWORD(v939[0]) = 1;
  6158.       v938 = 0.1;
  6159.       v937 = v536[434];
  6160.       *(float *)&a4 = COERCE_FLOAT(&v936);
  6161.       LODWORD(v935) = 1;
  6162.       v534 = APawn::GetRunAnimName((unsigned __int8 *)v536, &v1074);
  6163.     }
  6164.     else
  6165.     {
  6166.       if ( !ParseCommand(&a3, L"WAIT") )
  6167.       {
  6168. LABEL_1334:
  6169.         LOBYTE(v1544) = 0;
  6170.         FString::~FString(&v1265);
  6171.         return 1;
  6172.       }
  6173.       LODWORD(v939[1]) = 1;
  6174.       v537 = FString::operator*(&v1265);
  6175.       FName::FName(&v1291, v537, LODWORD(v939[1]));
  6176.       *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 2244) = v1291;
  6177.       v538 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6178.       v533 = (void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)v538 + 876);
  6179.       v939[1] = 0.0;
  6180.       LODWORD(v939[0]) = 1;
  6181.       v938 = 0.1;
  6182.       v937 = *(float *)(v538 + 1736);
  6183.       *(float *)&a4 = COERCE_FLOAT(&v936);
  6184.       LODWORD(v935) = 1;
  6185.       v534 = APawn::GetCurWaitAnimName(v538, &v1061);
  6186.     }
  6187.     v539 = FName::operator*(v534);
  6188.     FName::FName(&v936, v539, LODWORD(v935));
  6189.     v540 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6190.     v935 = 0.0;
  6191.     (*v533)(*(_DWORD *)(v540 + 956), 0, LODWORD(v936), LODWORD(v937), LODWORD(v938), LODWORD(v939[0]), LODWORD(v939[1]));
  6192.     goto LABEL_1334;
  6193.   }
  6194.   if ( ParseCommand(&a3, L"CheckGrp") )
  6195.   {
  6196.     ((void (__thiscall *)(int *))LODWORD(FBox::FBox))(&v1572);
  6197.     v1551 = 0;
  6198.     v1548 = 0;
  6199.     v541 = (void (__thiscall *)(int *, const wchar_t *, signed int))FName::FName;
  6200.     if ( !Parse(a3, L"Type=", &v1572) )
  6201.     {
  6202.       FName::FName(&v1205, L"All", 1);
  6203.       v1572 = v1205;
  6204.     }
  6205.     v268(a3, L"anim=", &v1548);
  6206.     v268(a3, L"sound=", &v1551);
  6207.     FName::FName(&v1372, L"Armor", 1);
  6208.     if ( FName::operator==(&v1572, &v1372) || (FName::FName(&v1188, L"All", 1), FName::operator==(&v1572, &v1188)) )
  6209.     {
  6210.       LODWORD(v939[1]) = L"===================================ArmorGrp Start==================================";
  6211.       FOutputDevice::Logf(
  6212.         *(_DWORD *)GCheckGrpLog,
  6213.         (const char *)L"===================================ArmorGrp Start==================================");
  6214.       v1176 = dword_207A14D0;
  6215.       v1177 = dword_207A14D0;
  6216.       v542 = 0;
  6217.       v1178 = 0;
  6218.       v1179 = 0;
  6219.       LOBYTE(v1544) = 24;
  6220.       while ( v542 < *(_DWORD *)(dword_207A14D0 + 4) )
  6221.       {
  6222.         v543 = *(FL2ArmorItemData **)sub_200CC4C0((int)&v1176);
  6223.         if ( v543 )
  6224.           FL2ArmorItemData::CheckResource(v543, *(_DWORD *)(*(_DWORD *)dword_207A14D0 + 12 * v542 + 4), v1551);
  6225.         v1178 = ++v542;
  6226.       }
  6227.       LOBYTE(v1544) = 0;
  6228.       sub_200CD320((int)&v1176);
  6229.       LODWORD(v939[1]) = L"===================================ArmorGrp End==================================";
  6230.       FOutputDevice::Logf(
  6231.         *(_DWORD *)GCheckGrpLog,
  6232.         (const char *)L"===================================ArmorGrp End==================================");
  6233.       v541 = (void (__thiscall *)(int *, const wchar_t *, signed int))FName::FName;
  6234.     }
  6235.     v541(&v1204, L"Weapon", 1);
  6236.     if ( FName::operator==(&v1572, &v1204) || (v541(&v1369, L"All", 1), FName::operator==(&v1572, &v1369)) )
  6237.     {
  6238.       LODWORD(v939[1]) = L"===================================WeaponGrp Start==================================";
  6239.       FOutputDevice::Logf(
  6240.         *(_DWORD *)GCheckGrpLog,
  6241.         L"===================================WeaponGrp Start==================================");
  6242.       v1155 = dword_207A14D8;
  6243.       v1156 = dword_207A14D8;
  6244.       v544 = 0;
  6245.       v1157 = 0;
  6246.       v1158 = 0;
  6247.       LOBYTE(v1544) = 25;
  6248.       while ( v544 < *(_DWORD *)(dword_207A14D8 + 4) )
  6249.       {
  6250.         v545 = *(_DWORD *)dword_207A14D8 + 12 * v544;
  6251.         v546 = *(FL2WeaponItemData **)(v545 + 8);
  6252.         if ( v546 )
  6253.           FL2WeaponItemData::CheckResource(v546, *(_DWORD *)(v545 + 4), v1551);
  6254.         v1157 = ++v544;
  6255.       }
  6256.       LOBYTE(v1544) = 0;
  6257.       LODWORD(v939[1]) = L"===================================WeaponGrp End==================================";
  6258.       v939[0] = *(float *)GCheckGrpLog;
  6259.       v547 = FOutputDevice::Logf;
  6260.       FOutputDevice::Logf(
  6261.         LODWORD(v939[0]),
  6262.         (const char *)L"===================================WeaponGrp End==================================");
  6263.       v541 = (void (__thiscall *)(int *, const wchar_t *, signed int))FName::FName;
  6264.     }
  6265.     else
  6266.     {
  6267.       v547 = FOutputDevice::Logf;
  6268.     }
  6269.     v541(&v1241, L"npc", 1);
  6270.     if ( FName::operator==(&v1572, &v1241) || (v541(&v1365, L"All", 1), FName::operator==(&v1572, &v1365)) )
  6271.     {
  6272.       LODWORD(v939[1]) = L"===================================NpcGrp Start==================================";
  6273.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6274.         *(_DWORD *)GCheckGrpLog,
  6275.         L"===================================NpcGrp Start==================================");
  6276.       v1197 = dword_207A14DC;
  6277.       v1198 = dword_207A14DC;
  6278.       v548 = 0;
  6279.       v1199 = 0;
  6280.       v1200 = 0;
  6281.       LOBYTE(v1544) = 26;
  6282.       while ( sub_200CC4B0((int)&v1197) )
  6283.       {
  6284.         v549 = *(FL2NpcData **)sub_200CC4C0((int)&v1197);
  6285.         if ( v549 )
  6286.           FL2NpcData::CheckResource(v549, *(_DWORD *)(*(_DWORD *)dword_207A14DC + 12 * v548 + 4), v1548, v1551);
  6287.         v1199 = ++v548;
  6288.       }
  6289.       LOBYTE(v1544) = 0;
  6290.       sub_200CD320((int)&v1197);
  6291.       LODWORD(v939[1]) = L"===================================NpcGrp End==================================";
  6292.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6293.         *(_DWORD *)GCheckGrpLog,
  6294.         L"===================================NpcGrp End==================================");
  6295.       v541 = (void (__thiscall *)(int *, const wchar_t *, signed int))FName::FName;
  6296.     }
  6297.     v541(&v1212, L"pc", 1);
  6298.     if ( FName::operator==(&v1572, &v1212) || (v541(&v1361, L"All", 1), FName::operator==(&v1572, &v1361)) )
  6299.     {
  6300.       LODWORD(v939[1]) = L"===================================CharGrp Start==================================";
  6301.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6302.         *(_DWORD *)GCheckGrpLog,
  6303.         L"===================================CharGrp Start==================================");
  6304.       for ( jj = 0; ; ++jj )
  6305.       {
  6306.         v1239 = jj;
  6307.         if ( jj >= 17 )
  6308.           break;
  6309.         FL2CharData::FL2CharData((FL2CharData *)&v943, (const struct FL2CharData *)&dword_207A14E0[923 * jj]);
  6310.         LOBYTE(v1544) = 27;
  6311.         FL2CharData::CheckResource((FL2CharData *)&v943, jj, v1548, v1551);
  6312.         LOBYTE(v1544) = 0;
  6313.         FL2CharData::~FL2CharData((FL2CharData *)&v943);
  6314.       }
  6315.       LODWORD(v939[1]) = L"===================================CharGrp End==================================";
  6316.       FOutputDevice::Logf(
  6317.         *(_DWORD *)GCheckGrpLog,
  6318.         L"===================================CharGrp End==================================");
  6319.       v547 = FOutputDevice::Logf;
  6320.     }
  6321.     v541(&v1357, L"etc", 1);
  6322.     if ( FName::operator==(&v1572, &v1357) || (v541(&v1193, L"All", 1), FName::operator==(&v1572, &v1193)) )
  6323.     {
  6324.       LODWORD(v939[1]) = L"===================================ETCItemGrp Start==================================";
  6325.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6326.         *(_DWORD *)GCheckGrpLog,
  6327.         L"===================================ETCItemGrp Start==================================");
  6328.       v1150 = dword_207A14D4;
  6329.       v1151 = dword_207A14D4;
  6330.       v551 = 0;
  6331.       v1152 = 0;
  6332.       v1153 = 0;
  6333.       LOBYTE(v1544) = 28;
  6334.       while ( v551 < *(_DWORD *)(dword_207A14D4 + 4) )
  6335.       {
  6336.         v552 = *(_DWORD *)dword_207A14D4 + 12 * v551;
  6337.         v553 = *(FL2EtcItemData **)(v552 + 8);
  6338.         if ( v553 )
  6339.           FL2EtcItemData::CheckResource(v553, *(_DWORD *)(v552 + 4), 0);
  6340.         v1152 = ++v551;
  6341.       }
  6342.       LOBYTE(v1544) = 0;
  6343.       LODWORD(v939[1]) = L"===================================ETCItemGrp End==================================";
  6344.       FOutputDevice::Logf(
  6345.         *(_DWORD *)GCheckGrpLog,
  6346.         L"===================================ETCItemGrp End==================================");
  6347.       v541 = (void (__thiscall *)(int *, const wchar_t *, signed int))FName::FName;
  6348.       v547 = FOutputDevice::Logf;
  6349.     }
  6350.     v541(&v1353, L"skillsound", 1);
  6351.     if ( FName::operator==(&v1572, &v1353) || (v541(&v1238, L"All", 1), FName::operator==(&v1572, &v1238)) )
  6352.     {
  6353.       LODWORD(v939[1]) = L"===================================SkillSoundGrp Start==================================";
  6354.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6355.         *(_DWORD *)GCheckGrpLog,
  6356.         L"===================================SkillSoundGrp Start==================================");
  6357.       for ( kk = 0; ; ++kk )
  6358.       {
  6359.         v1349 = kk;
  6360.         if ( kk >= 3000 )
  6361.           break;
  6362.         v555 = FL2GameData::GetSkillSoundData((FL2GameData *)GL2GameData, kk, 1);
  6363.         if ( v555 )
  6364.           FL2SkillSoundData::CheckResource(v555, kk);
  6365.       }
  6366.       LODWORD(v939[1]) = L"===================================SkillSoundGrp End==================================";
  6367.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6368.         *(_DWORD *)GCheckGrpLog,
  6369.         L"===================================SkillSoundGrp End==================================");
  6370.     }
  6371.     v541(&v1210, L"enterevent", 1);
  6372.     if ( FName::operator==(&v1572, &v1210) || (v541(&v1345, L"All", 1), FName::operator==(&v1572, &v1345)) )
  6373.     {
  6374.       LODWORD(v939[1]) = L"===================================EnterEventGrp Start==================================";
  6375.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6376.         *(_DWORD *)GCheckGrpLog,
  6377.         L"===================================EnterEventGrp Start==================================");
  6378.       if ( dword_2086F17C )
  6379.       {
  6380.         v556 = 0;
  6381.         v557 = 0;
  6382.         v1237 = 0;
  6383.         v1180 = dword_2086F17C;
  6384.         v1181 = dword_2086F17C;
  6385.         v1182 = 0;
  6386.         v1183 = 0;
  6387.         LOBYTE(v1544) = 29;
  6388.         while ( v556 < *(_DWORD *)(dword_2086F17C + 4) )
  6389.         {
  6390.           v558 = *(FL2EnterEventData **)sub_200CC4C0((int)&v1180);
  6391.           if ( v558 )
  6392.           {
  6393.             FL2EnterEventData::CheckResource(v558, v557++, v1548, v1551);
  6394.             v1237 = v557;
  6395.           }
  6396.           v1182 = ++v556;
  6397.         }
  6398.         LOBYTE(v1544) = 0;
  6399.         sub_200CD320((int)&v1180);
  6400.         v541 = (void (__thiscall *)(int *, const wchar_t *, signed int))FName::FName;
  6401.         v547 = FOutputDevice::Logf;
  6402.       }
  6403.       LODWORD(v939[1]) = L"===================================EnterEventGrp End==================================";
  6404.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6405.         *(_DWORD *)GCheckGrpLog,
  6406.         L"===================================EnterEventGrp End==================================");
  6407.     }
  6408.     v541(&v1341, L"mobskillanim", 1);
  6409.     if ( FName::operator==(&v1572, &v1341) || (v541(&v1220, L"All", 1), FName::operator==(&v1572, &v1220)) )
  6410.     {
  6411.       LODWORD(v939[1]) = L"===================================MobSkillAnimGrp Start==================================";
  6412.       FOutputDevice::Logf(
  6413.         *(_DWORD *)GCheckGrpLog,
  6414.         L"===================================MobSkillAnimGrp Start==================================");
  6415.       v559 = 0;
  6416.       v1337 = 0;
  6417.       v1172 = dword_207B0A2C;
  6418.       v1173 = dword_207B0A2C;
  6419.       v560 = 0;
  6420.       v1174 = 0;
  6421.       v1175 = 0;
  6422.       LOBYTE(v1544) = 30;
  6423.       while ( v560 < *(_DWORD *)(dword_207B0A2C + 4) )
  6424.       {
  6425.         v561 = *(FL2NpcSkillAnimData **)sub_200CC4C0((int)&v1172);
  6426.         if ( v561 )
  6427.         {
  6428.           FL2NpcSkillAnimData::CheckResource(v561, v559++, v1548);
  6429.           v1337 = v559;
  6430.         }
  6431.         v1174 = ++v560;
  6432.       }
  6433.       LOBYTE(v1544) = 0;
  6434.       sub_200CD320((int)&v1172);
  6435.       LODWORD(v939[1]) = L"===================================MobSkillAnimGrp End==================================";
  6436.       FOutputDevice::Logf(
  6437.         *(_DWORD *)GCheckGrpLog,
  6438.         L"===================================MobSkillAnimGrp End==================================");
  6439.       v541 = (void (__thiscall *)(int *, const wchar_t *, signed int))FName::FName;
  6440.       v547 = FOutputDevice::Logf;
  6441.     }
  6442.     v541(&v1235, L"music", 1);
  6443.     if ( FName::operator==(&v1572, &v1235) || (v541(&v1333, L"All", 1), FName::operator==(&v1572, &v1333)) )
  6444.     {
  6445.       LODWORD(v939[1]) = L"===================================Music Start==================================";
  6446.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6447.         *(_DWORD *)GCheckGrpLog,
  6448.         L"===================================Music Start==================================");
  6449.       v1184 = dword_207B0A1C;
  6450.       v1185 = dword_207B0A1C;
  6451.       v562 = 0;
  6452.       v1186 = 0;
  6453.       v1187 = 0;
  6454.       LOBYTE(v1544) = 31;
  6455.       while ( v562 < *(_DWORD *)(dword_207B0A1C + 4) )
  6456.       {
  6457.         if ( *(_DWORD *)sub_200CC4C0((int)&v1184) )
  6458.           FMusicInfo::CheckResource(*(_DWORD *)(*(_DWORD *)dword_207B0A1C + 12 * v562 + 4));
  6459.         v1186 = ++v562;
  6460.       }
  6461.       LOBYTE(v1544) = 0;
  6462.       sub_200CD320((int)&v1184);
  6463.       LODWORD(v939[1]) = L"===================================Music End==================================";
  6464.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6465.         *(_DWORD *)GCheckGrpLog,
  6466.         L"===================================Music End==================================");
  6467.       v541 = (void (__thiscall *)(int *, const wchar_t *, signed int))FName::FName;
  6468.     }
  6469.     v541(&v1219, L"variationeffect", 1);
  6470.     if ( FName::operator==(&v1572, &v1219) || (v541(&v1329, L"All", 1), FName::operator==(&v1572, &v1329)) )
  6471.     {
  6472.       LODWORD(v939[1]) = L"===================================VariationEffect Start==================================";
  6473.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6474.         *(_DWORD *)GCheckGrpLog,
  6475.         L"===================================VariationEffect Start==================================");
  6476.       v1017 = dword_20871090;
  6477.       for ( ll = 0; ll < *(_DWORD *)(dword_20871090 + 4); ++ll )
  6478.       {
  6479.         v564 = *(FL2VariationEffectData **)(*(_DWORD *)dword_20871090 + 4 * ll);
  6480.         if ( v564 )
  6481.           FL2VariationEffectData::CheckResource(v564, 0);
  6482.       }
  6483.       LODWORD(v939[1]) = L"===================================VariationEffect End==================================";
  6484.       ((void (__cdecl *)(_DWORD, const wchar_t *))v547)(
  6485.         *(_DWORD *)GCheckGrpLog,
  6486.         L"===================================VariationEffect End==================================");
  6487.     }
  6488.     return 1;
  6489.   }
  6490.   if ( ParseCommand(&a3, L"Addabnormal") || ParseCommand(&a3, L"aa") )
  6491.   {
  6492.     if ( !v268(a3, L"Type=", &v1528) )
  6493.       v1528 = 0;
  6494.     v926 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6495.     if ( v926 )
  6496.     {
  6497.       v927 = (float *)(*(int (**)(void))(*(_DWORD *)v926 + 920))();
  6498.       if ( !v927 )
  6499.         v927 = *(float **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6500.       if ( v1528 )
  6501.       {
  6502.         v928 = 1i64 << ((unsigned __int8)v1528 - 1);
  6503.         if ( (signed int)((unsigned __int64)(1i64 << ((unsigned __int8)v1528 - 1)) >> 32) < 0x400000 )
  6504.         {
  6505.           if ( v1528 == 17 && !(FINT64::GetValue(v927 + 2001) & 0x10000) )
  6506.           {
  6507.             v927[2041] = v927[187];
  6508.             v927[2042] = v927[188];
  6509.             v927[187] = v927[187] * 1.200000047683716;
  6510.             v927[188] = 1.200000047683716 * v927[188];
  6511.           }
  6512.           FINT64::operator=|(v927 + 2001, &v1016, v928, HIDWORD(v928));
  6513.         }
  6514.         v927[2004] = 20.0;
  6515.       }
  6516.       else
  6517.       {
  6518.         FINT64::FINT64(v927 + 2001, 0, 0);
  6519.         v927[2004] = 20.0;
  6520.       }
  6521.     }
  6522.     return 1;
  6523.   }
  6524.   if ( ParseCommand(&a3, L"deleteabnormal") || ParseCommand(&a3, L"da") )
  6525.   {
  6526.     if ( !v268(a3, L"Type=", &v1530) )
  6527.       v1530 = 0;
  6528.     v923 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6529.     if ( v923 )
  6530.     {
  6531.       v924 = (float *)(*(int (**)(void))(*(_DWORD *)v923 + 920))();
  6532.       if ( !v924 )
  6533.         v924 = *(float **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6534.       if ( v1530 )
  6535.       {
  6536.         v925 = 1i64 << ((unsigned __int8)v1530 - 1);
  6537.         if ( (signed int)((unsigned __int64)(1i64 << ((unsigned __int8)v1530 - 1)) >> 32) < 0x400000 )
  6538.         {
  6539.           if ( v1530 == 17 && FINT64::GetValue(v924 + 2001) & 0x10000 )
  6540.           {
  6541.             v924[2041] = v924[187];
  6542.             v924[2042] = v924[188];
  6543.             v924[187] = v924[187] / 1.200000047683716;
  6544.             v924[188] = v924[188] / 1.200000047683716;
  6545.           }
  6546.           FINT64::operator=&(v924 + 2001, &v1014, ~(_DWORD)v925, ~HIDWORD(v925));
  6547.         }
  6548.       }
  6549.       else
  6550.       {
  6551.         FINT64::FINT64(v924 + 2001, 0, 0);
  6552.       }
  6553.     }
  6554.     return 1;
  6555.   }
  6556.   if ( ParseCommand(&a3, L"AddEffect") )
  6557.   {
  6558.     v565 = *(_DWORD **)(*((_DWORD *)v4 + 926) + 60);
  6559.     v566 = v565[239];
  6560.     v567 = (*(int (**)(void))(*v565 + 920))();
  6561.     v568 = (_DWORD *)v567;
  6562.     if ( !v566 || !v567 )
  6563.       return 1;
  6564.     if ( v268(a3, L"Type=", &v1546) )
  6565.     {
  6566.       if ( v1546 )
  6567.       {
  6568. LABEL_1430:
  6569.         if ( v1546 == 1 )
  6570.           APawn::AddAppendixEffect(v568, 8);
  6571.         if ( v1546 == 2 )
  6572.           APawn::AddAppendixEffect(v568, 16);
  6573.         if ( v1546 == 3 )
  6574.           APawn::AddAppendixEffect(v568, 32);
  6575.         return 1;
  6576.       }
  6577.     }
  6578.     else
  6579.     {
  6580.       v1546 = 0;
  6581.     }
  6582.     APawn::AddAppendixEffect(v568, 4);
  6583.     goto LABEL_1430;
  6584.   }
  6585.   if ( ParseCommand(&a3, L"DeleteEffect") )
  6586.   {
  6587.     v569 = *(_DWORD **)(*((_DWORD *)v4 + 926) + 60);
  6588.     v570 = v569[239];
  6589.     v571 = (*(int (**)(void))(*v569 + 920))();
  6590.     v572 = (_DWORD *)v571;
  6591.     if ( !v570 || !v571 )
  6592.       return 1;
  6593.     if ( v268(a3, L"Type=", &v1549) )
  6594.     {
  6595.       if ( v1549 )
  6596.       {
  6597. LABEL_1443:
  6598.         if ( v1549 == 1 )
  6599.           APawn::DeleteAppendixEffect(v572, 8);
  6600.         if ( v1549 == 2 )
  6601.           APawn::DeleteAppendixEffect(v572, 16);
  6602.         if ( v1549 == 3 )
  6603.           APawn::DeleteAppendixEffect(v572, 32);
  6604.         return 1;
  6605.       }
  6606.     }
  6607.     else
  6608.     {
  6609.       v1549 = 0;
  6610.     }
  6611.     APawn::DeleteAppendixEffect(v572, 4);
  6612.     goto LABEL_1443;
  6613.   }
  6614.   if ( ParseCommand(&a3, L"CW") )
  6615.   {
  6616.     v573 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6617.     if ( v573 )
  6618.     {
  6619.       v574 = *(_DWORD **)(v573 + 956);
  6620.       if ( v574 )
  6621.       {
  6622.         if ( !v268(a3, L"Type=", &v1484) )
  6623.           v1484 = 0;
  6624.         if ( !v268(a3, L"Level=", &v1465) )
  6625.           v1484 = 0;
  6626.         if ( v1484 )
  6627.         {
  6628.           if ( v1484 == 1 )
  6629.           {
  6630.             v574[2034] |= 0x10u;
  6631.             v574[2035] = v1465;
  6632.             v574[430] = 8190;
  6633.           }
  6634.           else if ( v1484 == 2 )
  6635.           {
  6636.             v574[2034] |= 0x10u;
  6637.             v574[2035] = v1465;
  6638.             v574[430] = 8689;
  6639.           }
  6640.         }
  6641.         else
  6642.         {
  6643.           v574[2034] &= 0xFFFFFFEF;
  6644.           v574[2035] = 0;
  6645.         }
  6646.         return 1;
  6647.       }
  6648.     }
  6649.     return 0;
  6650.   }
  6651.   if ( ParseCommand(&a3, L"FIRECRACKER") )
  6652.   {
  6653.     v575 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6654.     if ( v575 )
  6655.     {
  6656.       v576 = (*(int (**)(void))(*(_DWORD *)v575 + 920))();
  6657.       if ( v576 )
  6658.       {
  6659.         v577 = *(_DWORD *)dword_2077EE00;
  6660.         v939[1] = 0.0;
  6661.         LODWORD(v939[0]) = v576;
  6662.         (*(void (__stdcall **)(int, _DWORD))(v577 + 1760))(v576, 0);
  6663.       }
  6664.       return 1;
  6665.     }
  6666.     return 0;
  6667.   }
  6668.   if ( ParseCommand(&a3, L"FENCE") )
  6669.   {
  6670.     if ( *(_DWORD *)(*((_DWORD *)v4 + 926) + 60) )
  6671.     {
  6672.       if ( !v268(a3, L"State=", &v1417) )
  6673.         v1417 = 1;
  6674.       v578 = *(int **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6675.       if ( v578 )
  6676.         UGameEngine::OnColosseumFenceTest(v578[109], v578[110], v578[111], 100, 100, v1417);
  6677.       return 1;
  6678.     }
  6679.     return 0;
  6680.   }
  6681.   if ( ParseCommand(&a3, L"BONESCALE") || ParseCommand(&a3, L"BS") )
  6682.   {
  6683.     if ( !v268(a3, L"BI=", &v1445) )
  6684.       v1445 = 0;
  6685.     if ( !Parse(a3, L"SIZE=", &v1443) )
  6686.       *(float *)&v1443 = 1.0;
  6687.     v919 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6688.     v920 = *(_DWORD *)(v919 + 956);
  6689.     if ( v920 && (*(int (__thiscall **)(_DWORD))(*(_DWORD *)v920 + 856))(*(_DWORD *)(v919 + 956)) )
  6690.     {
  6691.       v921 = (*(int (__thiscall **)(int))(*(_DWORD *)v920 + 856))(v920);
  6692.       v922 = (USkeletalMeshInstance *)sub_200D66D0(v921);
  6693.       USkeletalMeshInstance::SetBoneScale(v922, *(float *)&v1443, v1445);
  6694.     }
  6695.     return 1;
  6696.   }
  6697.   if ( ParseCommand(&a3, L"FLY") )
  6698.   {
  6699.     if ( !Parse(a3, L"DIST=", &v1389) )
  6700.       *(float *)&v1389 = 1000.0;
  6701.     if ( !v268(a3, L"TYPE=", &v1387) )
  6702.       v1387 = 0;
  6703.     v579 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6704.     if ( v579 )
  6705.     {
  6706.       v580 = *(_DWORD *)(v579 + 956);
  6707.       if ( v580 )
  6708.       {
  6709.         v581 = (float *)FRotator::Vector(v580 + 448, &v989);
  6710.         v582 = sub_20005D30((float *)&v1002, v581, *(float *)&v1389);
  6711.         *(float *)&a4 = *(float *)(v580 + 436) - *v582;
  6712.         v1576 = *(float *)(v580 + 440) - v582[1];
  6713.         v1577 = *(float *)(v580 + 444) - v582[2];
  6714.         v1261 = a4;
  6715.         v1262 = v1576;
  6716.         v1263 = v1577;
  6717.         AController::FlyTo(*(_DWORD **)(v580 + 7216), *(float *)&a4, v1576, v1577, v1387, 0, COERCE_INT(1.0));
  6718.       }
  6719.     }
  6720.     return 1;
  6721.   }
  6722.   if ( ParseCommand(&a3, L"DASH") )
  6723.   {
  6724.     if ( !v268(a3, L"TYPE=", &v1385) )
  6725.       v1385 = 0;
  6726.     if ( !v268(a3, L"LEVEL=", &v1231) )
  6727.       v1231 = 0;
  6728.     v583 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6729.     if ( v583 && (*(int (**)(void))(*(_DWORD *)v583 + 920))() )
  6730.     {
  6731.       v584 = (*(int (**)(void))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 920))();
  6732.       v585 = sub_200D25F0(v584);
  6733.       if ( v1385 )
  6734.       {
  6735.         if ( v1385 == 1 )
  6736.         {
  6737.           v589 = (float *)FRotator::Vector(v585 + 448, &v988);
  6738.           v590 = sub_20005D30((float *)&v1000, v589, 300.0);
  6739.           *(float *)&a4 = *v590 + *(float *)(v585 + 436);
  6740.           v1576 = v590[1] + *(float *)(v585 + 440);
  6741.           v1577 = v590[2] + *(float *)(v585 + 444);
  6742.           v1257 = a4;
  6743.           v1258 = v1576;
  6744.           v1259 = v1577 + 50.0;
  6745.           AController::FlyTo(*(_DWORD **)(v585 + 7216), *(float *)&a4, v1576, v1259, 2, 0, COERCE_INT(1.0));
  6746.         }
  6747.         else if ( v1385 == 2 )
  6748.         {
  6749.           v591 = (void (__thiscall **)(int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, signed int))(*(_DWORD *)v585 + 876);
  6750.           v592 = (float *)APawn::GetSpAtk02AnimName((unsigned __int8 *)v585, &v1058);
  6751.           LODWORD(v939[1]) = 1;
  6752.           v939[0] = 0.0;
  6753.           v938 = 0.1;
  6754.           v937 = *(float *)(v585 + 1732);
  6755.           v936 = *v592;
  6756.           v935 = 0.0;
  6757.           (*v591)(v585, 0, LODWORD(v936), LODWORD(v937), 0.1, 0, 1);
  6758.         }
  6759.       }
  6760.       else
  6761.       {
  6762.         v586 = *(_DWORD *)(v585 + 92);
  6763.         if ( v586 & 0x10000 )
  6764.           *(_DWORD *)(v585 + 92) = v586 & 0xFFFEFFFF;
  6765.         v587 = (void (__thiscall **)(int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, signed int))(*(_DWORD *)v585 + 876);
  6766.         v588 = (float *)APawn::GetSpAtk01AnimName((unsigned __int8 *)v585, &v1059);
  6767.         LODWORD(v939[1]) = 1;
  6768.         v939[0] = 0.0;
  6769.         v938 = 0.1;
  6770.         v937 = *(float *)(v585 + 1732);
  6771.         v936 = *v588;
  6772.         v935 = 0.0;
  6773.         (*v587)(v585, 0, LODWORD(v936), LODWORD(v937), 0.1, 0, 1);
  6774.       }
  6775.     }
  6776.     return 1;
  6777.   }
  6778.   if ( ParseCommand(&a3, L"TRANS") )
  6779.   {
  6780.     v593 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6781.     if ( v593 && (*(int (**)(void))(*(_DWORD *)v593 + 920))() )
  6782.     {
  6783.       v594 = (*(int (**)(void))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 920))();
  6784.       v595 = sub_200D25F0(v594);
  6785.       v596 = (void (__thiscall **)(int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)v595 + 876);
  6786.       LODWORD(v939[1]) = 1;
  6787.       v939[0] = 0.0;
  6788.       v938 = 0.1;
  6789.       v937 = *(float *)(v595 + 1736);
  6790.       *(float *)&a4 = COERCE_FLOAT(&v936);
  6791.       FName::FName(&v936, L"Social02", 1);
  6792.       v935 = 0.0;
  6793.       (*v596)(v595, 0, LODWORD(v936), LODWORD(v937), LODWORD(v938), LODWORD(v939[0]), LODWORD(v939[1]));
  6794.     }
  6795.     return 1;
  6796.   }
  6797.   if ( ParseCommand(&a3, L"SETROT") )
  6798.   {
  6799.     if ( !v268(a3, L"P=", &v1462) )
  6800.       v1462 = 0;
  6801.     if ( !v268(a3, L"Y=", &v1390) )
  6802.       v1390 = 0;
  6803.     if ( !v268(a3, L"R=", &v1394) )
  6804.       v1394 = 0;
  6805.     v597 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6806.     if ( v597 && *(_DWORD *)(v597 + 956) )
  6807.     {
  6808.       FRotator::FRotator(&v1140, v1462, v1390, v1394);
  6809.       v598 = (_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 816);
  6810.       *v598 = v1140;
  6811.       v598[1] = v1141;
  6812.       v598[2] = v1142;
  6813.     }
  6814.     return 1;
  6815.   }
  6816.   if ( ParseCommand(&a3, L"bighead") )
  6817.   {
  6818.     if ( !Parse(a3, L"size=", &v1426) )
  6819.       *(float *)&v1426 = 2.0;
  6820.     v599 = sub_200D25F0(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956));
  6821.     v600 = v599;
  6822.     if ( !v599 || !(*(int (__thiscall **)(int))(*(_DWORD *)v599 + 856))(v599) )
  6823.       return 1;
  6824.     v601 = (*(int (__thiscall **)(int))(*(_DWORD *)v600 + 856))(v600);
  6825.     v602 = (_DWORD *)sub_200D66D0(v601);
  6826.     if ( v602 )
  6827.     {
  6828.       v603 = **(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  6829.       LODWORD(v939[1]) = &v1057;
  6830.       v604 = (int *)(*(int (__stdcall **)(char *))(v603 + 588))(&v1057);
  6831.       v939[1] = 0.0;
  6832.       USkeletalMeshInstance::SetBoneScale(v602, 0, *(float *)&v1426, *v604, 0);
  6833.       return 0;
  6834.     }
  6835.     return 0;
  6836.   }
  6837.   if ( ParseCommand(&a3, L"Lodchange") )
  6838.   {
  6839.     v605 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  6840.     if ( v605 )
  6841.     {
  6842.       v606 = *(_DWORD *)(v605 + 956);
  6843.       if ( v606 )
  6844.       {
  6845.         if ( (*(int (__thiscall **)(int))(*(_DWORD *)v606 + 856))(v606) )
  6846.         {
  6847.           v607 = (*(int (**)(void))(**(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 856))();
  6848.           v608 = v607;
  6849.           if ( v607 )
  6850.           {
  6851.             if ( ++*(_DWORD *)(v607 + 336) > *(_DWORD *)((*(int (**)(void))(**(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60)
  6852.                                                                                         + 956)
  6853.                                                                           + 852))()
  6854.                                                        + 540) )
  6855.               *(_DWORD *)(v608 + 336) = 0;
  6856.           }
  6857.         }
  6858.       }
  6859.     }
  6860.     return 1;
  6861.   }
  6862.   if ( ParseCommand(&a3, L"Env Reload") )
  6863.   {
  6864.     if ( *((_DWORD *)dword_2077EE00 + 29) )
  6865.     {
  6866.       v609 = **((_DWORD **)dword_2077EE00 + 29);
  6867.       LODWORD(v939[1]) = L"Env.INT";
  6868.       (*(void (__stdcall **)(const wchar_t *))(v609 + 112))(L"Env.INT");
  6869.       v1095 = sub_200D26B0;
  6870.       v1096 = 0;
  6871.       v1159 = sub_200D26B0;
  6872.       v1160 = 0;
  6873.       LODWORD(v939[1]) = &v1159;
  6874.       UMasterLevel::Iterate(*((_DWORD **)dword_2077EE00 + 109), (int)&v1159);
  6875.       v1460 = &`UInput::Exec'[::DB]::ActorClearRenderData::`vftable';
  6876.       v939[1] = 0.0;
  6877.       LODWORD(v939[0]) = &v1460;
  6878.       UMasterLevel::IterateActors(*((UMasterLevel **)dword_2077EE00 + 109), (struct ActorFunc *)&v1460, 0);
  6879.     }
  6880.     v610 = **(_DWORD **)GConfig;
  6881.     LODWORD(v939[1]) = L"env.int";
  6882.     v939[0] = GL2FogSpeed;
  6883.     v938 = COERCE_FLOAT(L"FogSpeed");
  6884.     v937 = COERCE_FLOAT(L"FOG");
  6885.     (*(void (__stdcall **)(const wchar_t *, const wchar_t *, _DWORD, const wchar_t *))(v610 + 8))(
  6886.       L"FOG",
  6887.       L"FogSpeed",
  6888.       LODWORD(GL2FogSpeed),
  6889.       L"env.int");
  6890.     if ( *(float *)LODWORD(GL2TerrainCR) >= 5.0 )
  6891.     {
  6892.       if ( *(float *)LODWORD(GL2TerrainCR) < 5.0 || *(float *)LODWORD(GL2TerrainCR) >= 6.0 )
  6893.       {
  6894.         if ( *(float *)LODWORD(GL2TerrainCR) < 6.0 || *(float *)LODWORD(GL2TerrainCR) >= 7.0 )
  6895.         {
  6896.           if ( *(float *)LODWORD(GL2TerrainCR) < 7.0 || *(float *)LODWORD(GL2TerrainCR) >= 8.0 )
  6897.           {
  6898.             if ( *(float *)LODWORD(GL2TerrainCR) < 8.0 )
  6899.             {
  6900. LABEL_1542:
  6901.               *(float *)LODWORD(GL2FogStartOriginal) = *(float *)LODWORD(GL2FogStart);
  6902.               *(float *)LODWORD(GL2FogEndOriginal) = *(float *)LODWORD(GL2FogEnd);
  6903.               return 1;
  6904.             }
  6905.             v616 = **(_DWORD **)GConfig;
  6906.             LODWORD(v939[1]) = L"env.int";
  6907.             v939[0] = GL2FogStart;
  6908.             v938 = COERCE_FLOAT(L"StartRange5");
  6909.             v937 = COERCE_FLOAT(L"FOG");
  6910.             (*(void (__stdcall **)(const wchar_t *, const wchar_t *, _DWORD, const wchar_t *, const wchar_t *, int, struct FOutputDevice *))(v616 + 8))(
  6911.               L"FOG",
  6912.               L"StartRange5",
  6913.               LODWORD(GL2FogStart),
  6914.               L"env.int",
  6915.               v940,
  6916.               v941,
  6917.               v942);
  6918.             v612 = *(int **)GConfig;
  6919.             v942 = (struct FOutputDevice *)L"env.int";
  6920.             v941 = LODWORD(GL2FogEnd);
  6921.             v940 = L"EndRange5";
  6922.           }
  6923.           else
  6924.           {
  6925.             v615 = **(_DWORD **)GConfig;
  6926.             LODWORD(v939[1]) = L"env.int";
  6927.             v939[0] = GL2FogStart;
  6928.             v938 = COERCE_FLOAT(L"StartRange4");
  6929.             v937 = COERCE_FLOAT(L"FOG");
  6930.             (*(void (__stdcall **)(const wchar_t *, const wchar_t *, _DWORD, const wchar_t *, const wchar_t *, int, struct FOutputDevice *))(v615 + 8))(
  6931.               L"FOG",
  6932.               L"StartRange4",
  6933.               LODWORD(GL2FogStart),
  6934.               L"env.int",
  6935.               v940,
  6936.               v941,
  6937.               v942);
  6938.             v612 = *(int **)GConfig;
  6939.             v942 = (struct FOutputDevice *)L"env.int";
  6940.             v941 = LODWORD(GL2FogEnd);
  6941.             v940 = L"EndRange4";
  6942.           }
  6943.         }
  6944.         else
  6945.         {
  6946.           v614 = **(_DWORD **)GConfig;
  6947.           LODWORD(v939[1]) = L"env.int";
  6948.           v939[0] = GL2FogStart;
  6949.           v938 = COERCE_FLOAT(L"StartRange3");
  6950.           v937 = COERCE_FLOAT(L"FOG");
  6951.           (*(void (__stdcall **)(const wchar_t *, const wchar_t *, _DWORD, const wchar_t *, const wchar_t *, int, struct FOutputDevice *))(v614 + 8))(
  6952.             L"FOG",
  6953.             L"StartRange3",
  6954.             LODWORD(GL2FogStart),
  6955.             L"env.int",
  6956.             v940,
  6957.             v941,
  6958.             v942);
  6959.           v612 = *(int **)GConfig;
  6960.           v942 = (struct FOutputDevice *)L"env.int";
  6961.           v941 = LODWORD(GL2FogEnd);
  6962.           v940 = L"EndRange3";
  6963.         }
  6964.       }
  6965.       else
  6966.       {
  6967.         v613 = **(_DWORD **)GConfig;
  6968.         LODWORD(v939[1]) = L"env.int";
  6969.         v939[0] = GL2FogStart;
  6970.         v938 = COERCE_FLOAT(L"StartRange2");
  6971.         v937 = COERCE_FLOAT(L"FOG");
  6972.         (*(void (__stdcall **)(const wchar_t *, const wchar_t *, _DWORD, const wchar_t *, const wchar_t *, int, struct FOutputDevice *))(v613 + 8))(
  6973.           L"FOG",
  6974.           L"StartRange2",
  6975.           LODWORD(GL2FogStart),
  6976.           L"env.int",
  6977.           v940,
  6978.           v941,
  6979.           v942);
  6980.         v612 = *(int **)GConfig;
  6981.         v942 = (struct FOutputDevice *)L"env.int";
  6982.         v941 = LODWORD(GL2FogEnd);
  6983.         v940 = L"EndRange2";
  6984.       }
  6985.     }
  6986.     else
  6987.     {
  6988.       v611 = **(_DWORD **)GConfig;
  6989.       LODWORD(v939[1]) = L"env.int";
  6990.       v939[0] = GL2FogStart;
  6991.       v938 = COERCE_FLOAT(L"StartRange1");
  6992.       v937 = COERCE_FLOAT(L"FOG");
  6993.       (*(void (__stdcall **)(const wchar_t *, const wchar_t *, _DWORD, const wchar_t *, const wchar_t *, int, struct FOutputDevice *))(v611 + 8))(
  6994.         L"FOG",
  6995.         L"StartRange1",
  6996.         LODWORD(GL2FogStart),
  6997.         L"env.int",
  6998.         v940,
  6999.         v941,
  7000.         v942);
  7001.       v612 = *(int **)GConfig;
  7002.       v942 = (struct FOutputDevice *)L"env.int";
  7003.       v941 = LODWORD(GL2FogEnd);
  7004.       v940 = L"EndRange1";
  7005.     }
  7006.     v617 = *v612;
  7007.     LODWORD(v939[1]) = L"FOG";
  7008.     (*(void (__stdcall **)(const wchar_t *))(v617 + 8))(L"FOG");
  7009.     goto LABEL_1542;
  7010.   }
  7011.   if ( ParseCommand(&a3, L"SETTIME") )
  7012.   {
  7013.     if ( *((_DWORD *)dword_2077EE00 + 29) )
  7014.     {
  7015.       v1400 = 0.0;
  7016.       v1509 = 0;
  7017.       v1478 = 0.0;
  7018.       HIBYTE(a4) = 0;
  7019.       v1560 = 0;
  7020.       Parse(a3, L"TIME=", &v1400);
  7021.       if ( !v268(a3, L"ie=", &v1509) )
  7022.         v1509 = *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 29) + 324);
  7023.       if ( !Parse(a3, L"tr=", &v1478) )
  7024.         v1478 = (double)*(signed int *)(*((_DWORD *)dword_2077EE00 + 29) + 300);
  7025.       v1560 = (signed int)v1400;
  7026.       *(float *)&a4 = v1400 - (double)(signed int)v1400;
  7027.       LODWORD(v1576) = (signed int)(*(float *)&a4 * 60.0);
  7028.       HIBYTE(a4) = LOBYTE(v1576);
  7029.       v1552 = 0.0;
  7030.       UL2NEnvManager::SetNTime(*((UL2NEnvManager **)dword_2077EE00 + 29), &v1560, (unsigned __int8 *)&a4 + 3, &v1552);
  7031.       *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 29) + 324) = v1509;
  7032.       *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 29) + 300) = (signed int)v1478;
  7033.       v1062 = sub_200D26B0;
  7034.       v1063 = 0;
  7035.       v1161 = sub_200D26B0;
  7036.       v1162 = 0;
  7037.       LODWORD(v939[1]) = &v1161;
  7038.       UMasterLevel::Iterate(*((_DWORD **)dword_2077EE00 + 109), (int)&v1161);
  7039.       return 0;
  7040.     }
  7041.     return 0;
  7042.   }
  7043.   if ( ParseCommand(&a3, L"SETTIMERATIO") )
  7044.   {
  7045.     if ( *((_DWORD *)dword_2077EE00 + 29) )
  7046.     {
  7047.       v1507 = 0;
  7048.       v268(a3, L"RATIO=", &v1507);
  7049.       if ( (unsigned int)v1507 <= 0xE0F )
  7050.       {
  7051.         UL2NEnvManager::SetNTimeRatio(*((UL2NEnvManager **)dword_2077EE00 + 29), &v1507);
  7052.         return 0;
  7053.       }
  7054.     }
  7055.     return 0;
  7056.   }
  7057.   if ( ParseCommand(&a3, L"CancelMAGICTEST") && !*(_DWORD *)GIsEditor )
  7058.     return 0;
  7059.   if ( ParseCommand(&a3, L"DeleteSelectedActor") && !*(_DWORD *)GIsEditor )
  7060.   {
  7061.     if ( *((_DWORD *)v4 + 932) == 1 )
  7062.     {
  7063.       v618 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7064.       if ( v618 )
  7065.       {
  7066.         v619 = *(_DWORD *)(v618 + 956);
  7067.         if ( v619 )
  7068.         {
  7069.           if ( *(_DWORD *)(v618 + 216) && (*(int (**)(void))(**(_DWORD **)(v619 + 7216) + 920))() )
  7070.           {
  7071.             v620 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7072.             v621 = *(_DWORD **)(v620 + 216);
  7073.             v622 = (void (__thiscall **)(_DWORD *, _DWORD))(*v621 + 164);
  7074.             v623 = *(_DWORD *)(*(_DWORD *)(v620 + 956) + 7216);
  7075.             v939[1] = 0.0;
  7076.             LODWORD(v939[1]) = (*(int (__stdcall **)(_DWORD))(*(_DWORD *)v623 + 920))(0);
  7077.             (*v622)(v621, LODWORD(v939[1]));
  7078.             return 0;
  7079.           }
  7080.         }
  7081.       }
  7082.     }
  7083.     return 0;
  7084.   }
  7085.   if ( !ParseCommand(&a3, L"pv") && !ParseCommand(&a3, L"PawnViewer") || *(_DWORD *)GIsEditor )
  7086.   {
  7087.     if ( (ParseCommand(&a3, L"nv") || ParseCommand(&a3, L"NpcViewer")) && !*(_DWORD *)GIsEditor )
  7088.     {
  7089.       v632 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7090.       if ( !v632 || !*(_DWORD *)(v632 + 956) || !*(_DWORD *)(v632 + 216) )
  7091.         return 0;
  7092.       if ( *((_DWORD *)dword_2077EE00 + 28) )
  7093.       {
  7094.         if ( *(_DWORD *)GIsL2Console && !*(_DWORD *)GIsL2NetLogin )
  7095.         {
  7096.           v640 = *(_DWORD *)GL2Console;
  7097.           LODWORD(v939[1]) = 3;
  7098.           (*(void (__stdcall **)(signed int))(v640 + 1648))(3);
  7099.           return 0;
  7100.         }
  7101.         return 0;
  7102.       }
  7103.       if ( *(_DWORD *)GIsL2Console || *(_DWORD *)GIsL2NetLogin )
  7104.         return 0;
  7105.       v939[1] = *((float *)dword_2077EE00 + 28);
  7106.       v633 = UObject::StaticLoadClass(
  7107.                UL2ConsoleWnd::PrivateStaticClass,
  7108.                0,
  7109.                L"ini:Engine.Engine.L2Console",
  7110.                0,
  7111.                1,
  7112.                LODWORD(v939[1]));
  7113.       v939[1] = 0.0;
  7114.       v939[0] = *(float *)GError;
  7115.       v938 = 0.0;
  7116.       v937 = 0.0;
  7117.       v936 = v634;
  7118.       *(float *)&a4 = COERCE_FLOAT(&v936);
  7119.       FName::FName(&v936, 0);
  7120.       v636 = UObject::GetTransientPackage(v635);
  7121.       v637 = (FL2ReplayManager *)UObject::StaticConstructObject(
  7122.                                    v633,
  7123.                                    v636,
  7124.                                    LODWORD(v936),
  7125.                                    LODWORD(v937),
  7126.                                    LODWORD(v938),
  7127.                                    LODWORD(v939[0]),
  7128.                                    LODWORD(v939[1]));
  7129.       *((_DWORD *)dword_2077EE00 + 28) = v637;
  7130.       GL2Console = v637;
  7131.       if ( *((_DWORD *)dword_2077EE00 + 28) )
  7132.       {
  7133.         v638 = **((_DWORD **)dword_2077EE00 + 28);
  7134.         LODWORD(v939[1]) = dword_2077EE00;
  7135.         (*(void (__stdcall **)(UGameEngine *))(v638 + 1644))(dword_2077EE00);
  7136.       }
  7137.       *(_DWORD *)GIsL2Console = 1;
  7138.       v639 = *(_DWORD *)GL2Console;
  7139.       LODWORD(v939[1]) = 3;
  7140.       (*(void (__stdcall **)(signed int))(v639 + 1648))(3);
  7141.       return 0;
  7142.     }
  7143.     if ( (ParseCommand(&a3, L"sv") || ParseCommand(&a3, L"SkillViewer")) && !*(_DWORD *)GIsEditor )
  7144.     {
  7145.       v641 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7146.       if ( !v641 || !*(_DWORD *)(v641 + 956) || !*(_DWORD *)(v641 + 216) )
  7147.         return 0;
  7148.       if ( *((_DWORD *)dword_2077EE00 + 28) )
  7149.       {
  7150.         if ( *(_DWORD *)GIsL2Console && !*(_DWORD *)GIsL2NetLogin )
  7151.         {
  7152.           v649 = *(_DWORD *)GL2Console;
  7153.           LODWORD(v939[1]) = 5;
  7154.           (*(void (__stdcall **)(signed int))(v649 + 1648))(5);
  7155.           return 0;
  7156.         }
  7157.         return 0;
  7158.       }
  7159.       if ( *(_DWORD *)GIsL2Console || *(_DWORD *)GIsL2NetLogin )
  7160.         return 0;
  7161.       v939[1] = *((float *)dword_2077EE00 + 28);
  7162.       v642 = UObject::StaticLoadClass(
  7163.                UL2ConsoleWnd::PrivateStaticClass,
  7164.                0,
  7165.                L"ini:Engine.Engine.L2Console",
  7166.                0,
  7167.                1,
  7168.                LODWORD(v939[1]));
  7169.       v939[1] = 0.0;
  7170.       v939[0] = *(float *)GError;
  7171.       v938 = 0.0;
  7172.       v937 = 0.0;
  7173.       v936 = v643;
  7174.       *(float *)&a4 = COERCE_FLOAT(&v936);
  7175.       FName::FName(&v936, 0);
  7176.       v645 = UObject::GetTransientPackage(v644);
  7177.       v646 = (FL2ReplayManager *)UObject::StaticConstructObject(
  7178.                                    v642,
  7179.                                    v645,
  7180.                                    LODWORD(v936),
  7181.                                    LODWORD(v937),
  7182.                                    LODWORD(v938),
  7183.                                    LODWORD(v939[0]),
  7184.                                    LODWORD(v939[1]));
  7185.       *((_DWORD *)dword_2077EE00 + 28) = v646;
  7186.       GL2Console = v646;
  7187.       if ( *((_DWORD *)dword_2077EE00 + 28) )
  7188.       {
  7189.         v647 = **((_DWORD **)dword_2077EE00 + 28);
  7190.         LODWORD(v939[1]) = dword_2077EE00;
  7191.         (*(void (__stdcall **)(UGameEngine *))(v647 + 1644))(dword_2077EE00);
  7192.       }
  7193.       *(_DWORD *)GIsL2Console = 1;
  7194.       v648 = *(_DWORD *)GL2Console;
  7195.       LODWORD(v939[1]) = 5;
  7196.       (*(void (__stdcall **)(signed int))(v648 + 1648))(5);
  7197.       return 0;
  7198.     }
  7199.     if ( ParseCommand(&a3, L"SHOWMAP") && !*(_DWORD *)GIsEditor )
  7200.     {
  7201.       v650 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7202.       if ( v650
  7203.         && *(_DWORD *)(v650 + 956)
  7204.         && *(_DWORD *)(v650 + 216)
  7205.         && GL2Console
  7206.         && *(_DWORD *)GIsL2Console
  7207.         && !*(_DWORD *)GIsL2NetLogin )
  7208.       {
  7209.         v651 = *(_DWORD *)GL2Console;
  7210.         LODWORD(v939[1]) = L"///ShowWindow MinimapWnd";
  7211.         (*(void (__stdcall **)(const wchar_t *))(v651 + 1992))(L"///ShowWindow MinimapWnd");
  7212.         return 0;
  7213.       }
  7214.       return 0;
  7215.     }
  7216.     if ( ParseCommand(&a3, L"HERO") && !*(_DWORD *)GIsEditor )
  7217.     {
  7218.       v652 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7219.       *(_DWORD *)(v652 + 8136) ^= ((unsigned __int8)*(_DWORD *)(v652 + 8136) ^ (unsigned __int8)~(unsigned __int8)*(_DWORD *)(v652 + 8136)) & 2;
  7220.       return 0;
  7221.     }
  7222.     if ( ParseCommand(&a3, L"HDR") && !*(_DWORD *)GIsEditor )
  7223.     {
  7224.       v653 = appAtoi(a3);
  7225.       if ( v653 >= 0 )
  7226.       {
  7227.         v654 = *(_DWORD *)dword_2077EE00;
  7228.         LODWORD(v939[1]) = v653;
  7229.         (*(void (__stdcall **)(int))(v654 + 204))(v653);
  7230.         return 0;
  7231.       }
  7232.       return 0;
  7233.     }
  7234.     if ( ParseCommand(&a3, L"PE") && !*(_DWORD *)GIsEditor )
  7235.     {
  7236.       v655 = appAtoi(a3);
  7237.       if ( v655 >= 0 )
  7238.       {
  7239.         if ( v655 )
  7240.         {
  7241.           v656 = v655 - 1;
  7242.           if ( v656 )
  7243.           {
  7244.             if ( v656 == 1 )
  7245.             {
  7246.               v657 = TSingleton<L2Configuration>::GetObj(0, v940);
  7247.               L2UserHardWareInformation::SetCPUSpeed(v657);
  7248.               v658 = TSingleton<L2Configuration>::GetObj(1, v941);
  7249.               L2Configuration::SetDepthOfField(v658);
  7250.               return 0;
  7251.             }
  7252.             return 0;
  7253.           }
  7254.           LODWORD(v939[1]) = 1;
  7255.         }
  7256.         else
  7257.         {
  7258.           v939[1] = 0.0;
  7259.         }
  7260.         v659 = TSingleton<L2Configuration>::GetObj(LODWORD(v939[1]), v940);
  7261.         L2UserHardWareInformation::SetCPUSpeed(v659);
  7262.         v660 = TSingleton<L2Configuration>::GetObj(0, v941);
  7263.         L2Configuration::SetDepthOfField(v660);
  7264.         return 0;
  7265.       }
  7266.       return 0;
  7267.     }
  7268.     if ( ParseCommand(&a3, L"dof") && !*(_DWORD *)GIsEditor )
  7269.     {
  7270.       v661 = 0;
  7271.       if ( Parse(a3, L"focus=", &v1221) )
  7272.       {
  7273.         v939[1] = *(float *)&v1221;
  7274.         v662 = (FDepthOfField *)TSingleton<FDepthOfField>::GetObjPtr();
  7275.         FDepthOfField::SetFocusDistance(v662, v939[1]);
  7276.         v661 = 1;
  7277.       }
  7278.       if ( Parse(a3, L"blur=", &v1321) )
  7279.       {
  7280.         v663 = TSingleton<L2Configuration>::GetObj(v940, v941);
  7281.         if ( L2Configuration::GetDepthOfField(v663) && *((_DWORD *)dword_2077EE00 + 231) )
  7282.         {
  7283.           v664 = **((_DWORD **)dword_2077EE00 + 231);
  7284.           v941 = v1321;
  7285.           (*(void (__stdcall **)(int))(v664 + 120))(v1321);
  7286.           return 0;
  7287.         }
  7288.       }
  7289.       else if ( !v661 )
  7290.       {
  7291.         v665 = TSingleton<L2Configuration>::GetObj(v940, v941);
  7292.         v941 = L2Configuration::GetDepthOfField(v665) == 0;
  7293.         v666 = TSingleton<L2Configuration>::GetObj(v941, v942);
  7294.         L2Configuration::SetDepthOfField(v666);
  7295.         return 0;
  7296.       }
  7297.       return 0;
  7298.     }
  7299.     if ( ParseCommand(&a3, L"water") )
  7300.     {
  7301.       *(_DWORD *)GL2ShaderWater = *(_DWORD *)GL2ShaderWater == 0;
  7302.       return 0;
  7303.     }
  7304.     if ( ParseCommand(&a3, L"inst") )
  7305.     {
  7306.       if ( !appStrlen(a3) )
  7307.       {
  7308.         dword_206FB074 = 0;
  7309.         return 0;
  7310.       }
  7311.       v667 = appAtoi(a3);
  7312.       if ( v667 >= 0 )
  7313.       {
  7314.         dword_206FB074 = v667;
  7315.         return 0;
  7316.       }
  7317.       return 0;
  7318.     }
  7319.     if ( ParseCommand(&a3, L"Cast") && !*(_DWORD *)GIsEditor )
  7320.     {
  7321.       v668 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7322.       if ( v668 && *(_DWORD *)(v668 + 956) && *(_DWORD *)(v668 + 216) && v268(a3, L"id=", (int *)v1505) )
  7323.       {
  7324.         if ( !v268(a3, L"lv=", &v1489) )
  7325.           v1489 = 1;
  7326.         v669 = *(_DWORD **)(*((_DWORD *)v4 + 926) + 60);
  7327.         v670 = (APawn *)v669[239];
  7328.         if ( (*(int (**)(void))(*v669 + 920))() )
  7329.           *(float *)&v671 = COERCE_FLOAT((*(int (**)(void))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 920))());
  7330.         else
  7331.           v671 = *(ULevel **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7332.         v1575 = v671;
  7333.         *(float *)&v672 = COERCE_FLOAT(FL2GameData::GetMSData((FL2GameData *)GL2GameData, v1505[0], v1489));
  7334.         v673 = *(float *)&v672;
  7335.         if ( *(float *)&v672 != 0.0 )
  7336.         {
  7337.           if ( *((_DWORD *)v672 + 12) )
  7338.           {
  7339.             (*(void (**)(void))(**((_DWORD **)v670 + 1804) + 860))();
  7340.             APawn::NActionStop(v670);
  7341.             v939[1] = v673;
  7342.             v939[0] = 1.0;
  7343.             v938 = *(float *)&v671;
  7344.             APawn::SetMagicInfo(
  7345.               v670,
  7346.               v1505[0],
  7347.               v1489,
  7348.               *(float *)(LODWORD(v673) + 52),
  7349.               *(float *)(LODWORD(v673) + 52),
  7350.               v671,
  7351.               1.0,
  7352.               (struct FL2MagicSkillData *)LODWORD(v673));
  7353.             LODWORD(v939[1]) = &v1575;
  7354.             v680 = (_DWORD *)((*(int (__thiscall **)(APawn *))(*(_DWORD *)v670 + 724))(v670) + 92);
  7355.             sub_200DE270(v680, (_DWORD *)LODWORD(v939[1]));
  7356.             *(_DWORD *)((*(int (__thiscall **)(APawn *))(*(_DWORD *)v670 + 724))(v670) + 60) = 1;
  7357.             if ( APawn::InitSkillProcess(v670) )
  7358.             {
  7359.               APawn::SetPrimeActionID(v670, 5);
  7360.               APawn::SetPrimeActionTarget(v670, v671);
  7361.               return 0;
  7362.             }
  7363.           }
  7364.           else
  7365.           {
  7366.             v674 = 0;
  7367.             v1317 = 0;
  7368.             FName::FName(&v1227, L"none", 1);
  7369.             v675 = (int *)(LODWORD(v673) + 68);
  7370.             if ( FName::operator!=(v675, &v1227) )
  7371.             {
  7372.               LODWORD(v939[1]) = sub_2009B770(v675);
  7373.               FString::Printf(&v1099, L"LineageSkillEffect.l2_%s_skill", v939[1]);
  7374.               LOBYTE(v1544) = 32;
  7375.               v939[1] = 0.0;
  7376.               LODWORD(v939[0]) = 0x2000;
  7377.               v938 = 0.0;
  7378.               v676 = FString::operator*(&v1099);
  7379.               v678 = (int *)UObject::StaticLoadClass(
  7380.                               UL2SkillEffect::PrivateStaticClass,
  7381.                               0,
  7382.                               v676,
  7383.                               LODWORD(v938),
  7384.                               LODWORD(v939[0]),
  7385.                               LODWORD(v939[1]));
  7386.               if ( v678 )
  7387.               {
  7388.                 v939[1] = v677;
  7389.                 *(float *)&a4 = COERCE_FLOAT(&v939[1]);
  7390.                 FName::FName(&v939[1], 0);
  7391.                 v674 = (UL2SkillEffect *)sub_200D2560(v678, v679, SLODWORD(v939[1]));
  7392.                 v1317 = v674;
  7393.               }
  7394.               LOBYTE(v1544) = 0;
  7395.               FString::~FString(&v1099);
  7396.               if ( v674 )
  7397.               {
  7398.                 UL2SkillEffect::TransientEffect(v674, v670, v1575, *(int *)v1505);
  7399.                 return 0;
  7400.               }
  7401.             }
  7402.           }
  7403.         }
  7404.       }
  7405.       return 0;
  7406.     }
  7407.     if ( ParseCommand(&a3, L"SkillRemain") && !*(_DWORD *)GIsEditor )
  7408.     {
  7409.       v681 = *(_DWORD **)(*((_DWORD *)v4 + 926) + 60);
  7410.       if ( v681 )
  7411.       {
  7412.         if ( v681[239] )
  7413.         {
  7414.           if ( v681[54] )
  7415.           {
  7416.             v682 = (*(int (**)(void))(*v681 + 920))();
  7417.             if ( v268(a3, L"id=", (int *)&v1309) )
  7418.             {
  7419.               if ( v268(a3, L"level=", (int *)&v1225)
  7420.                 && v268(a3, L"Sec=", &v1215)
  7421.                 && v268(a3, L"HIt=", (int *)&v1313)
  7422.                 && v682
  7423.                 && dword_2077EE00 )
  7424.               {
  7425.                 User::User((User *)&v944);
  7426.                 User::User((User *)&v948);
  7427.                 v945 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7428.                 v949 = sub_200D25F0(v682);
  7429.                 v683 = *(_DWORD *)dword_2077EE00;
  7430.                 v939[1] = (double)v1215;
  7431.                 v939[0] = 0.0;
  7432.                 v938 = v1313;
  7433.                 v937 = v1225;
  7434.                 v936 = v1309;
  7435.                 v935 = COERCE_FLOAT(&v948);
  7436.                 v934 = COERCE_FLOAT(&v944);
  7437.                 (*(void (__stdcall **)(char *, char *, float, float, float, _DWORD, _DWORD))(v683 + 772))(
  7438.                   &v944,
  7439.                   &v948,
  7440.                   COERCE_FLOAT(LODWORD(v1309)),
  7441.                   COERCE_FLOAT(LODWORD(v1225)),
  7442.                   COERCE_FLOAT(LODWORD(v1313)),
  7443.                   0,
  7444.                   LODWORD(v939[1]));
  7445.                 return 0;
  7446.               }
  7447.             }
  7448.           }
  7449.         }
  7450.       }
  7451.       return 0;
  7452.     }
  7453.     if ( ParseCommand(&a3, L"beginmr") && !*(_DWORD *)GIsEditor )
  7454.     {
  7455.       v684 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7456.       if ( v684 )
  7457.       {
  7458.         v685 = *(_DWORD *)(v684 + 956);
  7459.         if ( v685 )
  7460.         {
  7461.           if ( *(_DWORD *)(v684 + 216) )
  7462.           {
  7463.             v1035 = 100;
  7464.             v1036 = 150;
  7465.             v1037 = 120;
  7466.             v1038 = 10;
  7467.             v1039 = 20;
  7468.             v1040 = 40;
  7469.             v1041 = 80;
  7470.             v1042 = 100;
  7471.             v1043 = 120;
  7472.             v1044 = 160;
  7473.             v1045 = 200;
  7474.             v1046 = 40;
  7475.             v1047 = 10;
  7476.             v1048 = 100;
  7477.             v1049 = 100;
  7478.             v1050 = 100;
  7479.             v1051 = 100;
  7480.             v1052 = 100;
  7481.             v1053 = 100;
  7482.             v1054 = 100;
  7483.             v986 = 0.0;
  7484.             *(float *)&a4 = *(float *)(v685 + 436) + 0.0;
  7485.             v998 = a4;
  7486.             return 0;
  7487.           }
  7488.         }
  7489.       }
  7490.       return 0;
  7491.     }
  7492.     if ( ParseCommand(&a3, L"Special") && !*(_DWORD *)GIsEditor )
  7493.     {
  7494.       User::User((User *)&v946);
  7495.       v686 = (*(int (**)(void))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 920))();
  7496.       v947 = sub_200D25F0(v686);
  7497.       if ( !v947 )
  7498.         return 0;
  7499.       if ( !v268(a3, L"y=", (int *)&v1529) )
  7500.         v1529 = 0.0;
  7501.       if ( !v268(a3, L"p=", (int *)&v1531) )
  7502.         v1531 = 0.0;
  7503.       if ( !Parse(a3, L"Time=", &v1452) )
  7504.         v1452 = 5000.0;
  7505.       if ( !Parse(a3, L"Dur=", &v1422) )
  7506.         v1422 = 5000.0;
  7507.       if ( !v268(a3, L"ry=", &v1481) )
  7508.         v1481 = 0;
  7509.       if ( !v268(a3, L"rp=", &v1503) )
  7510.         v1503 = 0;
  7511.       if ( !v268(a3, L"rr=", &v1458) )
  7512.         v1458 = 0;
  7513.       if ( !Parse(a3, L"dist=", &v1396) )
  7514.         v1396 = 500.0;
  7515.       if ( !v268(a3, L"w=", &v1454) )
  7516.         v1454 = 0;
  7517.       if ( !v268(a3, L"ra=", &v1395) )
  7518.         v1395 = 0;
  7519.       if ( !v268(a3, L"it=", &v1456) )
  7520.         v1456 = 0;
  7521.       if ( !Parse(a3, L"fov=", &v1424) )
  7522.         v1424 = 0.0;
  7523.       LODWORD(v1529) = -65536 * LODWORD(v1529) / 360;
  7524.       LODWORD(v1531) = -65536 * LODWORD(v1531) / 360;
  7525.       v1481 = (v1481 << 16) / 360;
  7526.       v1503 = (v1503 << 16) / 360;
  7527.       v687 = (void (__thiscall **)(UGameEngine *, char *, _DWORD, int, int, _DWORD, _DWORD, float, float, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)dword_2077EE00 + 760);
  7528.       v688 = FRotator::FRotator(&v984, v1503, v1481, v1458);
  7529.       v939[1] = v1424;
  7530.       LODWORD(v939[0]) = v1456 > 0;
  7531.       LODWORD(v938) = v1395 > 0;
  7532.       LODWORD(v937) = v1454 > 0;
  7533.       v934 = *(float *)v688;
  7534.       v935 = *(float *)(v688 + 4);
  7535.       v936 = *(float *)(v688 + 8);
  7536.       v933 = v1422;
  7537.       v932 = v1452;
  7538.       v931 = v1531;
  7539.       v930 = v1529;
  7540.       v929 = v1396;
  7541.       (*v687)(
  7542.         dword_2077EE00,
  7543.         &v946,
  7544.         LODWORD(v1396),
  7545.         LODWORD(v1529),
  7546.         LODWORD(v1531),
  7547.         LODWORD(v1452),
  7548.         LODWORD(v1422),
  7549.         COERCE_FLOAT(LODWORD(v934)),
  7550.         COERCE_FLOAT(LODWORD(v935)),
  7551.         LODWORD(v936),
  7552.         LODWORD(v937),
  7553.         LODWORD(v938),
  7554.         LODWORD(v939[0]),
  7555.         LODWORD(v1424));
  7556.       return 0;
  7557.     }
  7558.     if ( ParseCommand(&a3, L"RequestExEnchantSkillInfo") && !*(_DWORD *)GIsEditor )
  7559.     {
  7560.       v268(a3, L"id=", &v1213);
  7561.       v268(a3, L"level=", &v1305);
  7562.       L2ParamStack::L2ParamStack(&v1034, 10);
  7563.       LOBYTE(v1544) = 33;
  7564.       L2ParamStack::PushBack(&v1034, v1213, v1213 >> 31);
  7565.       L2ParamStack::PushBack(&v1034, v1305, v1305 >> 31);
  7566.       v689 = **((_DWORD **)dword_2077EE00 + 26);
  7567.       LODWORD(v939[1]) = &v1034;
  7568.       (*(void (__stdcall **)(int *))(v689 + 736))(&v1034);
  7569.       LOBYTE(v1544) = 0;
  7570.       L2ParamStack::~L2ParamStack(&v1034);
  7571.       return 0;
  7572.     }
  7573.     if ( ParseCommand(&a3, L"RequestExEnchantSkillInfoDetail") && !*(_DWORD *)GIsEditor )
  7574.     {
  7575.       v268(a3, L"type=", &v1256);
  7576.       v268(a3, L"id=", &v1301);
  7577.       v268(a3, L"level=", &v1255);
  7578.       L2ParamStack::L2ParamStack(&v1081, 10);
  7579.       LOBYTE(v1544) = 34;
  7580.       L2ParamStack::PushBack(&v1081, v1256, v1256 >> 31);
  7581.       L2ParamStack::PushBack(&v1081, v1301, v1301 >> 31);
  7582.       L2ParamStack::PushBack(&v1081, v1255, v1255 >> 31);
  7583.       v690 = **((_DWORD **)dword_2077EE00 + 26);
  7584.       LODWORD(v939[1]) = &v1081;
  7585.       (*(void (__stdcall **)(int *))(v690 + 740))(&v1081);
  7586.       LOBYTE(v1544) = 0;
  7587.       L2ParamStack::~L2ParamStack(&v1081);
  7588.       return 0;
  7589.     }
  7590.     if ( ParseCommand(&a3, L"RequestExEnchantSkill") && !*(_DWORD *)GIsEditor )
  7591.     {
  7592.       v268(a3, L"type=", &v1294);
  7593.       v268(a3, L"id=", &v1297);
  7594.       v268(a3, L"level=", &v1253);
  7595.       L2ParamStack::L2ParamStack(&v1105, 10);
  7596.       LOBYTE(v1544) = 35;
  7597.       L2ParamStack::PushBack(&v1105, v1297, v1297 >> 31);
  7598.       L2ParamStack::PushBack(&v1105, v1253, v1253 >> 31);
  7599.       switch ( v1294 )
  7600.       {
  7601.         case 0:
  7602.           v691 = *(void (__stdcall **)(int *))(**((_DWORD **)dword_2077EE00 + 26) + 744);
  7603.           goto LABEL_1735;
  7604.         case 1:
  7605.           v691 = *(void (__stdcall **)(int *))(**((_DWORD **)dword_2077EE00 + 26) + 748);
  7606.           goto LABEL_1735;
  7607.         case 2:
  7608.           v691 = *(void (__stdcall **)(int *))(**((_DWORD **)dword_2077EE00 + 26) + 752);
  7609.           goto LABEL_1735;
  7610.         case 3:
  7611.           v691 = *(void (__stdcall **)(int *))(**((_DWORD **)dword_2077EE00 + 26) + 756);
  7612. LABEL_1735:
  7613.           v691(&v1105);
  7614.           break;
  7615.         default:
  7616.           break;
  7617.       }
  7618.       LOBYTE(v1544) = 0;
  7619.       L2ParamStack::~L2ParamStack(&v1105);
  7620.       return 0;
  7621.     }
  7622.     if ( ParseCommand(&a3, L"Normal") && !*(_DWORD *)GIsEditor )
  7623.     {
  7624.       (*(void (**)(void))(*(_DWORD *)dword_2077EE00 + 764))();
  7625.       return 0;
  7626.     }
  7627.     if ( ParseCommand(&a3, L"WaitType") && !*(_DWORD *)GIsEditor )
  7628.     {
  7629.       v692 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7630.       if ( !v692 )
  7631.         return 0;
  7632.       v693 = *(_DWORD *)(v692 + 956);
  7633.       if ( !v693 )
  7634.         return 0;
  7635.       if ( !*(_DWORD *)(v692 + 216) )
  7636.         return 0;
  7637.       a4 = *(struct FOutputDevice **)(v693 + 1736);
  7638.       if ( !v268(a3, L"type=", (int *)&v1292) )
  7639.         return 0;
  7640.       User::User((User *)&v950);
  7641.       v951 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7642.       if ( Parse(a3, L"rate=", &v1251) )
  7643.         *(float *)(v951 + 1736) = *(float *)&v1251;
  7644.       v694 = *(_DWORD *)dword_2077EE00;
  7645.       v695 = (float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 436);
  7646.       v938 = *v695;
  7647.       v939[0] = v695[1];
  7648.       v939[1] = v695[2];
  7649.       v937 = v1292;
  7650.       v936 = COERCE_FLOAT(&v950);
  7651.       (*(void (__stdcall **)(char *, float, _DWORD, _DWORD, _DWORD))(v694 + 696))(
  7652.         &v950,
  7653.         COERCE_FLOAT(LODWORD(v1292)),
  7654.         LODWORD(v938),
  7655.         LODWORD(v939[0]),
  7656.         LODWORD(v939[1]));
  7657.       *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1736) = *(float *)&a4;
  7658.       return 0;
  7659.     }
  7660.     if ( ParseCommand(&a3, L"Swim") && !*(_DWORD *)GIsEditor )
  7661.     {
  7662.       v696 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7663.       if ( v696 && *(_DWORD *)(v696 + 956) && *(_DWORD *)(v696 + 216) )
  7664.       {
  7665.         if ( ParseCommand(&a3, L"On") )
  7666.         {
  7667.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1920) = 1;
  7668.           *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1792) = 80.0;
  7669.           *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1796) = 50.0;
  7670.           return 0;
  7671.         }
  7672.         if ( ParseCommand(&a3, L"Off") )
  7673.         {
  7674.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1920) = 0;
  7675.           return 0;
  7676.         }
  7677.       }
  7678.       return 0;
  7679.     }
  7680.     if ( ParseCommand(&a3, L"Weather") && !*(_DWORD *)GIsEditor )
  7681.     {
  7682.       if ( v268(a3, L"t=", &v1249) )
  7683.       {
  7684.         *(_DWORD *)GL2LevelOfWeather = v1249;
  7685.         return 0;
  7686.       }
  7687.       return 0;
  7688.     }
  7689.     if ( ParseCommand(&a3, L"PlayMovie") && !*(_DWORD *)GIsEditor )
  7690.     {
  7691.       (*(void (**)(void))(*(_DWORD *)dword_2077EE00 + 1432))();
  7692.       return 0;
  7693.     }
  7694.     if ( ParseCommand(&a3, L"AirState") && !*(_DWORD *)GIsEditor )
  7695.     {
  7696.       if ( ParseCommand(&a3, L"On") )
  7697.       {
  7698.         (*(void (**)(void))(*(_DWORD *)dword_2077EE00 + 1440))();
  7699.         return 0;
  7700.       }
  7701.       if ( ParseCommand(&a3, L"Off") )
  7702.       {
  7703.         (*(void (**)(void))(*(_DWORD *)dword_2077EE00 + 1444))();
  7704.         return 0;
  7705.       }
  7706.       return 0;
  7707.     }
  7708.     if ( ParseCommand(&a3, L"addcubic") && !*(_DWORD *)GIsEditor )
  7709.     {
  7710.       v697 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7711.       if ( v697 && *(_DWORD *)(v697 + 956) && *(_DWORD *)(v697 + 216) )
  7712.       {
  7713.         v1487 = 0;
  7714.         if ( !v268(a3, L"Type=", &v1487) )
  7715.           v1487 = 0;
  7716.         v698 = *(APawn **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7717.         if ( *((_DWORD *)v698 + 1913) <= 2 )
  7718.           APawn::AddNCubic(v698, v1487);
  7719.         return 1;
  7720.       }
  7721.       goto LABEL_708;
  7722.     }
  7723.     if ( ParseCommand(&a3, L"decubic") && !*(_DWORD *)GIsEditor )
  7724.     {
  7725.       v699 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7726.       if ( v699 && *(_DWORD *)(v699 + 956) && *(_DWORD *)(v699 + 216) )
  7727.       {
  7728.         v1501 = 0;
  7729.         if ( !v268(a3, L"Type=", &v1501) )
  7730.           v1501 = 0;
  7731.         v700 = *(APawn **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7732.         if ( *((_DWORD *)v700 + 1913) )
  7733.           APawn::DeleteNCubic(v700, v1501);
  7734.         return 1;
  7735.       }
  7736.       goto LABEL_16;
  7737.     }
  7738.     if ( ParseCommand(&a3, L"cubicskill") && !*(_DWORD *)GIsEditor )
  7739.     {
  7740.       v701 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7741.       if ( v701 && *(_DWORD *)(v701 + 956) && *(_DWORD *)(v701 + 216) )
  7742.       {
  7743.         v1480 = 0;
  7744.         if ( !v268(a3, L"ID=", &v1480) )
  7745.           v1480 = 1111;
  7746.         v702 = *(_DWORD **)(*((_DWORD *)v4 + 926) + 60);
  7747.         v703 = v702[239];
  7748.         if ( *(_DWORD *)(v703 + 7652) )
  7749.         {
  7750.           v704 = *(ANCubics ***)(v703 + 7648);
  7751.           LODWORD(v939[1]) = v1480;
  7752.           v705 = (*(int (**)(void))(*v702 + 920))();
  7753.           v706 = (struct APawn *)sub_200D25F0(v705);
  7754.           ANCubics::NCubicSkillInit(
  7755.             *v704,
  7756.             *(struct APawn **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956),
  7757.             v706,
  7758.             SLODWORD(v939[1]));
  7759.         }
  7760.         return 1;
  7761.       }
  7762.       goto LABEL_16;
  7763.     }
  7764.     if ( ParseCommand(&a3, L"ATTACKSPEEDDOWN") && !*(_DWORD *)GIsEditor && *((_DWORD *)v4 + 932) == 2 )
  7765.     {
  7766.       v707 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7767.       if ( v707 && *(_DWORD *)(v707 + 956) )
  7768.       {
  7769.         *(float *)&v1497 = 1.0;
  7770.         Parse(a3, L"SPEED=", &v1497);
  7771.         v1497 = *(int *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1732);
  7772.         a4 = *((struct FOutputDevice **)v4 + 933);
  7773.         v708 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7774.         *(float *)(v708 + 1732) = *(float *)(v708 + 1732) - *(float *)&a4 / 50.0;
  7775.         a4 = *((struct FOutputDevice **)v4 + 933);
  7776.         *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1732) = *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956)
  7777.                                                                                                  + 1732)
  7778.                                                                                       - *(float *)&a4 / 50.0;
  7779.         v709 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7780.         if ( *(float *)(v709 + 1732) <= 0.0 )
  7781.           *(float *)(v709 + 1732) = 0.000099999997;
  7782.         v710 = (*(int (**)(void))(**(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 856))();
  7783.         if ( v710 )
  7784.         {
  7785.           *(float *)(*(_DWORD *)(v710 + 204) + 12) = *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956)
  7786.                                                               + 1732)
  7787.                                                    / *(float *)&v1497
  7788.                                                    * *(float *)(*(_DWORD *)(v710 + 204) + 12);
  7789.           return 0;
  7790.         }
  7791.       }
  7792.       return 0;
  7793.     }
  7794.     if ( ParseCommand(&a3, L"ATTACKSPEEDUP") && !*(_DWORD *)GIsEditor && *((_DWORD *)v4 + 932) == 2 )
  7795.     {
  7796.       v711 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7797.       if ( v711 && *(_DWORD *)(v711 + 956) )
  7798.       {
  7799.         *(float *)&v1485 = 1.0;
  7800.         Parse(a3, L"SPEED=", &v1485);
  7801.         v1485 = *(int *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1732);
  7802.         a4 = *((struct FOutputDevice **)v4 + 933);
  7803.         v712 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7804.         *(float *)(v712 + 1732) = *(float *)&a4 / 50.0 + *(float *)(v712 + 1732);
  7805.         a4 = *((struct FOutputDevice **)v4 + 933);
  7806.         v713 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7807.         *(float *)(v713 + 1732) = *(float *)&a4 / 50.0 + *(float *)(v713 + 1732);
  7808.         v714 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  7809.         if ( *(float *)(v714 + 1732) >= 10.0 )
  7810.           *(float *)(v714 + 1732) = 10.0;
  7811.         v715 = (*(int (**)(void))(**(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 856))();
  7812.         if ( v715 )
  7813.         {
  7814.           *(float *)(*(_DWORD *)(v715 + 204) + 12) = *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956)
  7815.                                                               + 1732)
  7816.                                                    / *(float *)&v1485
  7817.                                                    * *(float *)(*(_DWORD *)(v715 + 204) + 12);
  7818.           return 0;
  7819.         }
  7820.       }
  7821.       return 0;
  7822.     }
  7823.     if ( ParseCommand(&a3, L"setwyvern") && !*(_DWORD *)GIsEditor )
  7824.     {
  7825.       v716 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7826.       if ( !*(_DWORD *)(v716 + 956)
  7827.         || *(_DWORD *)(v716 + 976) & 0x80000
  7828.         || !UClass::IsA(v716, ALineagePlayerController::PrivateStaticClass) )
  7829.       {
  7830.         return 0;
  7831.       }
  7832.       ((void (__thiscall *)(int *))LODWORD(FBox::FBox))(&v1450);
  7833.       ((void (__thiscall *)(float *))LODWORD(FBox::FBox))(&v1479);
  7834.       v1495 = 0.0;
  7835.       if ( !Parse(a3, L"CLASS=", &v1450) )
  7836.       {
  7837.         FName::FName(&v1290, L"LineageCreature.FlyDragonAmbientCreatures", 1);
  7838.         v1450 = v1290;
  7839.       }
  7840.       *(float *)&v1137 = 0.0;
  7841.       v1138 = 1.0;
  7842.       v1139 = 0.0;
  7843.       LODWORD(v939[1]) = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 816;
  7844.       v717 = FCoords::operator*(GMath + 24, &v960, LODWORD(v939[1]));
  7845.       v718 = (int *)FVector::TransformVectorBy(&v1137, &v996, v717);
  7846.       v1553 = *(float *)v718;
  7847.       v1554 = *((float *)v718 + 1);
  7848.       v1555 = *((float *)v718 + 2);
  7849.       v1553 = v1553 * 500.0;
  7850.       v1554 = v1554 * 500.0;
  7851.       v1555 = v1555 * 500.0;
  7852.       *(float *)&a4 = v1555 + 500.0;
  7853.       *(float *)&v1232 = v1553;
  7854.       v1233 = v1554;
  7855.       v1234 = a4;
  7856.       v1518 = v1553;
  7857.       v1519 = v1554;
  7858.       v1520 = *(float *)&a4;
  7859.       v719 = (float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 436);
  7860.       v1518 = v1553 + *v719;
  7861.       v1519 = v719[1] + v1554;
  7862.       v1520 = v719[2] + *(float *)&a4;
  7863.       *(float *)&v1134 = 1.0;
  7864.       v1135 = 0.0;
  7865.       v1136 = 0.0;
  7866.       LODWORD(v939[1]) = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 816;
  7867.       v720 = FCoords::operator*(GMath + 24, &v959, LODWORD(v939[1]));
  7868.       v721 = (int *)FVector::TransformVectorBy(&v1134, &v982, v720);
  7869.       v1553 = *(float *)v721;
  7870.       v1554 = *((float *)v721 + 1);
  7871.       v1555 = *((float *)v721 + 2);
  7872.       v1553 = v1553 * 10000.0;
  7873.       v1554 = v1554 * 10000.0;
  7874.       v1555 = 10000.0 * v1555;
  7875.       *(float *)&a4 = v1555 + 500.0;
  7876.       *(float *)&v1228 = v1553;
  7877.       v1229 = v1554;
  7878.       v1230 = a4;
  7879.       v1521 = v1553;
  7880.       v1522 = v1554;
  7881.       v1523 = *(float *)&a4;
  7882.       v722 = (float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 436);
  7883.       v1521 = v1553 + *v722;
  7884.       v1522 = v722[1] + v1554;
  7885.       v1523 = v722[2] + *(float *)&a4;
  7886.       Parse(a3, L"SX=", &v1518);
  7887.       Parse(a3, L"SY=", &v1519);
  7888.       Parse(a3, L"SZ=", &v1520);
  7889.       Parse(a3, L"EX=", &v1521);
  7890.       Parse(a3, L"EY=", &v1522);
  7891.       Parse(a3, L"EZ=", &v1523);
  7892.       if ( !Parse(a3, L"MESH=", &v1479) )
  7893.       {
  7894.         FName::FName(&v1248, L"LineageMonsters.wyvern_m00", 1);
  7895.         v1479 = *(float *)&v1248;
  7896.       }
  7897.       if ( !Parse(a3, L"FR=", &v1448) )
  7898.         v1448 = 800.0;
  7899.       if ( !Parse(a3, L"SPEED=", &v1495) )
  7900.         v1495 = 200.0;
  7901.       if ( !Parse(a3, L"NUM=", &v1420) )
  7902.         v1420 = 8.0;
  7903.       v723 = *(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216);
  7904.       v724 = UObject::StaticLoadClass(
  7905.                AEnvCreatureManagerInfo::PrivateStaticClass,
  7906.                0,
  7907.                L"LineageCreature.AmbientCreatureFlock",
  7908.                0,
  7909.                1,
  7910.                0);
  7911.       v725 = (int (__thiscall **)(_DWORD *, int))(*v723 + 184);
  7912.       v726 = FRotator::FRotator(&v994, 0, 0, 0);
  7913.       v939[1] = 0.0;
  7914.       v939[0] = 0.0;
  7915.       v938 = 0.0;
  7916.       LODWORD(v937) = 1;
  7917.       v936 = 0.0;
  7918.       v933 = *(float *)v726;
  7919.       v934 = *(float *)(v726 + 4);
  7920.       v935 = *(float *)(v726 + 8);
  7921.       v930 = v1518;
  7922.       v931 = v1519;
  7923.       v932 = v1520;
  7924.       v929 = v1520;
  7925.       *(float *)&a4 = COERCE_FLOAT(&v929);
  7926.       FName::FName(&v929, 0);
  7927.       LODWORD(v939[1]) = v724;
  7928.       v727 = (int *)(*v725)(v723, v724);
  7929.       v728 = *v727;
  7930.       LODWORD(v939[1]) = (signed int)v1420;
  7931.       v939[0] = v1495;
  7932.       v938 = v1448;
  7933.       v937 = v1479;
  7934.       v934 = v1521;
  7935.       v935 = v1522;
  7936.       v936 = v1523;
  7937.       v933 = 0.0;
  7938.       (*(void (__thiscall **)(int *, _DWORD, float, float, float, float, _DWORD, _DWORD, _DWORD))(v728 + 860))(
  7939.         v727,
  7940.         0,
  7941.         COERCE_FLOAT(LODWORD(v1521)),
  7942.         COERCE_FLOAT(LODWORD(v1522)),
  7943.         COERCE_FLOAT(LODWORD(v1523)),
  7944.         COERCE_FLOAT(LODWORD(v1479)),
  7945.         LODWORD(v1448),
  7946.         LODWORD(v1495),
  7947.         LODWORD(v939[1]));
  7948.       return 0;
  7949.     }
  7950.     if ( ParseCommand(&a3, L"SVS") && !*(_DWORD *)GIsEditor )
  7951.     {
  7952.       v729 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7953.       if ( v729 && *(_DWORD *)(v729 + 956) && *(_DWORD *)(v729 + 216) )
  7954.       {
  7955.         *(_DWORD *)GL2UseSameVS = *(_DWORD *)GL2UseSameVS == 0;
  7956.         return 0;
  7957.       }
  7958.       return 0;
  7959.     }
  7960.     if ( ParseCommand(&a3, L"BoneSim") && !*(_DWORD *)GIsEditor )
  7961.     {
  7962.       v730 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7963.       if ( v730 && *(_DWORD *)(v730 + 956) && *(_DWORD *)(v730 + 216) )
  7964.       {
  7965.         *(_DWORD *)GL2UseBoneSimul = *(_DWORD *)GL2UseBoneSimul == 0;
  7966.         return 0;
  7967.       }
  7968.       return 0;
  7969.     }
  7970.     if ( ParseCommand(&a3, L"ReduceLOD") && !*(_DWORD *)GIsEditor )
  7971.     {
  7972.       v731 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7973.       if ( v731 && *(_DWORD *)(v731 + 956) && *(_DWORD *)(v731 + 216) )
  7974.       {
  7975.         *(_DWORD *)GL2UseReducePawnLOD = *(_DWORD *)GL2UseReducePawnLOD == 0;
  7976.         return 0;
  7977.       }
  7978.       return 0;
  7979.     }
  7980.     if ( ParseCommand(&a3, L"KeepMinFrame") && !*(_DWORD *)GIsEditor )
  7981.     {
  7982.       v732 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  7983.       if ( v732 && *(_DWORD *)(v732 + 956) && *(_DWORD *)(v732 + 216) )
  7984.       {
  7985.         *(_DWORD *)GL2KeepMinFrameRate = *(_DWORD *)GL2KeepMinFrameRate == 0;
  7986.         if ( *(_DWORD *)GL2KeepMinFrameRate )
  7987.         {
  7988.           *(_DWORD *)GL2UseSkipAnim = 1;
  7989.           *(_DWORD *)GL2UseReducePawnLOD = 1;
  7990.           *(_DWORD *)GL2UseBoneSimul = 0;
  7991.         }
  7992.         else
  7993.         {
  7994.           *(_DWORD *)GL2UseSkipAnim = 0;
  7995.           *(_DWORD *)GL2UseReducePawnLOD = 0;
  7996.           *(_DWORD *)GL2UseBoneSimul = 1;
  7997.         }
  7998.         UGameEngine::ModifyGlobalClippingRange(dword_2077EE00, 0.0);
  7999.         return 0;
  8000.       }
  8001.       return 0;
  8002.     }
  8003.     if ( ParseCommand(&a3, L"SkipAnim") && !*(_DWORD *)GIsEditor )
  8004.     {
  8005.       v733 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8006.       if ( v733 && *(_DWORD *)(v733 + 956) && *(_DWORD *)(v733 + 216) )
  8007.       {
  8008.         *(_DWORD *)GL2UseSkipAnim = *(_DWORD *)GL2UseSkipAnim == 0;
  8009.         return 0;
  8010.       }
  8011.       return 0;
  8012.     }
  8013.     if ( ParseCommand(&a3, L"Hitwater") && !*(_DWORD *)GIsEditor )
  8014.     {
  8015.       v734 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8016.       if ( v734 && *(_DWORD *)(v734 + 956) && *(_DWORD *)(v734 + 216) )
  8017.       {
  8018.         *(_DWORD *)GL2UseHitWateEffect = *(_DWORD *)GL2UseHitWateEffect == 0;
  8019.         return 0;
  8020.       }
  8021.       return 0;
  8022.     }
  8023.     if ( ParseCommand(&a3, L"ToggleCollideWorld") && !*(_DWORD *)GIsEditor )
  8024.     {
  8025.       v735 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8026.       if ( v735 )
  8027.       {
  8028.         v736 = *(_DWORD *)(v735 + 956);
  8029.         if ( v736 )
  8030.         {
  8031.           if ( *(_DWORD *)(v735 + 216) )
  8032.           {
  8033.             *(_DWORD *)(v736 + 756) ^= ((unsigned __int8)*(_DWORD *)(v736 + 756) ^ (unsigned __int8)~(unsigned __int8)*(_DWORD *)(v736 + 756)) & 2;
  8034.             return 0;
  8035.           }
  8036.         }
  8037.       }
  8038.       return 0;
  8039.     }
  8040.     if ( ParseCommand(&a3, L"SHADOW") && !*(_DWORD *)GIsEditor )
  8041.     {
  8042.       v1393 = *(int *)LODWORD(GL2ProjectorCR);
  8043.       v737 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8044.       if ( v737 && *(_DWORD *)(v737 + 956) && *(_DWORD *)(v737 + 216) )
  8045.       {
  8046.         if ( Parse(a3, L"RANGE=", &v1393) )
  8047.           *(float *)LODWORD(GL2ProjectorCR) = *(float *)&v1393 * 0.00048828125;
  8048.         else
  8049.           *(_DWORD *)GIsL2Projector = *(_DWORD *)GIsL2Projector == 0;
  8050.         return 0;
  8051.       }
  8052.       return 0;
  8053.     }
  8054.     if ( ParseCommand(&a3, L"DEFAULTSHADOW") && !*(_DWORD *)GIsEditor )
  8055.     {
  8056.       v268(a3, L"MODE=", &v1286);
  8057.       v738 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8058.       if ( v738 && *(_DWORD *)(v738 + 956) && *(_DWORD *)(v738 + 216) )
  8059.       {
  8060.         *(_DWORD *)GL2DefaultShadow = v1286;
  8061.         return 0;
  8062.       }
  8063.       return 0;
  8064.     }
  8065.     if ( ParseCommand(&a3, L"RIDE") && !*(_DWORD *)GIsEditor )
  8066.     {
  8067.       v739 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8068.       if ( v739 && *(_DWORD *)(v739 + 956) && *(_DWORD *)(v739 + 216) )
  8069.       {
  8070.         v1493 = 0;
  8071.         v268(a3, L"ID=", &v1493);
  8072.         if ( v1493 )
  8073.         {
  8074.           if ( *(_DWORD *)GIsL2NetLogin )
  8075.           {
  8076.             v740 = **((_DWORD **)dword_2077EE00 + 26);
  8077.             v939[1] = *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 88);
  8078.             *(float *)&v741 = COERCE_FLOAT((*(int (__stdcall **)(_DWORD))(v740 + 148))(LODWORD(v939[1])));
  8079.             if ( *(float *)&v741 != 0.0 )
  8080.             {
  8081.               v742 = *(_DWORD *)dword_2077EE00;
  8082.               v743 = (float *)(*(_DWORD *)(v741 + 692) + 436);
  8083.               v938 = *v743;
  8084.               v939[0] = v743[1];
  8085.               v939[1] = v743[2];
  8086.               LODWORD(v937) = v1493 + 1000000;
  8087.               v936 = 0.0;
  8088.               LODWORD(v935) = 1;
  8089.               v934 = *(float *)&v741;
  8090.               (*(void (__stdcall **)(int, signed int, _DWORD, int, _DWORD, _DWORD, _DWORD))(v742 + 368))(
  8091.                 v741,
  8092.                 1,
  8093.                 0,
  8094.                 v1493 + 1000000,
  8095.                 LODWORD(v938),
  8096.                 LODWORD(v939[0]),
  8097.                 LODWORD(v939[1]));
  8098.             }
  8099.           }
  8100.           else if ( *((_DWORD *)dword_2077EE00 + 28) )
  8101.           {
  8102.             v744 = **((_DWORD **)dword_2077EE00 + 28);
  8103.             LODWORD(v939[1]) = v1493 + 1000000;
  8104.             v939[0] = 0.0;
  8105.             LODWORD(v938) = 1;
  8106.             (*(void (__stdcall **)(signed int, _DWORD, int))(v744 + 2316))(1, 0, v1493 + 1000000);
  8107.           }
  8108.         }
  8109.       }
  8110.       else
  8111.       {
  8112.         LODWORD(v939[1]) = a3;
  8113.         FOutputDevice::Logf(a4, L"%s RIDE FAILED!", a3);
  8114.       }
  8115.       return 1;
  8116.     }
  8117.     if ( ParseCommand(&a3, L"UNRIDE") && !*(_DWORD *)GIsEditor )
  8118.     {
  8119.       v745 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8120.       if ( v745 && (v746 = *(_DWORD *)(v745 + 956)) != 0 && *(_DWORD *)(v745 + 216) )
  8121.       {
  8122.         if ( *(_DWORD *)GIsL2NetLogin )
  8123.         {
  8124.           v747 = **((_DWORD **)dword_2077EE00 + 26);
  8125.           v939[1] = *(float *)(v746 + 88);
  8126.           *(float *)&v748 = COERCE_FLOAT((*(int (__stdcall **)(_DWORD))(v747 + 148))(LODWORD(v939[1])));
  8127.           if ( *(float *)&v748 != 0.0 )
  8128.           {
  8129.             v749 = *(_DWORD *)dword_2077EE00;
  8130.             v750 = (float *)(*(_DWORD *)(v748 + 692) + 436);
  8131.             v938 = *v750;
  8132.             v939[0] = v750[1];
  8133.             v939[1] = v750[2];
  8134.             v937 = 0.0;
  8135.             v936 = 0.0;
  8136.             v935 = 0.0;
  8137.             v934 = *(float *)&v748;
  8138.             (*(void (__stdcall **)(int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(v749 + 368))(
  8139.               v748,
  8140.               0,
  8141.               0,
  8142.               0,
  8143.               LODWORD(v938),
  8144.               LODWORD(v939[0]),
  8145.               LODWORD(v939[1]));
  8146.           }
  8147.         }
  8148.         else
  8149.         {
  8150.           v751 = **((_DWORD **)dword_2077EE00 + 28);
  8151.           v939[1] = 0.0;
  8152.           v939[0] = 0.0;
  8153.           v938 = 0.0;
  8154.           (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(v751 + 2316))(0, 0, 0);
  8155.         }
  8156.       }
  8157.       else
  8158.       {
  8159.         LODWORD(v939[1]) = a3;
  8160.         FOutputDevice::Logf(a4, L"%s UNRIDE FAILED!", a3);
  8161.       }
  8162.       return 1;
  8163.     }
  8164.     if ( ParseCommand(&a3, L"ANIMPLAY") && !*(_DWORD *)GIsEditor )
  8165.     {
  8166.       FString::FString(&v1226);
  8167.       LOBYTE(v1544) = 36;
  8168.       Parse(a3, L"ANIM=", &v1226, 0);
  8169.       if ( ParseCommand(&a3, L"REFRESH") )
  8170.       {
  8171.         v752 = 0.2;
  8172.       }
  8173.       else
  8174.       {
  8175.         LODWORD(v939[1]) = 1;
  8176.         v753 = FString::operator*(&v1226);
  8177.         FName::FName(&v1246, v753, LODWORD(v939[1]));
  8178.         LODWORD(v939[1]) = &v1246;
  8179.         v939[0] = 0.0;
  8180.         v938 = COERCE_FLOAT(&v1055);
  8181.         v754 = APawn::GetCurAnimName(*(void **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956), &v1055, 0);
  8182.         if ( !FName::operator!=(v754, LODWORD(v939[1])) )
  8183.         {
  8184. LABEL_1921:
  8185.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7856) &= 0xFFFFFFFE;
  8186.           v760 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  8187.           *(_DWORD *)(v760 + 1684) |= 0x20u;
  8188.           LOBYTE(v1544) = 0;
  8189.           FString::~FString(&v1226);
  8190.           return 1;
  8191.         }
  8192.         v752 = 0.1;
  8193.       }
  8194.       v939[1] = 0.0;
  8195.       LODWORD(v939[0]) = 1;
  8196.       v755 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8197.       v938 = v752;
  8198.       v756 = *(float **)(v755 + 956);
  8199.       v757 = *v756;
  8200.       v937 = v756[434];
  8201.       *(float *)&a4 = COERCE_FLOAT(&v936);
  8202.       LODWORD(v935) = 1;
  8203.       v758 = FString::operator*(&v1226);
  8204.       FName::FName(&v936, v758, LODWORD(v935));
  8205.       v759 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8206.       v935 = 0.0;
  8207.       (*(void (__thiscall **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(LODWORD(v757) + 876))(
  8208.         *(_DWORD *)(v759 + 956),
  8209.         0,
  8210.         LODWORD(v936),
  8211.         LODWORD(v937),
  8212.         LODWORD(v938),
  8213.         LODWORD(v939[0]),
  8214.         LODWORD(v939[1]));
  8215.       goto LABEL_1921;
  8216.     }
  8217.     if ( ParseCommand(&a3, L"TRANSFER") && !*(_DWORD *)GIsEditor )
  8218.     {
  8219.       v1376 = 100.0;
  8220.       v761 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8221.       v762 = *(int **)(v761 + 956);
  8222.       v1222 = *((float *)v762 + 109);
  8223.       v1223 = *((float *)v762 + 110);
  8224.       v1224 = *((float *)v762 + 111);
  8225.       v1376 = v1222 + 100.0;
  8226.       v1377 = v1223 + 0.0;
  8227.       v1378 = v1224 + 0.0;
  8228.       v763 = **(_DWORD **)(v761 + 216);
  8229.       v939[1] = 0.0;
  8230.       LODWORD(v939[0]) = 1;
  8231.       v938 = 0.0;
  8232.       v935 = v1376;
  8233.       v936 = v1377;
  8234.       v937 = v1378;
  8235.       v934 = *(float *)&v762;
  8236.       (*(void (__stdcall **)(int *, _DWORD, _DWORD, _DWORD, _DWORD, signed int, _DWORD))(v763 + 160))(
  8237.         v762,
  8238.         LODWORD(v1376),
  8239.         LODWORD(v1377),
  8240.         LODWORD(v1378),
  8241.         0,
  8242.         1,
  8243.         0);
  8244.       return 1;
  8245.     }
  8246.     if ( ParseCommand(&a3, L"BuildZone") && !*(_DWORD *)GIsEditor )
  8247.     {
  8248.       v966 = 0;
  8249.       FString::FString(&v1118);
  8250.       LOBYTE(v1544) = 37;
  8251.       v1418 = 128;
  8252.       v1446 = 0;
  8253.       Parse(a3, L"Map=", &v1118, 0);
  8254.       v268(a3, L"Width=", &v1418);
  8255.       v268(a3, L"Post=", &v1446);
  8256.       LODWORD(v939[1]) = v1446;
  8257.       LODWORD(v939[0]) = v1418;
  8258.       v938 = *((float *)v4 + 926);
  8259.       v937 = COERCE_FLOAT(FString::operator*(&v1118));
  8260.       FWorldBuilder::buildWorldStructure(
  8261.         (FWorldBuilder *)&v965,
  8262.         *(struct ULevel **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216),
  8263.         (wchar_t *)LODWORD(v937),
  8264.         (struct UViewport *)LODWORD(v938),
  8265.         SLODWORD(v939[0]),
  8266.         SLODWORD(v939[1]));
  8267.       LOBYTE(v1544) = 0;
  8268.       FString::~FString(&v1118);
  8269.       return 0;
  8270.     }
  8271.     if ( ParseCommand(&a3, L"LoadPath") && !*(_DWORD *)GIsEditor )
  8272.     {
  8273.       FString::FString(&v1130);
  8274.       LOBYTE(v1544) = 38;
  8275.       Parse(a3, L"FILE=", &v1130, 0);
  8276.       v764 = (wchar_t *)FString::operator*(&v1130);
  8277.       sub_201AF9B0(v764);
  8278.       LOBYTE(v1544) = 0;
  8279.       FString::~FString(&v1130);
  8280.       return 0;
  8281.     }
  8282.     if ( ParseCommand(&a3, L"Limit") && !*(_DWORD *)GIsEditor )
  8283.     {
  8284.       if ( v268(a3, L"User=", (int *)&v1444) )
  8285.       {
  8286.         *(float *)GL2RenderActorLimit = v1444;
  8287.         v939[1] = v1444;
  8288.         debugf(L"Rendering Actor Limit = %d");
  8289.         return 0;
  8290.       }
  8291.       return 0;
  8292.     }
  8293.     if ( ParseCommand(&a3, L"C_TELEPORT") && !*(_DWORD *)GIsEditor )
  8294.     {
  8295.       LOBYTE(v1544) = 39;
  8296.       v765 = *((_DWORD *)v4 + 926);
  8297.       if ( !(dword_21702E30 & 2) )
  8298.       {
  8299.         dword_21702E30 |= 2u;
  8300.         LOBYTE(v1544) = 40;
  8301.         v766 = (int *)(*(_DWORD *)(*(_DWORD *)(v765 + 60) + 956) + 436);
  8302.         dword_21702DD8 = *v766;
  8303.         dword_21702DDC = v766[1];
  8304.         dword_21702DE0 = v766[2];
  8305.         LOBYTE(v1544) = 39;
  8306.       }
  8307.       if ( Parse(a3, L"X=", &v1540) )
  8308.       {
  8309.         if ( !Parse(a3, L"Y=", &v1541) )
  8310.           return 1;
  8311.         v767 = Parse(a3, L"Z=", &v1542);
  8312.         v939[1] = 0.0;
  8313.         LODWORD(v939[0]) = 1;
  8314.         v938 = 0.0;
  8315.         if ( v767 )
  8316.           goto LABEL_1950;
  8317.         v768 = -3000.0;
  8318.       }
  8319.       else
  8320.       {
  8321.         if ( ParseCommand(&a3, L"RETURN") )
  8322.         {
  8323.           v939[1] = 0.0;
  8324.           LODWORD(v939[0]) = 1;
  8325.           v938 = 0.0;
  8326.           v935 = *(float *)&dword_21702DD8;
  8327.           v936 = *(float *)&dword_21702DDC;
  8328.           v937 = *(float *)&dword_21702DE0;
  8329.           UGameEngine::L2_Teleport(
  8330.             (void *)dword_2077EE00,
  8331.             *(_DWORD *)(*(_DWORD *)(v765 + 60) + 956),
  8332.             dword_21702DD8,
  8333.             dword_21702DDC,
  8334.             *(float *)&dword_21702DE0,
  8335.             0,
  8336.             1,
  8337.             0.0);
  8338.           return 1;
  8339.         }
  8340.         if ( ParseCommand(&a3, L"HOME") )
  8341.         {
  8342.           v1207 = -87473.0;
  8343.           v1208 = 239000.0;
  8344.           v1209 = -3000.0;
  8345.           v939[1] = 0.0;
  8346.           LODWORD(v939[0]) = 1;
  8347.           v938 = 0.0;
  8348.           v935 = -87473.0;
  8349.           v769 = 239000.0;
  8350.           v770 = -3000.0;
  8351. LABEL_1951:
  8352.           v936 = v769;
  8353.           v937 = v770;
  8354.           UGameEngine::L2_Teleport(
  8355.             (void *)dword_2077EE00,
  8356.             *(_DWORD *)(*(_DWORD *)(v765 + 60) + 956),
  8357.             SLODWORD(v935),
  8358.             SLODWORD(v769),
  8359.             v770,
  8360.             SLODWORD(v938),
  8361.             SLODWORD(v939[0]),
  8362.             v939[1]);
  8363.           return 1;
  8364.         }
  8365.         if ( !v268(a3, L"Map=", &v1282) )
  8366.           return 1;
  8367.         a4 = (struct FOutputDevice *)(v1282 / 100 - 9);
  8368.         *(float *)&v1540 = (double)(signed int)a4 * 32768.0 - 360448.0 + 16384.0;
  8369.         a4 = (struct FOutputDevice *)(v1282 % 100 - 9);
  8370.         *(float *)&v1541 = 32768.0 * (double)(signed int)a4 - 294912.0 + 16384.0;
  8371.         v768 = -1000.0;
  8372.         v939[1] = 0.0;
  8373.         LODWORD(v939[0]) = 1;
  8374.         v938 = 0.0;
  8375.       }
  8376.       *(float *)&v1542 = v768;
  8377. LABEL_1950:
  8378.       v935 = *(float *)&v1540;
  8379.       v769 = *(float *)&v1541;
  8380.       v770 = *(float *)&v1542;
  8381.       goto LABEL_1951;
  8382.     }
  8383.     if ( ParseCommand(&a3, L"C_RMODE") && !*(_DWORD *)GIsEditor )
  8384.     {
  8385.       v771 = appAtoi(a3);
  8386.       if ( v771 > 0 )
  8387.       {
  8388.         v772 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8389.         if ( v772 )
  8390.           *(_DWORD *)(v772 + 1476) = v771;
  8391.       }
  8392.       return 1;
  8393.     }
  8394.     if ( ParseCommand(&a3, L"GEODATA") && !*(_DWORD *)GIsEditor )
  8395.     {
  8396.       dword_2077ED4C = dword_2077ED4C == 0;
  8397.       return 0;
  8398.     }
  8399.     if ( ParseCommand(&a3, L"SEAMLESS") && !*(_DWORD *)GIsEditor )
  8400.     {
  8401.       if ( !(dword_21702E30 & 4) )
  8402.       {
  8403.         dword_21702E30 |= 4u;
  8404.         LOBYTE(v1544) = 42;
  8405.         dword_21702DD4 = *(_DWORD *)GIsL2Seamless;
  8406.         LOBYTE(v1544) = 0;
  8407.       }
  8408.       if ( ParseCommand(&a3, L"ON") )
  8409.       {
  8410.         if ( dword_21702DD4 )
  8411.         {
  8412.           v773 = (*(int (**)(void))(**(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216) + 300))();
  8413.           *(_DWORD *)GIsL2Seamless = 1;
  8414.           for ( mm = 0; ; ++mm )
  8415.           {
  8416.             v1278 = mm;
  8417.             if ( mm >= *(_DWORD *)(v773 + 8440) )
  8418.               break;
  8419.             *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(v773 + 8436) + 4 * mm) + 108) = 16;
  8420.             *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(v773 + 8436) + 4 * mm) + 112) = 16;
  8421.             v775 = *(_DWORD **)(*(_DWORD *)(v773 + 8436) + 4 * mm);
  8422.             if ( v775[29] >= 240 || v775[30] >= 240 )
  8423.             {
  8424.               v775[55] = 0;
  8425.               *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(v773 + 8436) + 4 * mm) + 152) = -1;
  8426.             }
  8427.           }
  8428.         }
  8429.       }
  8430.       else if ( ParseCommand(&a3, L"OFF") )
  8431.       {
  8432.         v776 = (*(int (**)(void))(**(_DWORD **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 216) + 300))();
  8433.         sub_202E38E0((_DWORD *)v776);
  8434.         flt_208AD3BC = *(float *)(v776 + 436);
  8435.         flt_208AD3C8 = flt_208AD3BC;
  8436.         flt_208AD3C0 = *(float *)(v776 + 440);
  8437.         flt_208AD3CC = flt_208AD3C0;
  8438.         *(_DWORD *)(v776 + 8540) = *(_DWORD *)(v776 + 8748);
  8439.         *(_DWORD *)(v776 + 8544) = *(_DWORD *)(v776 + 8752);
  8440.         *(_DWORD *)(v776 + 8548) = *(_DWORD *)(v776 + 8756);
  8441.         dword_2077EE1C = 0;
  8442.         dword_20782E20 = (unsigned __int8)dword_2077EE1C;
  8443.         for ( nn = 0; ; ++nn )
  8444.         {
  8445.           v1243 = nn;
  8446.           if ( nn >= *(_DWORD *)(v776 + 8440) )
  8447.             break;
  8448.           v778 = *(_DWORD *)(*(_DWORD *)(v776 + 8436) + 4 * nn);
  8449.           *(_DWORD *)(v778 + 108) = *(_DWORD *)(v778 + 212);
  8450.           v779 = *(_DWORD *)(*(_DWORD *)(v776 + 8436) + 4 * nn);
  8451.           *(_DWORD *)(v779 + 112) = *(_DWORD *)(v779 + 216);
  8452.         }
  8453.         *(_DWORD *)GIsL2Seamless = 0;
  8454.         return 0;
  8455.       }
  8456.       return 0;
  8457.     }
  8458.     if ( ParseCommand(&a3, L"MAPLOC") && !*(_DWORD *)GIsEditor )
  8459.     {
  8460.       v780 = *((_DWORD *)v4 + 926);
  8461.       v781 = (int *)(*(_DWORD *)(*(_DWORD *)(v780 + 60) + 956) + 436);
  8462.       v1108 = *v781;
  8463.       v1109 = v781[1];
  8464.       v1110 = v781[2];
  8465.       UGameEngine::GetSWMapXY((const struct FVector *)&v1108, (int *)&v1552, (int *)&a4);
  8466.       v782 = a4;
  8467.       LODWORD(v939[1]) = a4;
  8468.       v783 = v1552;
  8469.       v939[0] = v1552;
  8470.       v784 = FString::Printf(&v1030, L"MapX=%d MapY=%d", v1552, a4);
  8471.       LOBYTE(v1544) = 43;
  8472.       v785 = FString::operator*(v784);
  8473.       FString::FString(&v1097, v785);
  8474.       LOBYTE(v1544) = 44;
  8475.       v939[1] = v786;
  8476.       *(float *)&a4 = COERCE_FLOAT(&v939[1]);
  8477.       FName::FName(&v939[1], 0);
  8478.       APlayerController::eventClientMessage(*(int **)(v780 + 60), (int)&v1097, SLODWORD(v939[1]));
  8479.       LOBYTE(v1544) = 43;
  8480.       FString::~FString(&v1097);
  8481.       LOBYTE(v1544) = 0;
  8482.       FString::~FString(&v1030);
  8483.       LODWORD(v939[1]) = v782;
  8484.       v939[0] = v783;
  8485.       debugf(L"MapX=%d, MapY=%d");
  8486.       return 0;
  8487.     }
  8488.     if ( ParseCommand(&a3, L"SHOWBORDERLINE") )
  8489.     {
  8490.       gbShowBorderLine = gbShowBorderLine == 0;
  8491.       return 0;
  8492.     }
  8493.     if ( ParseCommand(&a3, L"SHOWSECTORS") )
  8494.     {
  8495.       dword_20786FF4 = dword_20786FF4 == 0;
  8496.       return 0;
  8497.     }
  8498.     if ( ParseCommand(&a3, L"LINECHECK") && !*(_DWORD *)GIsEditor )
  8499.     {
  8500.       if ( Parse(a3, L"X=", &v1148) && Parse(a3, L"Y=", &v1149) )
  8501.       {
  8502.         v787 = *(AActor **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  8503.         v788 = (int *)*((_DWORD *)v787 + 179);
  8504.         sub_2009B790((int)&v967, 1.0);
  8505.         FMemMark::FMemMark(&v980, GMem);
  8506.         v1114 = 8.0;
  8507.         v1115 = 8.0;
  8508.         v1116 = 23.5;
  8509.         v1145 = v1148;
  8510.         v1146 = v1149;
  8511.         v1147 = 16000.0;
  8512.         v1472 = v1148;
  8513.         v1473 = v1149;
  8514.         v1474 = -16000.0;
  8515.         v789 = *v788;
  8516.         v939[1] = 0.0;
  8517.         LODWORD(v939[0]) = v787;
  8518.         LODWORD(v938) = 524446;
  8519.         v937 = 0.0;
  8520.         LODWORD(v939[1]) = (*(int (__thiscall **)(int *, _DWORD, signed int, AActor *, _DWORD))(v789 + 292))(
  8521.                              v788,
  8522.                              0,
  8523.                              524446,
  8524.                              v787,
  8525.                              0);
  8526.         LODWORD(v939[0]) = &v1114;
  8527.         v938 = COERCE_FLOAT(&v1145);
  8528.         v935 = v1472;
  8529.         v936 = v1473;
  8530.         v937 = v1474;
  8531.         v934 = *(float *)&GMem;
  8532.         for ( i1 = (int *)(*(int (__thiscall **)(int *, _DWORD, _DWORD, _DWORD, _DWORD, float *, float *, _DWORD))(v789 + 236))(
  8533.                             v788,
  8534.                             GMem,
  8535.                             LODWORD(v1472),
  8536.                             LODWORD(v1473),
  8537.                             LODWORD(v1474),
  8538.                             &v1145,
  8539.                             &v1114,
  8540.                             LODWORD(v939[1])); ; i1 = (int *)*i1 )
  8541.         {
  8542.           v1274 = i1;
  8543.           if ( !i1 )
  8544.             break;
  8545.           if ( i1[1] )
  8546.           {
  8547.             LODWORD(v939[1]) = i1[1];
  8548.             if ( AActor::IsBlockedBy(v787, (const struct AActor *)LODWORD(v939[1])) )
  8549.             {
  8550.               if ( !sub_200966D0(i1[1]) )
  8551.               {
  8552.                 qmemcpy(&v967, i1, 0x30u);
  8553.                 break;
  8554.               }
  8555.             }
  8556.           }
  8557.         }
  8558.         if ( !v968 )
  8559.         {
  8560.           v968 = 0;
  8561.           return 0;
  8562.         }
  8563.       }
  8564.       return 0;
  8565.     }
  8566.     if ( ParseCommand(&a3, L"CacheTexture") && !*(_DWORD *)GIsEditor )
  8567.     {
  8568.       if ( Parse(a3, L"Upper=", &v1391) )
  8569.       {
  8570.         *(float *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 124) + 192) = v1391;
  8571.         *(double *)v939 = v1391;
  8572.         debugf(L"Texture Cache Upper Limit = %f");
  8573.       }
  8574.       if ( Parse(a3, L"Lower=", &v1442) )
  8575.       {
  8576.         *(float *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 124) + 196) = v1442;
  8577.         *(double *)v939 = v1442;
  8578.         debugf(L"Texture Cache Lower Limit = %f");
  8579.       }
  8580.       if ( Parse(a3, L"Period=", &v1416) )
  8581.       {
  8582.         *(float *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 124) + 200) = v1416;
  8583.         *(double *)v939 = v1416;
  8584.         debugf(L"Texture Cache Exist Period = %f");
  8585.         return 0;
  8586.       }
  8587.       return 0;
  8588.     }
  8589.     if ( ParseCommand(&a3, L"RenderDeco") )
  8590.     {
  8591.       if ( ParseCommand(&a3, L"Density") )
  8592.       {
  8593.         *(_DWORD *)GShowDecorationDensityMesh = *(_DWORD *)GShowDecorationDensityMesh == 0;
  8594.       }
  8595.       else
  8596.       {
  8597.         *(_DWORD *)GL2RenderDeco = *(_DWORD *)GL2RenderDeco == 0;
  8598.         v1573 = COERCE_FLOAT(ATerrainInfo::ClearDecorations);
  8599.         UMasterLevel::IterateTerrainInfo(*((_DWORD **)dword_2077EE00 + 109), (void (__thiscall **)(int))&v1573);
  8600.       }
  8601.       return 0;
  8602.     }
  8603.     if ( ParseCommand(&a3, L"Arrow") )
  8604.     {
  8605.       v791 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8606.       if ( v791 )
  8607.       {
  8608.         if ( *(_DWORD *)(v791 + 956) && !*(_DWORD *)GIsEditor )
  8609.         {
  8610.           if ( ParseCommand(&a3, L"On") )
  8611.           {
  8612.             v792 = dword_2077EE00;
  8613.             if ( *((_DWORD *)dword_2077EE00 + 28) )
  8614.             {
  8615.               v793 = (int *)*((_DWORD *)dword_2077EE00 + 28);
  8616.               v794 = *v793;
  8617.               LODWORD(v939[1]) = 1;
  8618. LABEL_2017:
  8619.               (*(void (__thiscall **)(int *, _DWORD))(v794 + 1780))(v793, LODWORD(v939[1]));
  8620. LABEL_2018:
  8621.               v792 = dword_2077EE00;
  8622.               goto LABEL_2019;
  8623.             }
  8624.             v798 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  8625.             *(_DWORD *)(v798 + 7588) |= 8u;
  8626.           }
  8627.           else
  8628.           {
  8629.             if ( !ParseCommand(&a3, L"Off") )
  8630.               goto LABEL_2018;
  8631.             v792 = dword_2077EE00;
  8632.             if ( *((_DWORD *)dword_2077EE00 + 28) )
  8633.             {
  8634.               v793 = (int *)*((_DWORD *)dword_2077EE00 + 28);
  8635.               v794 = *v793;
  8636.               v939[1] = 0.0;
  8637.               goto LABEL_2017;
  8638.             }
  8639.             v799 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  8640.             *(_DWORD *)(v799 + 7588) &= 0xFFFFFFF7;
  8641.           }
  8642. LABEL_2019:
  8643.           v795 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  8644.           if ( v795 )
  8645.           {
  8646.             if ( *((_DWORD *)v792 + 28) )
  8647.             {
  8648.               v796 = **((_DWORD **)v792 + 28);
  8649.               LODWORD(v939[1]) = &v1379;
  8650.               (*(void (__stdcall **)(const wchar_t **))(v796 + 1792))(&v1379);
  8651.               Parse(a3, L"X=", &v1379);
  8652.               Parse(a3, L"Y=", &v1380);
  8653.               Parse(a3, L"Z=", &v1381);
  8654.               v797 = **((_DWORD **)dword_2077EE00 + 28);
  8655.               v940 = v1379;
  8656.               v941 = v1380;
  8657.               v942 = v1381;
  8658.               (*(void (__cdecl **)(const wchar_t *, int, struct FOutputDevice *))(v797 + 1796))(v1379, v1380, v1381);
  8659.             }
  8660.             else
  8661.             {
  8662.               Parse(a3, L"X=", v795 + 7596);
  8663.               Parse(a3, L"Y=", *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7600);
  8664.               Parse(a3, L"Z=", *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 7604);
  8665.             }
  8666.             return 0;
  8667.           }
  8668.           return 0;
  8669.         }
  8670.       }
  8671.     }
  8672.     if ( ParseCommand(&a3, L"RadarTime") && !*(_DWORD *)GIsEditor )
  8673.     {
  8674.       if ( *((_DWORD *)dword_2077EE00 + 28) )
  8675.       {
  8676.         *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 28) + 76) = *(_DWORD *)(*((_DWORD *)dword_2077EE00 + 28) + 76) == 0;
  8677.         return 0;
  8678.       }
  8679.       return 0;
  8680.     }
  8681.     if ( ParseCommand(&a3, L"MapBug") )
  8682.     {
  8683.       dword_20787000 = dword_20787000 == 0;
  8684.       return 0;
  8685.     }
  8686.     if ( ParseCommand(&a3, L"Batch") && !*(_DWORD *)GIsEditor )
  8687.     {
  8688.       if ( Parse(a3, L"File=", &v952, 256, 0) )
  8689.       {
  8690.         UGameEngine::StartCommandMacro(dword_2077EE00, &v952);
  8691.         return 0;
  8692.       }
  8693.       return 0;
  8694.     }
  8695.     if ( ParseCommand(&a3, L"SkipGC") && !*(_DWORD *)GIsEditor )
  8696.     {
  8697.       *(_DWORD *)GL2DisableGCLobby = 1;
  8698.       return 0;
  8699.     }
  8700.     if ( ParseCommand(&a3, L"ChangeServer") && !*(_DWORD *)GIsEditor )
  8701.     {
  8702.       if ( *(_DWORD *)GIsL2Console && *(_DWORD *)GIsL2NetLogin )
  8703.       {
  8704.         v1440 = 0.0;
  8705.         ((void (__stdcall *)(const wchar_t *, const wchar_t *, float *))v268)(a3, L"Id=", &v1440);
  8706.         *(_DWORD *)GL2DisableGCLobby = 1;
  8707.         v800 = **((_DWORD **)dword_2077EE00 + 28);
  8708.         v801 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 436;
  8709.         v940 = *(const wchar_t **)v801;
  8710.         v941 = *(_DWORD *)(v801 + 4);
  8711.         v942 = *(struct FOutputDevice **)(v801 + 8);
  8712.         v939[1] = v1440;
  8713.         (*(void (__stdcall **)(float))(v800 + 2000))(COERCE_FLOAT(LODWORD(v1440)));
  8714.         return 0;
  8715.       }
  8716.       return 0;
  8717.     }
  8718.     if ( ParseCommand(&a3, L"Thread") && !*(_DWORD *)GIsEditor )
  8719.     {
  8720.       v1550 = *(_DWORD *)GL2ThreadFilter;
  8721.       if ( ParseCommand(&a3, L"On") )
  8722.       {
  8723.         v802 = **(_DWORD **)GConfig;
  8724.         v939[1] = 0.0;
  8725.         LODWORD(v939[0]) = &v1550;
  8726.         v938 = COERCE_FLOAT(L"L2ThreadFilter");
  8727.         v937 = COERCE_FLOAT(L"URL");
  8728.         (*(void (__stdcall **)(const wchar_t *, const wchar_t *, int *, _DWORD))(v802 + 4))(
  8729.           L"URL",
  8730.           L"L2ThreadFilter",
  8731.           &v1550,
  8732.           0);
  8733. LABEL_2054:
  8734.         *(_DWORD *)GL2ThreadFilter = v1550;
  8735.         goto LABEL_2055;
  8736.       }
  8737.       if ( ParseCommand(&a3, L"Off") )
  8738.       {
  8739.         v1550 = 0;
  8740.         *(_DWORD *)GL2ThreadFilter = 0;
  8741.       }
  8742.       else if ( v268(a3, L"Filter=", &v1550) )
  8743.       {
  8744.         goto LABEL_2054;
  8745.       }
  8746. LABEL_2055:
  8747.       if ( !*((_DWORD *)dword_2077EE00 + 28) )
  8748.         return 0;
  8749.       v803 = L"ON";
  8750.       if ( !v1550 )
  8751.         v803 = L"OFF";
  8752.       LODWORD(v939[1]) = v803;
  8753.       appSprintf(&v958, L"Thread Loading is %s", v803);
  8754.       L2ParamStack::L2ParamStack(&v1104, 10);
  8755.       LOBYTE(v1544) = 45;
  8756.       L2ParamStack::PushBack(&v1104, 0, 0);
  8757.       L2ParamStack::PushBack(&v1104, 5, 0);
  8758.       L2ParamStack::PushBack(&v1104, L"CLIENT", (signed int)L"CLIENT" >> 31);
  8759.       L2ParamStack::PushBack(&v1104, &v958, (signed int)&v958 >> 31);
  8760.       v804 = **((_DWORD **)dword_2077EE00 + 28);
  8761.       LODWORD(v939[1]) = &v1104;
  8762.       (*(void (__stdcall **)(int *))(v804 + 836))(&v1104);
  8763.       LOBYTE(v1544) = 0;
  8764.       L2ParamStack::~L2ParamStack(&v1104);
  8765.       return 0;
  8766.     }
  8767.     if ( ParseCommand(&a3, L"SHOWLOADLINE") && !*(_DWORD *)GIsEditor )
  8768.     {
  8769.       dword_20787004 = dword_20787004 == 0;
  8770.       return 0;
  8771.     }
  8772.     if ( ParseCommand(&a3, L"Range") && !*(_DWORD *)GIsEditor )
  8773.     {
  8774.       v1573 = (double)appAtoi(a3);
  8775.       *(float *)&v1571 = v1573 + 3.0;
  8776.       v805 = v1573 * 0.5;
  8777.       v1574 = v805 + 1.5;
  8778.       v1573 = v805 + 3.5;
  8779.       *(float *)&v1575 = v1573;
  8780.       v1577 = v1573;
  8781.       LODWORD(v939[0]) = (signed int)(v1574 * 2048.0);
  8782.       v806 = FString::Printf(&v1029, (const char *)L"StaticMeshRange = %d", v939[0]);
  8783.       LOBYTE(v1544) = 46;
  8784.       v807 = FString::operator*(v806);
  8785.       FString::FString(&v1102, v807);
  8786.       LOBYTE(v1544) = 47;
  8787.       v939[1] = v808;
  8788.       v1573 = COERCE_FLOAT(&v939[1]);
  8789.       FName::FName(&v939[1], 0);
  8790.       APlayerController::eventClientMessage(*(int **)(*((_DWORD *)v4 + 926) + 60), (int)&v1102, SLODWORD(v939[1]));
  8791.       LOBYTE(v1544) = 46;
  8792.       FString::~FString(&v1102);
  8793.       LOBYTE(v1544) = 0;
  8794.       FString::~FString(&v1029);
  8795.       LODWORD(v939[1]) = (signed int)(*(float *)&v1575 * 2048.0);
  8796.       v809 = FString::Printf(&v1031, (const char *)L"PawnActorRange = %d", v939[1]);
  8797.       LOBYTE(v1544) = 48;
  8798.       v810 = FString::operator*(v809);
  8799.       FString::FString(&v1092, v810);
  8800.       LOBYTE(v1544) = 49;
  8801.       v939[1] = v811;
  8802.       v1573 = COERCE_FLOAT(&v939[1]);
  8803.       FName::FName(&v939[1], 0);
  8804.       APlayerController::eventClientMessage(*(int **)(*((_DWORD *)v4 + 926) + 60), (int)&v1092, SLODWORD(v939[1]));
  8805.       LOBYTE(v1544) = 48;
  8806.       FString::~FString(&v1092);
  8807.       LOBYTE(v1544) = 0;
  8808.       FString::~FString(&v1031);
  8809.       LODWORD(v939[1]) = (signed int)(v1577 * 2048.0);
  8810.       v812 = FString::Printf(&v1033, (const char *)L"S.MeshLODRange = %d", v939[1]);
  8811.       LOBYTE(v1544) = 50;
  8812.       v813 = FString::operator*(v812);
  8813.       FString::FString(&v1090, v813);
  8814.       LOBYTE(v1544) = 51;
  8815.       v939[1] = v814;
  8816.       v1573 = COERCE_FLOAT(&v939[1]);
  8817.       FName::FName(&v939[1], 0);
  8818.       APlayerController::eventClientMessage(*(int **)(*((_DWORD *)v4 + 926) + 60), (int)&v1090, SLODWORD(v939[1]));
  8819.       LOBYTE(v1544) = 50;
  8820.       FString::~FString(&v1090);
  8821.       LOBYTE(v1544) = 0;
  8822.       FString::~FString(&v1033);
  8823.       LODWORD(v939[1]) = (signed int)(*(float *)&v1571 * 2048.0);
  8824.       v815 = FString::Printf(&v1032, (const char *)L"TerrainRange = %d", v939[1]);
  8825.       LOBYTE(v1544) = 52;
  8826.       v816 = FString::operator*(v815);
  8827.       FString::FString(&v1089, v816);
  8828.       LOBYTE(v1544) = 53;
  8829.       v939[1] = v817;
  8830.       v1573 = COERCE_FLOAT(&v939[1]);
  8831.       FName::FName(&v939[1], 0);
  8832.       APlayerController::eventClientMessage(*(int **)(*((_DWORD *)v4 + 926) + 60), (int)&v1089, SLODWORD(v939[1]));
  8833.       LOBYTE(v1544) = 52;
  8834.       FString::~FString(&v1089);
  8835.       LOBYTE(v1544) = 0;
  8836.       FString::~FString(&v1032);
  8837.       *(float *)LODWORD(GL2OriginPawnCR) = *(float *)&v1575;
  8838.       v939[1] = v818;
  8839.       v819 = TSingleton<L2Configuration>::GetObj(*(float *)LODWORD(GL2OriginPawnCR), v940);
  8840.       L2Configuration::SetPawnCR(v819);
  8841.       v820 = *(float *)&v1571;
  8842.       *(float *)LODWORD(GL2OriginTerrainCR) = *(float *)&v1571;
  8843.       *(float *)LODWORD(GL2TerrainCR) = v820;
  8844.       *(float *)LODWORD(GL2OriginStaticMeshCR) = v1574;
  8845.       v940 = (const wchar_t *)LODWORD(GL2OriginStaticMeshCR);
  8846.       v821 = TSingleton<L2Configuration>::GetObj(*(float *)LODWORD(GL2OriginStaticMeshCR), v941);
  8847.       L2Configuration::SetStaticMeshCR(v821);
  8848.       *(float *)LODWORD(GL2OriginStaticMeshLodCR) = v1577;
  8849.       v941 = v822;
  8850.       v823 = TSingleton<L2Configuration>::GetObj(*(float *)LODWORD(GL2OriginStaticMeshLodCR), v942);
  8851.       L2Configuration::SetStaticMeshLodCR(v823);
  8852.       v824 = *(void (__stdcall ***)(const wchar_t *, struct FOutputDevice *))(*((_DWORD *)v4 + 926) + 56);
  8853.       v942 = a4;
  8854.       v941 = (int)L"Env Reload";
  8855.       (*v824)(L"Env Reload", a4);
  8856.       return 0;
  8857.     }
  8858.     if ( ParseCommand(&a3, L"ResetCam") && !*(_DWORD *)GIsEditor )
  8859.     {
  8860.       LODWORD(v939[1]) = ALineagePlayerController::PrivateStaticClass;
  8861.       if ( !UClass::IsA(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60), ALineagePlayerController::PrivateStaticClass) )
  8862.         return 1;
  8863.       v825 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8864.       if ( !v825 )
  8865.         return 0;
  8866.       *(float *)(v825 + 2648) = 0.0;
  8867.       *(float *)(v825 + 2972) = 1.0;
  8868.       *(float *)(v825 + 968) = 50.0;
  8869.       *(float *)(v825 + 1532) = 50.0;
  8870.       *(float *)(v825 + 1536) = 50.0;
  8871.       *(float *)(*(_DWORD *)(v825 + 956) + 8100) = 800.0;
  8872.       *(float *)(*(_DWORD *)(v825 + 956) + 7344) = 0.0;
  8873.       *(float *)(v825 + 2876) = 350.0;
  8874.       return 0;
  8875.     }
  8876.     if ( ParseCommand(&a3, L"CameraDist") && !*(_DWORD *)GIsEditor )
  8877.     {
  8878.       LODWORD(v939[1]) = ALineagePlayerController::PrivateStaticClass;
  8879.       if ( !UClass::IsA(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60), ALineagePlayerController::PrivateStaticClass) )
  8880.         return 1;
  8881.       v826 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8882.       appAtof(a3);
  8883.       *(float *)&a4 = a2;
  8884.       if ( !v826 )
  8885.         return 0;
  8886.       *(float *)(v826 + 2876) = *(float *)&a4;
  8887.       return 0;
  8888.     }
  8889.     if ( ParseCommand(&a3, L"ResetProfiler") && !*(_DWORD *)GIsEditor )
  8890.     {
  8891.       v827 = **(_DWORD **)GConfig;
  8892.       LODWORD(v939[1]) = L"L2Profiler.ini";
  8893.       (*(void (__stdcall **)(const wchar_t *))(v827 + 56))(L"L2Profiler.ini");
  8894.       return 0;
  8895.     }
  8896.     if ( !ParseCommand(&a3, L"CAMERAWALKING") && !ParseCommand(&a3, L"cw") )
  8897.     {
  8898.       if ( ParseCommand(&a3, L"INCCAMERAWALKINGACCEL") )
  8899.       {
  8900.         v828 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8901.         v105 = ParseCommand(&a3, L"OnRelease") == 0;
  8902.         v829 = *((_DWORD *)v4 + 932);
  8903.         if ( v105 )
  8904.           v830 = v829 == 1;
  8905.         else
  8906.           v830 = v829 == 3;
  8907.         if ( v830 || !v829 || v828 && !(*(_BYTE *)(v828 + 2654) & 1) && v829 == 2 )
  8908.         {
  8909.           v831 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8910.           if ( *(_DWORD *)(v831 + 956) )
  8911.           {
  8912.             if ( UClass::IsA(v831, ALineagePlayerController::PrivateStaticClass) )
  8913.             {
  8914.               v832 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8915.               if ( !(*(_DWORD *)(v832 + 976) & 0x80000) )
  8916.               {
  8917.                 v833 = *(_BYTE *)(v832 + 1089);
  8918.                 if ( v833 )
  8919.                 {
  8920.                   if ( v833 != 2 && v833 != 4 )
  8921.                   {
  8922.                     Parse(a3, L"RATE=", &v1094);
  8923.                     ++*(_DWORD *)(*(_DWORD *)(v828 + 956) + 8112);
  8924.                     v834 = *(_DWORD *)(v828 + 956);
  8925.                     if ( *(_DWORD *)(v834 + 8112) >= 3 )
  8926.                       *(_DWORD *)(v834 + 8112) = 2;
  8927.                     v835 = *(_DWORD *)(v828 + 956);
  8928.                     v836 = *(_DWORD *)(v835 + 8112);
  8929.                     if ( v836 )
  8930.                     {
  8931.                       v837 = v836 - 1;
  8932.                       if ( v837 )
  8933.                       {
  8934.                         if ( v837 == 1 )
  8935.                           *(float *)(v835 + 8108) = 0.0;
  8936.                       }
  8937.                       else
  8938.                       {
  8939.                         *(float *)(v835 + 8108) = 2000.0;
  8940.                       }
  8941.                     }
  8942.                     else
  8943.                     {
  8944.                       *(float *)(v835 + 8108) = 800.0;
  8945.                     }
  8946.                   }
  8947.                 }
  8948.               }
  8949.             }
  8950.           }
  8951.         }
  8952.         return 1;
  8953.       }
  8954.       if ( ParseCommand(&a3, L"DECCAMERAWALKINGACCEL") )
  8955.       {
  8956.         v838 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8957.         v105 = ParseCommand(&a3, L"OnRelease") == 0;
  8958.         v839 = *((_DWORD *)v4 + 932);
  8959.         if ( v105 )
  8960.           v840 = v839 == 1;
  8961.         else
  8962.           v840 = v839 == 3;
  8963.         if ( v840 || !v839 )
  8964.         {
  8965.           v841 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8966.           if ( *(_DWORD *)(v841 + 956) )
  8967.           {
  8968.             if ( UClass::IsA(v841, ALineagePlayerController::PrivateStaticClass) )
  8969.             {
  8970.               v842 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  8971.               if ( !(*(_DWORD *)(v842 + 976) & 0x80000) )
  8972.               {
  8973.                 v843 = *(_BYTE *)(v842 + 1089);
  8974.                 if ( v843 )
  8975.                 {
  8976.                   if ( v843 != 2 && v843 != 4 )
  8977.                   {
  8978.                     --*(_DWORD *)(*(_DWORD *)(v838 + 956) + 8112);
  8979.                     v844 = *(_DWORD *)(v838 + 956);
  8980.                     if ( *(_DWORD *)(v844 + 8112) < 0 )
  8981.                       *(_DWORD *)(v844 + 8112) = 0;
  8982.                     v845 = *(_DWORD *)(v838 + 956);
  8983.                     v846 = *(_DWORD *)(v845 + 8112);
  8984.                     if ( v846 )
  8985.                     {
  8986.                       v847 = v846 - 1;
  8987.                       if ( v847 )
  8988.                       {
  8989.                         if ( v847 == 1 )
  8990.                           *(float *)(v845 + 8108) = 0.0;
  8991.                       }
  8992.                       else
  8993.                       {
  8994.                         *(float *)(v845 + 8108) = 2000.0;
  8995.                       }
  8996.                     }
  8997.                     else
  8998.                     {
  8999.                       *(float *)(v845 + 8108) = 800.0;
  9000.                     }
  9001.                   }
  9002.                 }
  9003.               }
  9004.             }
  9005.           }
  9006.         }
  9007.         return 1;
  9008.       }
  9009.       if ( ParseCommand(&a3, L"MODMAXAIRSPEEDSTART") )
  9010.       {
  9011.         v848 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9012.         v105 = ParseCommand(&a3, L"OnRelease") == 0;
  9013.         v849 = *((_DWORD *)v4 + 932);
  9014.         if ( v105 )
  9015.           v850 = v849 == 1;
  9016.         else
  9017.           v850 = v849 == 3;
  9018.         if ( v850 || !v849 || v848 && !(*(_BYTE *)(v848 + 2654) & 1) && v849 == 2 )
  9019.         {
  9020.           v851 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9021.           if ( *(_DWORD *)(v851 + 956) )
  9022.           {
  9023.             if ( UClass::IsA(v851, ALineagePlayerController::PrivateStaticClass) )
  9024.             {
  9025.               v852 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9026.               if ( !(*(_DWORD *)(v852 + 976) & 0x80000) )
  9027.               {
  9028.                 v853 = *(_BYTE *)(v852 + 1089);
  9029.                 if ( v853 )
  9030.                 {
  9031.                   if ( v853 != 2 && v853 != 4 )
  9032.                   {
  9033.                     Parse(a3, L"SPEED=", &v1270);
  9034.                     *(float *)(*(_DWORD *)(v848 + 956) + 8116) = *(float *)&v1270;
  9035.                   }
  9036.                 }
  9037.               }
  9038.             }
  9039.           }
  9040.         }
  9041.         return 1;
  9042.       }
  9043.       if ( ParseCommand(&a3, L"MODMAXAIRSPEEDFINISH") )
  9044.       {
  9045.         v854 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9046.         v105 = ParseCommand(&a3, L"OnRelease") == 0;
  9047.         v855 = *((_DWORD *)v4 + 932);
  9048.         if ( v105 )
  9049.           v856 = v855 == 1;
  9050.         else
  9051.           v856 = v855 == 3;
  9052.         if ( v856 || !v855 )
  9053.         {
  9054.           v857 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9055.           if ( *(_DWORD *)(v857 + 956) )
  9056.           {
  9057.             if ( UClass::IsA(v857, ALineagePlayerController::PrivateStaticClass) )
  9058.             {
  9059.               v858 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9060.               if ( !(*(_DWORD *)(v858 + 976) & 0x80000) )
  9061.               {
  9062.                 v859 = *(_BYTE *)(v858 + 1089);
  9063.                 if ( v859 )
  9064.                 {
  9065.                   if ( v859 != 2 && v859 != 4 )
  9066.                     *(float *)(*(_DWORD *)(v854 + 956) + 8116) = 0.0;
  9067.                 }
  9068.               }
  9069.             }
  9070.           }
  9071.         }
  9072.         return 1;
  9073.       }
  9074.       if ( ParseCommand(&a3, L"CAMERAMODESELECTINGCANCEL") )
  9075.       {
  9076.         v860 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9077.         if ( *(_BYTE *)(v860 + 2656) & 2 && *(_DWORD *)(v860 + 2968) )
  9078.           *(_DWORD *)(v860 + 2968) = 0;
  9079.         return 1;
  9080.       }
  9081.       if ( ParseCommand(&a3, L"ChangeEnv") )
  9082.       {
  9083.         if ( *((_DWORD *)dword_2077EE00 + 29) )
  9084.         {
  9085.           if ( !v268(a3, L"Env=", (int *)v1434) )
  9086.             *(_DWORD *)v1434 = 0;
  9087.           if ( !Parse(a3, L"Dur=", &v1392) )
  9088.             v1392 = 0.02;
  9089.           if ( !Parse(a3, L"Peak=", &v1436) )
  9090.             v1436 = 0.02;
  9091.           if ( !Parse(a3, L"Last=", &v1412) )
  9092.             v1412 = 1.0;
  9093.           LODWORD(v939[1]) = 1;
  9094.           v939[0] = 0.0;
  9095.           v938 = v1412;
  9096.           v937 = v1436;
  9097.           UL2NEnvManager::ChangeEnv(*((UL2NEnvManager **)dword_2077EE00 + 29), v1434[0], 0, v1392, v1436, v1412, 0.0, 1);
  9098.         }
  9099.         return 1;
  9100.       }
  9101.       if ( ParseCommand(&a3, L"FISH") )
  9102.       {
  9103.         v861 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9104.         if ( dword_2077EE00 && v861 && *(_DWORD *)(v861 + 956) )
  9105.         {
  9106.           if ( ParseCommand(&a3, L"START") )
  9107.           {
  9108.             if ( !v268(a3, L"FISHID=", (int *)&v1408) )
  9109.               v1408 = 0.0;
  9110.             if ( !Parse(a3, L"BRIGHT=", &v1565) )
  9111.               v1565 = 0;
  9112.             if ( !Parse(a3, L"EVENT=", &v1563) )
  9113.               v1563 = 0;
  9114.             v992 = 0.0;
  9115.             LODWORD(v939[1]) = &v978;
  9116.             v862 = (float *)FRotator::Vector(*(_DWORD *)(v861 + 956) + 448, &v978);
  9117.             v863 = sub_20005D30((float *)&v990, v862, 100.0);
  9118.             v864 = *(float **)(v861 + 956);
  9119.             *(float *)&a4 = v864[109] + *v863;
  9120.             v1573 = v863[1] + v864[110];
  9121.             v1552 = v863[2] + v864[111];
  9122.             v976 = a4;
  9123.             *(float *)&a4 = *(float *)&a4 + 0.0;
  9124.             v1573 = v1573 + 0.0;
  9125.             v1552 = v1552 - 25.0;
  9126.             v1498 = a4;
  9127.             v1499 = v1573;
  9128.             v1500 = v1552;
  9129.             v865 = *(_DWORD *)dword_2077EE00;
  9130.             LODWORD(v939[1]) = v1563;
  9131.             LODWORD(v939[0]) = v1565;
  9132.             v936 = *(float *)&a4;
  9133.             v937 = v1573;
  9134.             v938 = v1552;
  9135.             v935 = v1408;
  9136.             v934 = *(float *)&v864;
  9137.             (*(void (__stdcall **)(float *, float, struct FOutputDevice *, float, _DWORD, _DWORD, _DWORD))(v865 + 1804))(
  9138.               v864,
  9139.               COERCE_FLOAT(LODWORD(v1408)),
  9140.               a4,
  9141.               COERCE_FLOAT(LODWORD(v1573)),
  9142.               LODWORD(v1552),
  9143.               v1565,
  9144.               v1563);
  9145.           }
  9146.           else if ( ParseCommand(&a3, L"END") )
  9147.           {
  9148.             v866 = *(_DWORD *)dword_2077EE00;
  9149.             LODWORD(v939[1]) = 1;
  9150.             (*(void (__stdcall **)(_DWORD, signed int))(v866 + 1808))(*(_DWORD *)(v861 + 956), 1);
  9151.           }
  9152.           else if ( ParseCommand(&a3, L"COMBAT") )
  9153.           {
  9154.             if ( !v268(a3, L"TIME=", &v1432) )
  9155.               v1432 = 20;
  9156.             if ( !v268(a3, L"HP=", &v1388) )
  9157.               v1388 = 100;
  9158.             if ( !Parse(a3, L"GUTS=", &v1561) )
  9159.               v1561 = 0;
  9160.             if ( !Parse(a3, L"LEVEL=", &v1568) )
  9161.               v1568 = 0;
  9162.             if ( !Parse(a3, L"FAKE=", &v1566) )
  9163.               v1566 = 0;
  9164.             L2ParamStack::L2ParamStack(&v1106, 10);
  9165.             LOBYTE(v1544) = 55;
  9166.             L2ParamStack::PushBack(&v1106, v1432, v1432 >> 31);
  9167.             L2ParamStack::PushBack(&v1106, v1388, v1388 >> 31);
  9168.             L2ParamStack::PushBack(&v1106, v1561, 0);
  9169.             L2ParamStack::PushBack(&v1106, v1568, 0);
  9170.             L2ParamStack::PushBack(&v1106, v1566, 0);
  9171.             v867 = *(_DWORD *)dword_2077EE00;
  9172.             LODWORD(v939[1]) = &v1106;
  9173.             (*(void (__stdcall **)(_DWORD, int *))(v867 + 1812))(*(_DWORD *)(v861 + 956), &v1106);
  9174.             LOBYTE(v1544) = 0;
  9175.             L2ParamStack::~L2ParamStack(&v1106);
  9176.           }
  9177.           else if ( ParseCommand(&a3, L"REGEN") )
  9178.           {
  9179.             if ( !v268(a3, L"TIME=", &v1430) )
  9180.               v1430 = 20;
  9181.             if ( !v268(a3, L"HP=", &v1404) )
  9182.               v1404 = 100;
  9183.             if ( !Parse(a3, L"GUTS=", &v1564) )
  9184.               v1564 = 0;
  9185.             if ( !Parse(a3, L"EFFECT=", &v1562) )
  9186.               v1562 = 0;
  9187.             if ( !Parse(a3, L"SKILL=", &v1569) )
  9188.               v1569 = 0;
  9189.             if ( !v268(a3, L"PENALTY=", &v1428) )
  9190.               v1428 = 0;
  9191.             if ( !Parse(a3, L"FAKE=", &v1567) )
  9192.               v1567 = 0;
  9193.             L2ParamStack::L2ParamStack(&v1171, 10);
  9194.             LOBYTE(v1544) = 56;
  9195.             L2ParamStack::PushBack(&v1171, v1430, v1430 >> 31);
  9196.             L2ParamStack::PushBack(&v1171, v1404, v1404 >> 31);
  9197.             L2ParamStack::PushBack(&v1171, v1564, 0);
  9198.             L2ParamStack::PushBack(&v1171, v1562, 0);
  9199.             L2ParamStack::PushBack(&v1171, v1569, 0);
  9200.             L2ParamStack::PushBack(&v1171, v1428, v1428 >> 31);
  9201.             L2ParamStack::PushBack(&v1171, v1567, 0);
  9202.             v868 = *(_DWORD *)dword_2077EE00;
  9203.             LODWORD(v939[1]) = &v1171;
  9204.             (*(void (__stdcall **)(_DWORD, int *))(v868 + 1816))(*(_DWORD *)(v861 + 956), &v1171);
  9205.             LOBYTE(v1544) = 0;
  9206.             L2ParamStack::~L2ParamStack(&v1171);
  9207.           }
  9208.           else if ( ParseCommand(&a3, L"RANK") && *(_DWORD *)GIsL2NetLogin )
  9209.           {
  9210.             (*(void (**)(void))(**((_DWORD **)dword_2077EE00 + 26) + 1248))();
  9211.           }
  9212.         }
  9213.         return 1;
  9214.       }
  9215.       if ( ParseCommand(&a3, L"GPUSkinning") )
  9216.       {
  9217.         *(_DWORD *)GL2GPUSkinning = *(_DWORD *)GL2GPUSkinning == 0;
  9218.         return 1;
  9219.       }
  9220.       if ( ParseCommand(&a3, L"PA") )
  9221.       {
  9222.         v869 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9223.         if ( v869 && UClass::IsA(v869, ALineagePlayerController::PrivateStaticClass) )
  9224.         {
  9225.           if ( (*(int (**)(void))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 920))() )
  9226.             v870 = (*(int (**)(void))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 920))();
  9227.           else
  9228.             v870 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  9229.           v871 = *(_DWORD *)v870;
  9230.           LODWORD(v939[1]) = 2;
  9231.           v939[0] = 0.0;
  9232.           v938 = 0.30000001;
  9233.           v937 = *(float *)(v870 + 1736);
  9234.           v936 = *(float *)(v870 + 4940);
  9235.           v935 = 0.0;
  9236.           (*(void (__thiscall **)(int, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, signed int))(v871 + 876))(
  9237.             v870,
  9238.             0,
  9239.             LODWORD(v936),
  9240.             LODWORD(v937),
  9241.             0.30000001,
  9242.             0,
  9243.             2);
  9244.         }
  9245.         return 1;
  9246.       }
  9247.       if ( ParseCommand(&a3, L"SpawnPC") || ParseCommand(&a3, L"SpawnPCs") )
  9248.       {
  9249.         if ( !v268(a3, L"Num=", &v1447) )
  9250.           v1447 = 200;
  9251.         if ( *(_DWORD *)(*((_DWORD *)v4 + 926) + 60) && dword_2077EE00 )
  9252.           UGameEngine::OnSpawnPc(dword_2077EE00, v1447);
  9253.         return 1;
  9254.       }
  9255.       if ( ParseCommand(&a3, L"SpawnNPC") || ParseCommand(&a3, L"SpawnNPCs") )
  9256.       {
  9257.         if ( !v268(a3, L"Num=", &v1449) )
  9258.           v1449 = 20;
  9259.         if ( *(_DWORD *)(*((_DWORD *)v4 + 926) + 60) && dword_2077EE00 && *(_DWORD *)GIsL2NetLogin )
  9260.         {
  9261.           v962[0] = 0;
  9262.           memset(&v962[1], 0, 0x7Eu);
  9263.           for ( i2 = 0; i2 < v1449; ++i2 )
  9264.           {
  9265.             v1577 = -6.8056469e38/*NaN*/;
  9266.             do
  9267.             {
  9268.               v910 = appRand(v940);
  9269.               v911 = v910 % 40000;
  9270.               LODWORD(v1577) = v910 % 40000;
  9271.             }
  9272.             while ( !sub_200CD5D0((int *)&v1577, (int *)dword_207A14DC) );
  9273.             LODWORD(v939[1]) = v911;
  9274.             appSprintf(v962, L"summon 10%5d", v911);
  9275.             L2ParamStack::L2ParamStack(&v1028, 10);
  9276.             LOBYTE(v1544) = 57;
  9277.             L2ParamStack::PushBack(&v1028, v962, (signed int)v962 >> 31);
  9278.             v912 = **((_DWORD **)dword_2077EE00 + 26);
  9279.             LODWORD(v939[1]) = &v1028;
  9280.             (*(void (__stdcall **)(int *))(v912 + 688))(&v1028);
  9281.             LOBYTE(v1544) = 0;
  9282.             L2ParamStack::~L2ParamStack(&v1028);
  9283.           }
  9284.         }
  9285.         return 1;
  9286.       }
  9287.       if ( ParseCommand(&a3, L"SDPC") )
  9288.       {
  9289.         if ( *(_DWORD *)(*((_DWORD *)v4 + 926) + 60) && dword_2077EE00 )
  9290.           UGameEngine::OnSpawnDefaultPc(dword_2077EE00);
  9291.         return 1;
  9292.       }
  9293.       if ( ParseCommand(&a3, L"SETALPHA") && !*(_DWORD *)GIsEditor )
  9294.       {
  9295.         v872 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9296.         if ( v872 && UClass::IsA(v872, ALineagePlayerController::PrivateStaticClass) )
  9297.         {
  9298.           LOBYTE(v1533) = -128;
  9299.           if ( !Parse(a3, L"ALPHA=", &v1533) )
  9300.             LOBYTE(v1533) = -128;
  9301.           v873 = (*(int (**)(void))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 920))();
  9302.           v874 = *(_DWORD ***)(*((_DWORD *)v4 + 926) + 60);
  9303.           if ( v873 )
  9304.           {
  9305.             v875 = (int *)((int (*)(void))(*v874)[230])();
  9306.             v876 = *v875;
  9307.             LODWORD(v939[1]) = 2;
  9308.             LODWORD(v939[0]) = v1533;
  9309.             (*(void (__thiscall **)(int *, int, signed int))(v876 + 260))(v875, v1533, 2);
  9310.           }
  9311.           else
  9312.           {
  9313.             v877 = *v874[239];
  9314.             LODWORD(v939[1]) = 2;
  9315.             LODWORD(v939[0]) = v1533;
  9316.             (*(void (__stdcall **)(int, signed int))(v877 + 260))(v1533, 2);
  9317.           }
  9318.         }
  9319.         return 1;
  9320.       }
  9321.       if ( (ParseCommand(&a3, L"SPAWNEMITTER") || ParseCommand(&a3, L"SE")) && !*(_DWORD *)GIsEditor )
  9322.       {
  9323.         v878 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9324.         if ( v878
  9325.           && UClass::IsA(v878, ALineagePlayerController::PrivateStaticClass)
  9326.           && *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) )
  9327.         {
  9328.           FString::FString(&v1163);
  9329.           LOBYTE(v1544) = 58;
  9330.           if ( !Parse(a3, L"NAME=", &v1163, 0) )
  9331.             FString::operator=(&v1163, L"wh_magic_barrier_ta");
  9332.           v879 = *(float **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  9333.           v1472 = v879[109];
  9334.           v1473 = v879[110];
  9335.           v1474 = v879[111];
  9336.           v1498 = *((struct FOutputDevice **)v879 + 112);
  9337.           v1499 = v879[113];
  9338.           v1500 = v879[114];
  9339.           v939[1] = 0.0;
  9340.           v939[0] = 0.0;
  9341.           v938 = COERCE_FLOAT(L"LineageEffect");
  9342.           v880 = FString::operator*(&v1163);
  9343.           v881 = UObject::StaticLoadClass(
  9344.                    AActor::PrivateStaticClass,
  9345.                    0,
  9346.                    v880,
  9347.                    LODWORD(v938),
  9348.                    LODWORD(v939[0]),
  9349.                    LODWORD(v939[1]));
  9350.           if ( v881 )
  9351.           {
  9352.             v882 = *(float *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  9353.             v883 = *(_DWORD **)(LODWORD(v882) + 216);
  9354.             v884 = (int (__thiscall **)(_DWORD *, int))(*v883 + 184);
  9355.             v939[1] = 0.0;
  9356.             v939[0] = v882;
  9357.             v938 = 0.0;
  9358.             LODWORD(v937) = 1;
  9359.             v936 = 0.0;
  9360.             v933 = *(float *)&v1498;
  9361.             v934 = v1499;
  9362.             v935 = v1500;
  9363.             v930 = v1472;
  9364.             v931 = v1473;
  9365.             v932 = v1474;
  9366.             v929 = v1474;
  9367.             *(float *)&a4 = COERCE_FLOAT(&v929);
  9368.             FName::FName(&v929, 0);
  9369.             LODWORD(v939[1]) = v881;
  9370.             v885 = (*v884)(v883, v881);
  9371.             sub_200D2650(v885);
  9372.           }
  9373.           LOBYTE(v1544) = 0;
  9374.           FString::~FString(&v1163);
  9375.         }
  9376.         return 1;
  9377.       }
  9378.       if ( (ParseCommand(&a3, L"VARIATIONEFFECT") || ParseCommand(&a3, L"VE")) && !*(_DWORD *)GIsEditor )
  9379.       {
  9380.         v886 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9381.         if ( v886
  9382.           && UClass::IsA(v886, ALineagePlayerController::PrivateStaticClass)
  9383.           && *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) )
  9384.         {
  9385.           if ( !v268(a3, L"OPT1=", &v1464) )
  9386.             v1464 = 0;
  9387.           if ( !v268(a3, L"OPT2=", &v1463) )
  9388.             v1463 = 0;
  9389.           if ( !v268(a3, L"ENCHANT=", &v1461) )
  9390.             v1461 = 0;
  9391.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 8156) = v1464;
  9392.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 8160) = v1463;
  9393.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 8152) = v1461;
  9394.         }
  9395.         return 1;
  9396.       }
  9397.       if ( (ParseCommand(&a3, L"ClickMe") || ParseCommand(&a3, L"cm")) && !*(_DWORD *)GIsEditor )
  9398.       {
  9399.         *(_DWORD *)GL2ClientStandAlone = *(_DWORD *)GL2ClientStandAlone == 0;
  9400.         return 1;
  9401.       }
  9402.       if ( (ParseCommand(&a3, L"L2CheckResource") || ParseCommand(&a3, L"L2CR")) && !*(_DWORD *)GIsEditor )
  9403.       {
  9404.         *(_DWORD *)GL2CheckResource = *(_DWORD *)GL2CheckResource == 0;
  9405.         return 1;
  9406.       }
  9407.       if ( ParseCommand(&a3, L"DestroyActor") && !*(_DWORD *)GIsEditor && !*(_DWORD *)GIsL2NetLogin )
  9408.       {
  9409.         v887 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9410.         if ( v887 && *(_DWORD *)(v887 + 956) )
  9411.         {
  9412.           if ( ParseCommand(&a3, L"ALL") )
  9413.           {
  9414.             v888 = *(int **)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 216);
  9415.             for ( i3 = 0; i3 < v888[15]; ++i3 )
  9416.             {
  9417.               v889 = (int *)(v888[14] + 4 * i3);
  9418.               if ( *v889
  9419.                 && sub_200D25F0(*v889)
  9420.                 && sub_200D25F0(*v889) != *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) )
  9421.               {
  9422.                 v890 = *v888;
  9423.                 v939[1] = 0.0;
  9424.                 (*(void (__thiscall **)(int *, int, _DWORD))(v890 + 164))(v888, *v889, 0);
  9425.               }
  9426.             }
  9427.           }
  9428.           else if ( (*(int (**)(void))(**(_DWORD **)(*((_DWORD *)v4 + 926) + 60) + 920))() )
  9429.           {
  9430.             v891 = *(_DWORD **)(*((_DWORD *)v4 + 926) + 60);
  9431.             v892 = *(_DWORD **)(v891[239] + 216);
  9432.             v893 = (void (__thiscall **)(_DWORD *, _DWORD))(*v892 + 164);
  9433.             v939[1] = 0.0;
  9434.             LODWORD(v939[1]) = (*(int (__stdcall **)(_DWORD))(*v891 + 920))(0);
  9435.             (*v893)(v892, LODWORD(v939[1]));
  9436.           }
  9437.         }
  9438.         return 1;
  9439.       }
  9440.       if ( ParseCommand(&a3, L"NameOffset") && !*(_DWORD *)GIsEditor && !*(_DWORD *)GIsL2NetLogin )
  9441.       {
  9442.         v894 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9443.         if ( v894 && *(_DWORD *)(v894 + 956) )
  9444.         {
  9445.           if ( ParseCommand(&a3, L"off") )
  9446.           {
  9447.             *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 88) = -1;
  9448.           }
  9449.           else
  9450.           {
  9451.             *(float *)&v1459 = 0.0;
  9452.             Parse(a3, L"Z=", &v1459);
  9453.             v895 = *(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  9454.             if ( *(_DWORD *)(v895 + 88) == -1 )
  9455.               *(_DWORD *)(v895 + 88) = 1;
  9456.             *(float *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 8092) = *(float *)&v1459;
  9457.           }
  9458.         }
  9459.         return 1;
  9460.       }
  9461.       if ( ParseCommand(&a3, L"Flight") && !*(_DWORD *)GIsEditor )
  9462.       {
  9463.         v896 = *(int **)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  9464.         if ( v896 )
  9465.         {
  9466.           v1201 = 0.0;
  9467.           v1202 = 0.0;
  9468.           v1203 = 1.0;
  9469.           v897 = *v896;
  9470.           v938 = 0.0;
  9471.           v939[0] = 0.0;
  9472.           v939[1] = 1.0;
  9473.           v937 = 0.0;
  9474.           LODWORD(v936) = 4;
  9475.           (*(void (__stdcall **)(signed int, _DWORD, _DWORD, _DWORD, _DWORD))(v897 + 468))(4, 0, 0.0, 0.0, 1.0);
  9476.           *(_DWORD *)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 1840) |= 1u;
  9477.         }
  9478.         return 1;
  9479.       }
  9480.       if ( ParseCommand(&a3, L"Clear_block") && !*(_DWORD *)GIsEditor )
  9481.       {
  9482.         sub_2023F210();
  9483.         return 1;
  9484.       }
  9485.       if ( ParseCommand(&a3, L"Clear_Lines") && !*(_DWORD *)GIsEditor )
  9486.       {
  9487.         sub_20238BA0();
  9488.         return 1;
  9489.       }
  9490.       if ( ParseCommand(&a3, L"DL") )
  9491.       {
  9492.         if ( ParseCommand(&a3, L"OFF") )
  9493.         {
  9494.           v898 = *(int **)(*(_DWORD *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956) + 216);
  9495.           for ( i4 = 0; ; ++i4 )
  9496.           {
  9497.             v1240 = i4;
  9498.             if ( i4 >= v898[15] )
  9499.               break;
  9500.             v900 = *(float *)(v898[14] + 4 * i4);
  9501.             if ( v900 != 0.0 && UClass::IsA(LODWORD(v900), ADynamicLight::PrivateStaticClass) )
  9502.             {
  9503.               v901 = *v898;
  9504.               v939[1] = 0.0;
  9505.               v939[0] = v900;
  9506.               (*(void (__thiscall **)(int *, float, _DWORD))(v901 + 164))(v898, COERCE_FLOAT(LODWORD(v900)), 0);
  9507.             }
  9508.           }
  9509.           return 0;
  9510.         }
  9511.         v902 = *(float *)(*(_DWORD *)(*((_DWORD *)v4 + 926) + 60) + 956);
  9512.         v903 = *(_DWORD **)(LODWORD(v902) + 216);
  9513.         v904 = (int (__thiscall **)(_DWORD *, int *))(*v903 + 184);
  9514.         v939[1] = 0.0;
  9515.         v939[0] = v902;
  9516.         v938 = 0.0;
  9517.         LODWORD(v937) = 1;
  9518.         v936 = 0.0;
  9519.         v933 = *(float *)(LODWORD(v902) + 448);
  9520.         v934 = *(float *)(LODWORD(v902) + 452);
  9521.         v935 = *(float *)(LODWORD(v902) + 456);
  9522.         LODWORD(v902) += 436;
  9523.         v930 = *(float *)LODWORD(v902);
  9524.         v931 = *(float *)(LODWORD(v902) + 4);
  9525.         v932 = *(float *)(LODWORD(v902) + 8);
  9526.         v929 = COERCE_FLOAT(&v930);
  9527.         *(float *)&a4 = COERCE_FLOAT(&v929);
  9528.         FName::FName(&v929, 0);
  9529.         LODWORD(v939[1]) = ADynamicLight::PrivateStaticClass;
  9530.         v905 = (*v904)(v903, ADynamicLight::PrivateStaticClass);
  9531.         if ( !v268(a3, L"Brightness=", &v1457) )
  9532.           v1457 = 255;
  9533.         if ( !v268(a3, L"Hue=", &v1455) )
  9534.           v1455 = 255;
  9535.         if ( !v268(a3, L"Saturation=", &v1453) )
  9536.           v1453 = 127;
  9537.         *(float *)(v905 + 960) = (double)v1457;
  9538.         *(_BYTE *)(v905 + 968) = v1455;
  9539.         *(_BYTE *)(v905 + 969) = v1453;
  9540.         *(_BYTE *)(v905 + 956) = 1;
  9541.         result = 0;
  9542.       }
  9543.       else
  9544.       {
  9545.         if ( !ParseCommand(&a3, L"SW") || *(_DWORD *)GIsEditor )
  9546.         {
  9547.           if ( UInput::ExecL2Test((UInput *)((char *)v4 - 52), a3, a4) )
  9548.             return 1;
  9549.           if ( !dword_21601DC0 )
  9550.           {
  9551.             if ( ParseToken(&a3, &v961, 256, 0) )
  9552.             {
  9553.               FName::FName(&v1451, &v961, 0);
  9554.               FName::FName(&v1266, 0);
  9555.               if ( FName::operator!=(&v1451, &v1266) )
  9556.               {
  9557.                 for ( i5 = 0; ; ++i5 )
  9558.                 {
  9559.                   v1264 = i5;
  9560.                   if ( i5 >= 0x28 )
  9561.                     break;
  9562.                   v907 = (int)v4 + 16 * i5;
  9563.                   if ( FName::operator==(v907 + 4, &v1451) )
  9564.                   {
  9565.                     LOBYTE(v1544) = 59;
  9566.                     dword_21601DC0 = 1;
  9567.                     v908 = (_DWORD *)((char *)v4 - 52);
  9568.                     v909 = (void (__thiscall **)(_DWORD *, _DWORD, _DWORD))(*v908 + 156);
  9569.                     LODWORD(v939[1]) = a4;
  9570.                     LODWORD(v939[0]) = FString::operator*(v907 + 8);
  9571.                     (*v909)(v908, LODWORD(v939[0]), LODWORD(v939[1]));
  9572.                     dword_21601DC0 = 0;
  9573.                     v1544 = 0;
  9574.                     return 1;
  9575.                   }
  9576.                 }
  9577.               }
  9578.             }
  9579.           }
  9580.           return 0;
  9581.         }
  9582.         *(_DWORD *)GL2SeamlessWorld = *(_DWORD *)GL2SeamlessWorld == 0;
  9583.         result = 0;
  9584.       }
  9585.       return result;
  9586.     }
  9587.     v913 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9588.     if ( !v913
  9589.       || !*(_DWORD *)(v913 + 956)
  9590.       || !*(_DWORD *)(v913 + 216)
  9591.       || !UClass::IsA(v913, ALineagePlayerController::PrivateStaticClass) )
  9592.     {
  9593.       return 1;
  9594.     }
  9595.     v914 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9596.     FString::FString(&v1164);
  9597.     LOBYTE(v1544) = 54;
  9598.     Parse(a3, L"MODE=", &v1164, 0);
  9599.     if ( FString::operator==(&v1164, L"ON") || !appStricmp(a3, L"ON") )
  9600.     {
  9601.       *(_DWORD *)(v914 + 2968) = 0;
  9602.       *(_DWORD *)(v914 + 2652) &= 0xFFFFFFFE;
  9603.       *(_DWORD *)(v914 + 2656) |= 2u;
  9604.       v1190 = 0.0;
  9605.       v1191 = 0.0;
  9606.       v1192 = 1.0;
  9607.       v917 = **(_DWORD **)(v914 + 956);
  9608.       v938 = 0.0;
  9609.       v939[0] = 0.0;
  9610.       v939[1] = 1.0;
  9611.       v937 = 0.0;
  9612.       LODWORD(v936) = 4;
  9613.       (*(void (__stdcall **)(signed int, _DWORD, _DWORD, _DWORD, _DWORD))(v917 + 468))(4, 0, 0.0, 0.0, 1.0);
  9614.       *(float *)(*(_DWORD *)(v914 + 956) + 8100) = 800.0;
  9615.       *(float *)(*(_DWORD *)(v914 + 956) + 7344) = 0.0;
  9616.       *(_DWORD *)(v914 + 2652) |= 0x400u;
  9617.       v918 = *(_DWORD *)(v914 + 2652) | 0x200;
  9618.       *(_DWORD *)(v914 + 2652) = v918;
  9619.       *(_DWORD *)(v914 + 2652) = v918 | 0x800;
  9620.       *(_DWORD *)(v914 + 2732) = *(_DWORD *)(v914 + 2220);
  9621.       *(_DWORD *)(v914 + 2728) = *(_DWORD *)(v914 + 2172);
  9622.       *(float *)(v914 + 2736) = *(float *)(v914 + 2268);
  9623.       *(float *)(v914 + 2648) = *(float *)(v914 + 2316);
  9624.       *(_DWORD *)(v914 + 2652) ^= (*(_DWORD *)(v914 + 2652) ^ (*(_DWORD *)(v914 + 2412) << 12)) & 0x1000;
  9625.       *(_DWORD *)(*(_DWORD *)(v914 + 956) + 92) |= 0x10000u;
  9626.     }
  9627.     else
  9628.     {
  9629.       if ( !FString::operator==(&v1164, L"OFF") && appStricmp(a3, L"OFF") )
  9630.         goto LABEL_2360;
  9631.       *(_DWORD *)(v914 + 2652) &= 0xFFFFFFFE;
  9632.       *(_DWORD *)(v914 + 2656) &= 0xFFFFFFFD;
  9633.       v1194 = 0.0;
  9634.       v1195 = 0.0;
  9635.       v1196 = 1.0;
  9636.       v915 = **(_DWORD **)(v914 + 956);
  9637.       v938 = 0.0;
  9638.       v939[0] = 0.0;
  9639.       v939[1] = 1.0;
  9640.       v937 = 0.0;
  9641.       LODWORD(v936) = 1;
  9642.       (*(void (__stdcall **)(signed int, _DWORD, _DWORD, _DWORD, _DWORD))(v915 + 468))(1, 0, 0.0, 0.0, 1.0);
  9643.       *(float *)(*(_DWORD *)(v914 + 956) + 8100) = 120.0;
  9644.       *(float *)(*(_DWORD *)(v914 + 956) + 7344) = 120.0;
  9645.       *(_DWORD *)(v914 + 2652) |= 0x400u;
  9646.       v916 = *(_DWORD *)(v914 + 2652) | 0x200;
  9647.       *(_DWORD *)(v914 + 2652) = v916;
  9648.       *(_DWORD *)(v914 + 2652) = v916 | 0x800;
  9649.       *(_DWORD *)(v914 + 2732) = *(_DWORD *)(v914 + 4 * *(_DWORD *)(v914 + 2724) + 2216);
  9650.       *(_DWORD *)(v914 + 2728) = *(_DWORD *)(v914 + 4 * *(_DWORD *)(v914 + 2724) + 2168);
  9651.       *(float *)(v914 + 2736) = *(float *)(v914 + 4 * *(_DWORD *)(v914 + 2724) + 2264);
  9652.       *(float *)(v914 + 2648) = *(float *)(v914 + 4 * *(_DWORD *)(v914 + 2724) + 2312);
  9653.       *(_DWORD *)(v914 + 2652) ^= (*(_DWORD *)(v914 + 2652) ^ (*(_DWORD *)(v914 + 4 * *(_DWORD *)(v914 + 2724) + 2408) << 12)) & 0x1000;
  9654.       if ( *(_DWORD *)(v914 + 956) )
  9655.         *(_DWORD *)(*(_DWORD *)(v914 + 956) + 92) ^= (*(_DWORD *)(*(_DWORD *)(v914 + 956) + 92) ^ (*(_DWORD *)(v914 + 4 * *(_DWORD *)(v914 + 2724) + 2360) << 16)) & 0x10000;
  9656.       *(_DWORD *)(v914 + 2828) = *(_DWORD *)(*(_DWORD *)(v914 + 956) + 452);
  9657.       *(_DWORD *)(v914 + 2832) = *(_DWORD *)(*(_DWORD *)(v914 + 956) + 448);
  9658.     }
  9659.     *(_DWORD *)(v914 + 2652) |= 0x100u;
  9660. LABEL_2360:
  9661.     LOBYTE(v1544) = 0;
  9662.     FString::~FString(&v1164);
  9663.     return 1;
  9664.   }
  9665.   v624 = *(_DWORD *)(*((_DWORD *)v4 + 926) + 60);
  9666.   if ( !v624 || !*(_DWORD *)(v624 + 956) || !*(_DWORD *)(v624 + 216) )
  9667.     return 0;
  9668.   if ( *((_DWORD *)dword_2077EE00 + 28) )
  9669.   {
  9670.     if ( *(_DWORD *)GIsL2Console && !*(_DWORD *)GIsL2NetLogin )
  9671.     {
  9672.       v631 = *(_DWORD *)GL2Console;
  9673.       v939[1] = 0.0;
  9674.       (*(void (__stdcall **)(_DWORD))(v631 + 1648))(0);
  9675.       return 0;
  9676.     }
  9677.     return 0;
  9678.   }
  9679.   if ( *(_DWORD *)GIsL2Console || *(_DWORD *)GIsL2NetLogin )
  9680.     return 0;
  9681.   v939[1] = *((float *)dword_2077EE00 + 28);
  9682.   v625 = UObject::StaticLoadClass(
  9683.            UL2ConsoleWnd::PrivateStaticClass,
  9684.            0,
  9685.            L"ini:Engine.Engine.L2Console",
  9686.            0,
  9687.            1,
  9688.            LODWORD(v939[1]));
  9689.   v939[1] = 0.0;
  9690.   v939[0] = *(float *)GError;
  9691.   v938 = 0.0;
  9692.   v937 = 0.0;
  9693.   v936 = v939[0];
  9694.   *(float *)&a4 = COERCE_FLOAT(&v936);
  9695.   FName::FName(&v936, 0);
  9696.   v627 = UObject::GetTransientPackage(v626);
  9697.   v628 = (FL2ReplayManager *)UObject::StaticConstructObject(
  9698.                                v625,
  9699.                                v627,
  9700.                                LODWORD(v936),
  9701.                                LODWORD(v937),
  9702.                                LODWORD(v938),
  9703.                                LODWORD(v939[0]),
  9704.                                LODWORD(v939[1]));
  9705.   *((_DWORD *)dword_2077EE00 + 28) = v628;
  9706.   GL2Console = v628;
  9707.   if ( *((_DWORD *)dword_2077EE00 + 28) )
  9708.   {
  9709.     v629 = **((_DWORD **)dword_2077EE00 + 28);
  9710.     LODWORD(v939[1]) = dword_2077EE00;
  9711.     (*(void (__stdcall **)(UGameEngine *))(v629 + 1644))(dword_2077EE00);
  9712.   }
  9713.   *(_DWORD *)GIsL2Console = 1;
  9714.   v630 = *(_DWORD *)GL2Console;
  9715.   v939[1] = 0.0;
  9716.   (*(void (__stdcall **)(_DWORD))(v630 + 1648))(0);
  9717.   return 0;
  9718. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement