SHARE
TWEET

Untitled

a guest Dec 8th, 2019 73 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. __int64 sub_7FFD6F160DC0()
  2. {
  3.   __int64 v0; // r12
  4.   __int128 *v1; // rsi
  5.   __int64 *v2; // rax
  6.   _BYTE *v3; // rdi
  7.   __int64 v4; // rbx
  8.   _BYTE *v5; // rcx
  9.   __int64 v6; // rcx
  10.   _BYTE *v7; // rcx
  11.   __int64 v8; // rcx
  12.   _BYTE *v9; // rcx
  13.   int *v10; // rax
  14.   int *v11; // rdi
  15.   const char *v12; // rbx
  16.   int v13; // eax
  17.   int v14; // esi
  18.   char *v15; // rcx
  19.   _BYTE *v16; // rcx
  20.   _BYTE *v17; // rdi
  21.   signed __int64 v18; // rcx
  22.   __int64 v19; // rcx
  23.   _BYTE *v20; // rcx
  24.   __int128 *v21; // rbx
  25.   void *v22; // rcx
  26.   _BYTE *v23; // rcx
  27.   __int64 v24; // rcx
  28.   _BYTE *v25; // rcx
  29.   _OWORD *v26; // rbx
  30.   void *v27; // rcx
  31.   _BYTE *v28; // rcx
  32.   __int64 v29; // rcx
  33.   _BYTE *v30; // rcx
  34.   _OWORD *v31; // rbx
  35.   void *v32; // rcx
  36.   _BYTE *v33; // rcx
  37.   __int64 v34; // rcx
  38.   _BYTE *v35; // rcx
  39.   _OWORD *v36; // rbx
  40.   void *v37; // rcx
  41.   _BYTE *v38; // rcx
  42.   _QWORD *v39; // rax
  43.   __int64 v40; // rcx
  44.   __int64 v41; // rax
  45.   __int64 v42; // rax
  46.   __int64 v43; // rcx
  47.   _WORD *v44; // rdi
  48.   signed __int64 v45; // rbx
  49.   unsigned int v46; // ebx
  50.   int v47; // eax
  51.   _BYTE *v48; // rcx
  52.   _BYTE *v49; // rax
  53.   __int64 v50; // rcx
  54.   _BYTE *v51; // rax
  55.   _BYTE *v52; // r9
  56.   signed __int64 v53; // r15
  57.   signed __int64 v54; // r14
  58.   __int64 v55; // rbx
  59.   __int64 v56; // rsi
  60.   __int64 v57; // r13
  61.   bool v58; // zf
  62.   signed __int64 v59; // rax
  63.   __int64 v60; // rax
  64.   char *v61; // rdi
  65.   __int64 v62; // rax
  66.   const void *v63; // rcx
  67.   size_t v64; // r8
  68.   int v65; // eax
  69.   const void *v66; // rcx
  70.   size_t v67; // r8
  71.   int v68; // eax
  72.   __int64 v69; // r8
  73.   void *v70; // rdx
  74.   __int64 v71; // rcx
  75.   char *v72; // rax
  76.   char *v73; // rdi
  77.   __int64 v74; // rdi
  78.   int v75; // eax
  79.   bool v76; // sf
  80.   char *v77; // rax
  81.   __int64 v78; // rdi
  82.   const char *v79; // rax
  83.   __int64 v80; // rcx
  84.   signed __int64 v81; // rdi
  85.   unsigned int v82; // edi
  86.   __int64 v83; // rcx
  87.   __int64 v84; // rcx
  88.   __int64 v85; // rcx
  89.   __int64 v86; // rcx
  90.   __int64 v87; // rcx
  91.   __int64 v88; // rax
  92.   __int64 v89; // rdi
  93.   __int64 v90; // rax
  94.   __int64 j; // rax
  95.   __int64 i; // rax
  96.   __int64 result; // rax
  97.   __int64 v94; // rdx
  98.   __int64 v95; // r8
  99.   __int64 v96; // r8
  100.   __int64 v97; // rax
  101.   __int64 v98; // rax
  102.   __int64 v99; // rax
  103.   __int64 v100; // rax
  104.   __int64 v101; // rax
  105.   __int64 v102; // rax
  106.   __int64 v103; // rax
  107.   __int64 v104; // rax
  108.   __int64 v105; // rax
  109.   signed int v106; // [rsp+40h] [rbp-6B8h]
  110.   __int64 v107; // [rsp+48h] [rbp-6B0h]
  111.   char *v108; // [rsp+50h] [rbp-6A8h]
  112.   __int64 v109; // [rsp+58h] [rbp-6A0h]
  113.   _BYTE *v110; // [rsp+60h] [rbp-698h]
  114.   _BYTE *v111; // [rsp+68h] [rbp-690h]
  115.   int v112; // [rsp+70h] [rbp-688h]
  116.   int v113; // [rsp+74h] [rbp-684h]
  117.   int v114; // [rsp+78h] [rbp-680h]
  118.   int v115; // [rsp+7Ch] [rbp-67Ch]
  119.   int v116; // [rsp+80h] [rbp-678h]
  120.   int v117; // [rsp+84h] [rbp-674h]
  121.   __int64 v118; // [rsp+88h] [rbp-670h]
  122.   __int64 v119; // [rsp+90h] [rbp-668h]
  123.   char *Str; // [rsp+98h] [rbp-660h]
  124.   __int64 v121; // [rsp+A8h] [rbp-650h]
  125.   unsigned __int64 v122; // [rsp+B0h] [rbp-648h]
  126.   __int128 v123; // [rsp+B8h] [rbp-640h]
  127.   __int128 v124; // [rsp+C8h] [rbp-630h]
  128.   __int128 v125; // [rsp+D8h] [rbp-620h]
  129.   __int128 v126; // [rsp+E8h] [rbp-610h]
  130.   __int128 v127; // [rsp+F8h] [rbp-600h]
  131.   __int128 v128; // [rsp+108h] [rbp-5F0h]
  132.   __int128 v129; // [rsp+118h] [rbp-5E0h]
  133.   __int128 v130; // [rsp+128h] [rbp-5D0h]
  134.   __int64 v131; // [rsp+138h] [rbp-5C0h]
  135.   __int64 *v132; // [rsp+140h] [rbp-5B8h]
  136.   __int64 v133; // [rsp+148h] [rbp-5B0h]
  137.   _BYTE *v134; // [rsp+150h] [rbp-5A8h]
  138.   __int64 v135; // [rsp+160h] [rbp-598h]
  139.   unsigned __int64 v136; // [rsp+168h] [rbp-590h]
  140.   _BYTE *v137; // [rsp+170h] [rbp-588h]
  141.   __int64 v138; // [rsp+180h] [rbp-578h]
  142.   unsigned __int64 v139; // [rsp+188h] [rbp-570h]
  143.   _BYTE *v140; // [rsp+190h] [rbp-568h]
  144.   __int64 v141; // [rsp+1A0h] [rbp-558h]
  145.   unsigned __int64 v142; // [rsp+1A8h] [rbp-550h]
  146.   _BYTE *v143; // [rsp+1B0h] [rbp-548h]
  147.   __int64 v144; // [rsp+1C0h] [rbp-538h]
  148.   unsigned __int64 v145; // [rsp+1C8h] [rbp-530h]
  149.   _BYTE *v146; // [rsp+1D0h] [rbp-528h]
  150.   __int64 v147; // [rsp+1E0h] [rbp-518h]
  151.   unsigned __int64 v148; // [rsp+1E8h] [rbp-510h]
  152.   __int128 v149; // [rsp+1F0h] [rbp-508h]
  153.   __int128 v150; // [rsp+200h] [rbp-4F8h]
  154.   void *Memory; // [rsp+210h] [rbp-4E8h]
  155.   __int64 v152; // [rsp+220h] [rbp-4D8h]
  156.   unsigned __int64 v153; // [rsp+228h] [rbp-4D0h]
  157.   void *v154; // [rsp+230h] [rbp-4C8h]
  158.   __int64 v155; // [rsp+240h] [rbp-4B8h]
  159.   unsigned __int64 v156; // [rsp+248h] [rbp-4B0h]
  160.   _BYTE *v157; // [rsp+250h] [rbp-4A8h]
  161.   __int64 v158; // [rsp+260h] [rbp-498h]
  162.   unsigned __int64 v159; // [rsp+268h] [rbp-490h]
  163.   _BYTE *Dst; // [rsp+270h] [rbp-488h]
  164.   __int64 v161; // [rsp+280h] [rbp-478h]
  165.   unsigned __int64 v162; // [rsp+288h] [rbp-470h]
  166.   _BYTE *v163; // [rsp+290h] [rbp-468h]
  167.   __int64 v164; // [rsp+2A0h] [rbp-458h]
  168.   unsigned __int64 v165; // [rsp+2A8h] [rbp-450h]
  169.   _BYTE *v166; // [rsp+2B0h] [rbp-448h]
  170.   __int64 v167; // [rsp+2C0h] [rbp-438h]
  171.   unsigned __int64 v168; // [rsp+2C8h] [rbp-430h]
  172.   _BYTE *v169; // [rsp+2D0h] [rbp-428h]
  173.   __int64 v170; // [rsp+2E0h] [rbp-418h]
  174.   unsigned __int64 v171; // [rsp+2E8h] [rbp-410h]
  175.   __int64 v172; // [rsp+2F0h] [rbp-408h]
  176.   void *v173; // [rsp+300h] [rbp-3F8h]
  177.   unsigned __int64 v174; // [rsp+318h] [rbp-3E0h]
  178.   char v175; // [rsp+320h] [rbp-3D8h]
  179.   char v176; // [rsp+340h] [rbp-3B8h]
  180.   char v177; // [rsp+380h] [rbp-378h]
  181.   char v178; // [rsp+3E0h] [rbp-318h]
  182.   char v179; // [rsp+418h] [rbp-2E0h]
  183.   char v180; // [rsp+450h] [rbp-2A8h]
  184.   char v181; // [rsp+488h] [rbp-270h]
  185.   char v182; // [rsp+4C0h] [rbp-238h]
  186.   char v183; // [rsp+4F8h] [rbp-200h]
  187.   char v184; // [rsp+530h] [rbp-1C8h]
  188.   char v185; // [rsp+550h] [rbp-1A8h]
  189.   char v186; // [rsp+570h] [rbp-188h]
  190.   char v187; // [rsp+590h] [rbp-168h]
  191.   char v188; // [rsp+5B0h] [rbp-148h]
  192.   char v189; // [rsp+5D0h] [rbp-128h]
  193.   char v190; // [rsp+5F0h] [rbp-108h]
  194.   char v191; // [rsp+610h] [rbp-E8h]
  195.   char *EndPtr; // [rsp+630h] [rbp-C8h]
  196.   const char *v193; // [rsp+638h] [rbp-C0h]
  197.   __int128 *v194; // [rsp+640h] [rbp-B8h]
  198.   _BYTE *v195; // [rsp+648h] [rbp-B0h]
  199.   __int128 v196; // [rsp+650h] [rbp-A8h]
  200.   __int128 v197; // [rsp+660h] [rbp-98h]
  201.   __m128i v198; // [rsp+678h] [rbp-80h]
  202.   __m128i v199; // [rsp+698h] [rbp-60h]
  203.   char v200; // [rsp+6B0h] [rbp-48h]
  204.  
  205.   v172 = -2i64;
  206.   v0 = 0i64;
  207.   v155 = 0i64;
  208.   v156 = 15i64;
  209.   LOBYTE(v154) = 0;
  210.   sub_7FFD6F158F60(&v154, "Voting", 6ui64);
  211.   v1 = sub_7FFD6F15DFF0();
  212.   v2 = (__int64 *)GetLogSinks();
  213.   v108 = (char *)v2[1];
  214.   v107 = *v2;
  215.   v3 = (_BYTE *)sub_7FFD6F17A668(0xB8ui64);
  216.   v110 = v3;
  217.   *((_DWORD *)v3 + 2) = 1;
  218.   *((_DWORD *)v3 + 3) = 1;
  219.   *(_QWORD *)v3 = &std::_Ref_count_obj<spdlog::logger>::`vftable';
  220.   sub_7FFD6F172C90(v3 + 16, &v154, &v107, &v108);
  221.   *(_QWORD *)v1 = v3 + 16;
  222.   v133 = *((_QWORD *)v1 + 1);
  223.   v4 = v133;
  224.   *((_QWORD *)v1 + 1) = v3;
  225.   if ( v4 )
  226.   {
  227.     if ( _InterlockedExchangeAdd((volatile signed __int32 *)(v4 + 8), 0xFFFFFFFF) == 1 )
  228.     {
  229.       (**(void (__fastcall ***)(__int64))v133)(v133);
  230.       if ( _InterlockedExchangeAdd((volatile signed __int32 *)(v4 + 12), 0xFFFFFFFF) == 1 )
  231.         (*(void (**)(void))(*(_QWORD *)v133 + 8i64))();
  232.     }
  233.   }
  234.   v152 = 0i64;
  235.   v153 = 15i64;
  236.   LOBYTE(Memory) = 0;
  237.   sub_7FFD6F158F60(&Memory, "%D %R [%n][%l] %v", 0x11ui64);
  238.   (*(void (__fastcall **)(_QWORD, void **, _QWORD))(**(_QWORD **)v1 + 40i64))(*(_QWORD *)v1, &Memory, 0i64);
  239.   if ( v153 >= 0x10 )
  240.   {
  241.     v5 = Memory;
  242.     if ( v153 + 1 >= 0x1000 )
  243.     {
  244.       v5 = (_BYTE *)*((_QWORD *)Memory - 1);
  245.       if ( (unsigned __int64)((_BYTE *)Memory - v5 - 8) > 0x1F )
  246.         invalid_parameter_noinfo_noreturn();
  247.     }
  248.     j_j_free(v5);
  249.   }
  250.   v6 = *(_QWORD *)v1;
  251.   _InterlockedExchange((volatile signed __int32 *)(*(_QWORD *)v1 + 84i64), 2);
  252.   if ( v156 >= 0x10 )
  253.   {
  254.     v7 = v154;
  255.     if ( v156 + 1 >= 0x1000 )
  256.     {
  257.       v7 = (_BYTE *)*((_QWORD *)v154 - 1);
  258.       if ( (unsigned __int64)((_BYTE *)v154 - v7 - 8) > 0x1F )
  259.         invalid_parameter_noinfo_noreturn();
  260.     }
  261.     j_j_free(v7);
  262.   }
  263.   sub_7FFD6F162E80(v6);
  264.   sub_7FFD6F160B20();
  265.   LODWORD(v109) = 3306;
  266.   v161 = 0i64;
  267.   v162 = 15i64;
  268.   LOBYTE(Dst) = 0;
  269.   sub_7FFD6F158F60(&Dst, "MysqlPort", 9ui64);
  270.   v158 = 0i64;
  271.   v159 = 15i64;
  272.   LOBYTE(v157) = 0;
  273.   sub_7FFD6F158F60(&v157, byte_7FFD6F4A926C, 0i64);
  274.   sub_7FFD6F16B910(v8, &Str, &Dst, &v157);
  275.   if ( v159 >= 0x10 )
  276.   {
  277.     v9 = v157;
  278.     if ( v159 + 1 >= 0x1000 )
  279.     {
  280.       v9 = (_BYTE *)*((_QWORD *)v157 - 1);
  281.       if ( (unsigned __int64)(v157 - v9 - 8) > 0x1F )
  282.         goto LABEL_31;
  283.     }
  284.     j_j_free(v9);
  285.   }
  286.   v10 = errno();
  287.   v11 = v10;
  288.   v12 = (const char *)&Str;
  289.   if ( v122 >= 0x10 )
  290.     v12 = Str;
  291.   *v10 = 0;
  292.   v13 = strtol(v12, &EndPtr, 10);
  293.   v14 = v13;
  294.   if ( v12 == EndPtr )
  295.     std::_Xinvalid_argument("invalid stoi argument");
  296.   if ( *v11 == 34 )
  297.   {
  298.     std::_Xout_of_range("stoi argument out of range");
  299.     v0 = 0i64;
  300.     v14 = v109;
  301.     goto LABEL_35;
  302.   }
  303.   LODWORD(v109) = v13;
  304.   if ( v122 >= 0x10 )
  305.   {
  306.     v15 = Str;
  307.     if ( v122 + 1 < 0x1000 || (v15 = (char *)*((_QWORD *)Str - 1), (unsigned __int64)(Str - v15 - 8) <= 0x1F) )
  308.     {
  309.       j_j_free(v15);
  310.       goto LABEL_28;
  311.     }
  312. LABEL_31:
  313.     invalid_parameter_noinfo_noreturn();
  314.   }
  315. LABEL_28:
  316.   v121 = 0i64;
  317.   v122 = 15i64;
  318.   LOBYTE(Str) = 0;
  319.   if ( v162 >= 0x10 )
  320.   {
  321.     v16 = Dst;
  322.     if ( v162 + 1 >= 0x1000 )
  323.     {
  324.       v16 = (_BYTE *)*((_QWORD *)Dst - 1);
  325.       if ( (unsigned __int64)(Dst - v16 - 8) > 0x1F )
  326.         goto LABEL_31;
  327.     }
  328.     j_j_free(v16);
  329.   }
  330. LABEL_35:
  331.   v194 = 0i64;
  332.   v195 = 0i64;
  333.   v17 = (_BYTE *)sub_7FFD6F17A668(0xE8ui64);
  334.   v110 = v17;
  335.   *((_DWORD *)v17 + 2) = 1;
  336.   *((_DWORD *)v17 + 3) = 1;
  337.   *(_QWORD *)v17 = &std::_Ref_count_obj<sqlpp::mysql::connection_config>::`vftable';
  338.   v111 = v17 + 16;
  339.   memset(v17 + 16, 0, 0xD8ui64);
  340.   *((_QWORD *)v17 + 4) = 0i64;
  341.   *((_QWORD *)v17 + 5) = 15i64;
  342.   v17[16] = 0;
  343.   sub_7FFD6F158F60(v17 + 16, qword_7FFD6F4AE6D0, 9ui64);
  344.   *((_QWORD *)v17 + 8) = 0i64;
  345.   *((_QWORD *)v17 + 9) = 15i64;
  346.   v17[48] = 0;
  347.   *((_QWORD *)v17 + 12) = 0i64;
  348.   *((_QWORD *)v17 + 13) = 15i64;
  349.   v17[80] = 0;
  350.   *((_QWORD *)v17 + 16) = 0i64;
  351.   *((_QWORD *)v17 + 17) = 15i64;
  352.   v17[112] = 0;
  353.   *((_DWORD *)v17 + 36) = 0;
  354.   *((_QWORD *)v17 + 21) = 0i64;
  355.   *((_QWORD *)v17 + 22) = 15i64;
  356.   v17[152] = 0;
  357.   *((_DWORD *)v17 + 46) = 0;
  358.   v18 = (signed __int64)(v17 + 192);
  359.   *(_QWORD *)(v18 + 16) = 0i64;
  360.   *(_QWORD *)(v18 + 24) = 15i64;
  361.   *(_BYTE *)v18 = 0;
  362.   sub_7FFD6F158F60(v17 + 192, "utf8", 4ui64);
  363.   *((_WORD *)v17 + 112) = 1;
  364.   v194 = (__int128 *)(v17 + 16);
  365.   v195 = v17;
  366.   v167 = 0i64;
  367.   v168 = 15i64;
  368.   LOBYTE(v166) = 0;
  369.   sub_7FFD6F158F60(&v166, "MysqlHost", 9ui64);
  370.   v164 = 0i64;
  371.   v165 = 15i64;
  372.   LOBYTE(v163) = 0;
  373.   sub_7FFD6F158F60(&v163, byte_7FFD6F4A926C, 0i64);
  374.   sub_7FFD6F16B910(v19, &v123, &v166, &v163);
  375.   if ( v165 >= 0x10 )
  376.   {
  377.     v20 = v163;
  378.     if ( v165 + 1 >= 0x1000 )
  379.     {
  380.       v20 = (_BYTE *)*((_QWORD *)v163 - 1);
  381.       if ( (unsigned __int64)(v163 - v20 - 8) > 0x1F )
  382.         goto LABEL_48;
  383.     }
  384.     j_j_free(v20);
  385.   }
  386.   v21 = v194;
  387.   if ( v194 != &v123 )
  388.   {
  389.     sub_7FFD6F158CF0(v194);
  390.     *v21 = v123;
  391.     v21[1] = v124;
  392.     goto LABEL_45;
  393.   }
  394.   if ( *((_QWORD *)&v124 + 1) >= 0x10ui64 )
  395.   {
  396.     v22 = (void *)v123;
  397.     if ( (unsigned __int64)(*((_QWORD *)&v124 + 1) + 1i64) < 0x1000
  398.       || (v22 = *(void **)(v123 - 8), (unsigned __int64)(v123 - (_QWORD)v22 - 8) <= 0x1F) )
  399.     {
  400.       j_j_free(v22);
  401.       goto LABEL_45;
  402.     }
  403. LABEL_48:
  404.     invalid_parameter_noinfo_noreturn();
  405.   }
  406. LABEL_45:
  407.   *(_QWORD *)&v124 = 0i64;
  408.   *((_QWORD *)&v124 + 1) = 15i64;
  409.   LOBYTE(v123) = 0;
  410.   if ( v168 >= 0x10 )
  411.   {
  412.     v23 = v166;
  413.     if ( v168 + 1 >= 0x1000 )
  414.     {
  415.       v23 = (_BYTE *)*((_QWORD *)v166 - 1);
  416.       if ( (unsigned __int64)(v166 - v23 - 8) > 0x1F )
  417.         goto LABEL_48;
  418.     }
  419.     j_j_free(v23);
  420.   }
  421.   v135 = 0i64;
  422.   v136 = 15i64;
  423.   LOBYTE(v134) = 0;
  424.   sub_7FFD6F158F60(&v134, "MysqlUser", 9ui64);
  425.   v170 = 0i64;
  426.   v171 = 15i64;
  427.   LOBYTE(v169) = 0;
  428.   sub_7FFD6F158F60(&v169, byte_7FFD6F4A926C, 0i64);
  429.   sub_7FFD6F16B910(v24, &v125, &v134, &v169);
  430.   if ( v171 >= 0x10 )
  431.   {
  432.     v25 = v169;
  433.     if ( v171 + 1 >= 0x1000 )
  434.     {
  435.       v25 = (_BYTE *)*((_QWORD *)v169 - 1);
  436.       if ( (unsigned __int64)(v169 - v25 - 8) > 0x1F )
  437.         goto LABEL_63;
  438.     }
  439.     j_j_free(v25);
  440.   }
  441.   v26 = v194 + 2;
  442.   if ( v194 + 2 != &v125 )
  443.   {
  444.     sub_7FFD6F158CF0(v194 + 2);
  445.     *v26 = v125;
  446.     v26[1] = v126;
  447.     goto LABEL_60;
  448.   }
  449.   if ( *((_QWORD *)&v126 + 1) >= 0x10ui64 )
  450.   {
  451.     v27 = (void *)v125;
  452.     if ( (unsigned __int64)(*((_QWORD *)&v126 + 1) + 1i64) < 0x1000
  453.       || (v27 = *(void **)(v125 - 8), (unsigned __int64)(v125 - (_QWORD)v27 - 8) <= 0x1F) )
  454.     {
  455.       j_j_free(v27);
  456.       goto LABEL_60;
  457.     }
  458. LABEL_63:
  459.     invalid_parameter_noinfo_noreturn();
  460.   }
  461. LABEL_60:
  462.   *(_QWORD *)&v126 = 0i64;
  463.   *((_QWORD *)&v126 + 1) = 15i64;
  464.   LOBYTE(v125) = 0;
  465.   if ( v136 >= 0x10 )
  466.   {
  467.     v28 = v134;
  468.     if ( v136 + 1 >= 0x1000 )
  469.     {
  470.       v28 = (_BYTE *)*((_QWORD *)v134 - 1);
  471.       if ( (unsigned __int64)(v134 - v28 - 8) > 0x1F )
  472.         goto LABEL_63;
  473.     }
  474.     j_j_free(v28);
  475.   }
  476.   v141 = 0i64;
  477.   v142 = 15i64;
  478.   LOBYTE(v140) = 0;
  479.   sub_7FFD6F158F60(&v140, "MysqlPass", 9ui64);
  480.   v138 = 0i64;
  481.   v139 = 15i64;
  482.   LOBYTE(v137) = 0;
  483.   sub_7FFD6F158F60(&v137, byte_7FFD6F4A926C, 0i64);
  484.   sub_7FFD6F16B910(v29, &v127, &v140, &v137);
  485.   if ( v139 >= 0x10 )
  486.   {
  487.     v30 = v137;
  488.     if ( v139 + 1 >= 0x1000 )
  489.     {
  490.       v30 = (_BYTE *)*((_QWORD *)v137 - 1);
  491.       if ( (unsigned __int64)(v137 - v30 - 8) > 0x1F )
  492.         goto LABEL_78;
  493.     }
  494.     j_j_free(v30);
  495.   }
  496.   v31 = v194 + 4;
  497.   if ( v194 + 4 != &v127 )
  498.   {
  499.     sub_7FFD6F158CF0(v194 + 4);
  500.     *v31 = v127;
  501.     v31[1] = v128;
  502.     goto LABEL_75;
  503.   }
  504.   if ( *((_QWORD *)&v128 + 1) >= 0x10ui64 )
  505.   {
  506.     v32 = (void *)v127;
  507.     if ( (unsigned __int64)(*((_QWORD *)&v128 + 1) + 1i64) < 0x1000
  508.       || (v32 = *(void **)(v127 - 8), (unsigned __int64)(v127 - (_QWORD)v32 - 8) <= 0x1F) )
  509.     {
  510.       j_j_free(v32);
  511.       goto LABEL_75;
  512.     }
  513. LABEL_78:
  514.     invalid_parameter_noinfo_noreturn();
  515.   }
  516. LABEL_75:
  517.   *(_QWORD *)&v128 = 0i64;
  518.   *((_QWORD *)&v128 + 1) = 15i64;
  519.   LOBYTE(v127) = 0;
  520.   if ( v142 >= 0x10 )
  521.   {
  522.     v33 = v140;
  523.     if ( v142 + 1 >= 0x1000 )
  524.     {
  525.       v33 = (_BYTE *)*((_QWORD *)v140 - 1);
  526.       if ( (unsigned __int64)(v140 - v33 - 8) > 0x1F )
  527.         goto LABEL_78;
  528.     }
  529.     j_j_free(v33);
  530.   }
  531.   v147 = 0i64;
  532.   v148 = 15i64;
  533.   LOBYTE(v146) = 0;
  534.   sub_7FFD6F158F60(&v146, "MysqlDB", 7ui64);
  535.   v144 = 0i64;
  536.   v145 = 15i64;
  537.   LOBYTE(v143) = 0;
  538.   sub_7FFD6F158F60(&v143, byte_7FFD6F4A926C, 0i64);
  539.   sub_7FFD6F16B910(v34, &v129, &v146, &v143);
  540.   v106 = 127;
  541.   if ( v145 >= 0x10 )
  542.   {
  543.     v35 = v143;
  544.     if ( v145 + 1 >= 0x1000 )
  545.     {
  546.       v35 = (_BYTE *)*((_QWORD *)v143 - 1);
  547.       if ( (unsigned __int64)(v143 - v35 - 8) > 0x1F )
  548.         goto LABEL_93;
  549.     }
  550.     j_j_free(v35);
  551.   }
  552.   v36 = v194 + 6;
  553.   if ( v194 + 6 != &v129 )
  554.   {
  555.     sub_7FFD6F158CF0(v194 + 6);
  556.     *v36 = v129;
  557.     v36[1] = v130;
  558.     goto LABEL_90;
  559.   }
  560.   if ( *((_QWORD *)&v130 + 1) >= 0x10ui64 )
  561.   {
  562.     v37 = (void *)v129;
  563.     if ( (unsigned __int64)(*((_QWORD *)&v130 + 1) + 1i64) < 0x1000
  564.       || (v37 = *(void **)(v129 - 8), (unsigned __int64)(v129 - (_QWORD)v37 - 8) <= 0x1F) )
  565.     {
  566.       j_j_free(v37);
  567.       goto LABEL_90;
  568.     }
  569. LABEL_93:
  570.     invalid_parameter_noinfo_noreturn();
  571.   }
  572. LABEL_90:
  573.   *(_QWORD *)&v130 = 0i64;
  574.   *((_QWORD *)&v130 + 1) = 15i64;
  575.   LOBYTE(v129) = 0;
  576.   if ( v148 >= 0x10 )
  577.   {
  578.     v38 = v146;
  579.     if ( v148 + 1 >= 0x1000 )
  580.     {
  581.       v38 = (_BYTE *)*((_QWORD *)v146 - 1);
  582.       if ( (unsigned __int64)(v146 - v38 - 8) > 0x1F )
  583.         goto LABEL_93;
  584.     }
  585.     j_j_free(v38);
  586.   }
  587.   *((_DWORD *)v194 + 32) = v14;
  588.   *((_BYTE *)v194 + 209) = 0;
  589.   *((_BYTE *)v194 + 208) = 1;
  590.   v39 = (_QWORD *)sub_7FFD6F17A668(0x18ui64);
  591.   v110 = v39;
  592.   *v39 = 0i64;
  593.   v39[1] = 0i64;
  594.   v39[2] = 0i64;
  595.   qword_7FFD6F5578C8 = sub_7FFD6F15E4F0(v39, &v194);
  596.   *(_QWORD *)&v197 = 0i64;
  597.   *((_QWORD *)&v197 + 1) = 15i64;
  598.   LOBYTE(v196) = 0;
  599.   v41 = sub_7FFD6F16B0E0(v40, "RewardCommand");
  600.   sub_7FFD6F16B2F0(v41, &v200);
  601.   v42 = ArkApi::Tools::Utf8Decode(&v173, &v200);
  602.   v44 = (_WORD *)v42;
  603.   if ( *(_QWORD *)(v42 + 24) >= 8ui64 )
  604.     v44 = *(_WORD **)v42;
  605.   if ( ::Dst != v44 )
  606.   {
  607.     if ( v44 && *v44 )
  608.     {
  609.       v45 = -1i64;
  610.       do
  611.         ++v45;
  612.       while ( v44[v45] );
  613.       v46 = v45 + 1;
  614.     }
  615.     else
  616.     {
  617.       v46 = 0;
  618.     }
  619.     v47 = 0;
  620.     LODWORD(qword_7FFD6F5578F0) = 0;
  621.     v43 = HIDWORD(qword_7FFD6F5578F0);
  622.     if ( HIDWORD(qword_7FFD6F5578F0) != v46 )
  623.     {
  624.       sub_7FFD6F158EC0(&::Dst, v46);
  625.       v43 = HIDWORD(qword_7FFD6F5578F0);
  626.       v47 = qword_7FFD6F5578F0;
  627.     }
  628.     LODWORD(qword_7FFD6F5578F0) = v46 + v47;
  629.     if ( (signed int)(v46 + v47) > (signed int)v43 )
  630.       sub_7FFD6F158F00((__int64)&::Dst);
  631.     if ( v46 )
  632.       memcpy(::Dst, v44, 2i64 * (signed int)v46);
  633.   }
  634.   if ( v174 >= 8 )
  635.   {
  636.     v48 = v173;
  637.     if ( 2 * v174 + 2 >= 0x1000 )
  638.     {
  639.       v48 = (_BYTE *)*((_QWORD *)v173 - 1);
  640.       if ( (unsigned __int64)((_BYTE *)v173 - v48 - 8) > 0x1F )
  641.         invalid_parameter_noinfo_noreturn();
  642.     }
  643.     j_j_free(v48);
  644.   }
  645.   v49 = (_BYTE *)sub_7FFD6F16B0E0(v43, "ShopPoints");
  646.   if ( *v49 != 4 && *v49 != 5 && *v49 != 6 && *v49 != 7 )
  647.   {
  648.     v94 = sub_7FFD6F16D4A0(v49);
  649.     v95 = sub_7FFD6F158D50(&v184, v94);
  650.     v96 = sub_7FFD6F16A610(&v191, "type must be number, but is ", v95);
  651.     sub_7FFD6F160390(&v178, 302i64, v96);
  652.     CxxThrowException(&v178, &_TI3_AVtype_error_detail_nlohmann__);
  653.   }
  654.   v51 = (_BYTE *)sub_7FFD6F16B0E0(v50, "Items");
  655.   v52 = v51;
  656.   v110 = v51;
  657.   _mm_storeu_si128(&v198, (__m128i)0i64);
  658.   v53 = 0x8000000000000000i64;
  659.   v54 = 0x8000000000000000i64;
  660.   if ( *v51 == 1 )
  661.   {
  662.     v55 = 0i64;
  663.   }
  664.   else
  665.   {
  666.     v55 = v198.m128i_i64[0];
  667.     if ( *v51 == 2 )
  668.     {
  669.       v56 = 0i64;
  670.       goto LABEL_124;
  671.     }
  672.   }
  673.   v56 = v198.m128i_i64[1];
  674. LABEL_124:
  675.   if ( *v51 )
  676.   {
  677.     if ( *v51 == 1 )
  678.     {
  679.       v55 = ***((_QWORD ***)v51 + 1);
  680.     }
  681.     else if ( *v51 == 2 )
  682.     {
  683.       v56 = **((_QWORD **)v51 + 1);
  684.     }
  685.     else
  686.     {
  687.       v54 = 0i64;
  688.     }
  689.   }
  690.   else
  691.   {
  692.     v54 = 1i64;
  693.   }
  694.   _mm_storeu_si128(&v199, (__m128i)0i64);
  695.   if ( *v51 == 1 )
  696.     goto LABEL_134;
  697.   if ( *v51 != 2 )
  698.   {
  699.     v0 = v199.m128i_i64[0];
  700. LABEL_134:
  701.     v57 = v199.m128i_i64[1];
  702.     goto LABEL_135;
  703.   }
  704.   v57 = 0i64;
  705.   v0 = v199.m128i_i64[0];
  706. LABEL_135:
  707.   if ( *v51 == 1 )
  708.   {
  709.     v0 = **((_QWORD **)v51 + 1);
  710.   }
  711.   else if ( *v51 == 2 )
  712.   {
  713.     v57 = *(_QWORD *)(*((_QWORD *)v51 + 1) + 8i64);
  714.   }
  715.   else
  716.   {
  717.     v53 = 1i64;
  718.   }
  719.   while ( 1 )
  720.   {
  721.     LODWORD(v109) = v106;
  722.     if ( *v52 == 1 )
  723.       v58 = v55 == v0;
  724.     else
  725.       v58 = *v52 == 2 ? v56 == v57 : v54 == v53;
  726.     if ( v58 )
  727.       break;
  728.     if ( !*v52 )
  729.     {
  730.       sub_7FFD6F158D50(&v176, "cannot get value");
  731.       sub_7FFD6F160180(&v183, 214i64, &v176);
  732.       CxxThrowException(&v183, &_TI3_AVinvalid_iterator_detail_nlohmann__);
  733.     }
  734.     if ( *v52 == 1 )
  735.     {
  736.       v59 = v55 + 64;
  737.     }
  738.     else if ( *v52 == 2 )
  739.     {
  740.       v59 = v56;
  741.     }
  742.     else
  743.     {
  744.       if ( v54 )
  745.       {
  746.         sub_7FFD6F158D50(&v175, "cannot get value");
  747.         sub_7FFD6F160180(&v179, 214i64, &v175);
  748.         CxxThrowException(&v179, &_TI3_AVinvalid_iterator_detail_nlohmann__);
  749.       }
  750.       v59 = (signed __int64)v52;
  751.     }
  752.     v107 = v59;
  753.     if ( *(_BYTE *)v59 != 1 )
  754.     {
  755.       v103 = sub_7FFD6F16D4A0(v59);
  756.       v104 = sub_7FFD6F158D50(&v189, v103);
  757.       v105 = sub_7FFD6F16A610(&v190, "cannot use operator[] with ", v104);
  758.       sub_7FFD6F160390(&v182, 305i64, v105);
  759.       CxxThrowException(&v182, &_TI3_AVtype_error_detail_nlohmann__);
  760.     }
  761.     v60 = **(_QWORD **)(v59 + 8);
  762.     v108 = (char *)v60;
  763.     v61 = (char *)v60;
  764.     v62 = *(_QWORD *)(v60 + 8);
  765.     for ( EndPtr = (char *)v62; !*(_BYTE *)(v62 + 25); EndPtr = (char *)v62 )
  766.     {
  767.       v63 = (const void *)(v62 + 32);
  768.       if ( *(_QWORD *)(v62 + 56) >= 0x10ui64 )
  769.         v63 = *(const void **)(v62 + 32);
  770.       v193 = *(const char **)(v62 + 48);
  771.       v64 = (size_t)v193;
  772.       if ( (unsigned __int64)v193 > 9 )
  773.         v64 = 9i64;
  774.       v65 = memcmp(v63, "Blueprint", v64);
  775.       if ( v65 )
  776.       {
  777.         if ( v65 < 0 )
  778.         {
  779. LABEL_173:
  780.           v62 = *((_QWORD *)EndPtr + 2);
  781.           continue;
  782.         }
  783.       }
  784.       else if ( (unsigned __int64)v193 < 9 )
  785.       {
  786.         goto LABEL_173;
  787.       }
  788.       v61 = EndPtr;
  789.       v62 = *(_QWORD *)EndPtr;
  790.     }
  791.     if ( v61 != v108 )
  792.     {
  793.       v66 = v61 + 32;
  794.       if ( *((_QWORD *)v61 + 7) >= 0x10ui64 )
  795.         v66 = (const void *)*((_QWORD *)v61 + 4);
  796.       v193 = (const char *)*((_QWORD *)v61 + 6);
  797.       v67 = (size_t)v193;
  798.       if ( (unsigned __int64)v193 > 9 )
  799.         v67 = 9i64;
  800.       v68 = memcmp(v66, "Blueprint", v67);
  801.       if ( v68 )
  802.       {
  803.         if ( v68 <= 0 )
  804.           goto LABEL_176;
  805.       }
  806.       else if ( (unsigned __int64)v193 <= 9 )
  807.       {
  808.         goto LABEL_176;
  809.       }
  810.     }
  811.     v61 = v108;
  812. LABEL_176:
  813.     *(_QWORD *)&v150 = 0i64;
  814.     *((_QWORD *)&v150 + 1) = 15i64;
  815.     LOBYTE(v149) = 0;
  816.     if ( v61[64] != 3 )
  817.     {
  818.       v100 = sub_7FFD6F16D4A0(v61 + 64);
  819.       v101 = sub_7FFD6F158D50(&v187, v100);
  820.       v102 = sub_7FFD6F16A610(&v188, "type must be string, but is ", v101);
  821.       sub_7FFD6F160390(&v181, 302i64, v102);
  822.       CxxThrowException(&v181, &_TI3_AVtype_error_detail_nlohmann__);
  823.     }
  824.     v69 = *((_QWORD *)v61 + 9);
  825.     if ( &v149 != (__int128 *)v69 )
  826.     {
  827.       v70 = (void *)*((_QWORD *)v61 + 9);
  828.       if ( *(_QWORD *)(v69 + 24) >= 0x10ui64 )
  829.         v70 = *(void **)v69;
  830.       sub_7FFD6F158F60(&v149, v70, *(_QWORD *)(v69 + 16));
  831.     }
  832.     v106 = v109 & 0xFFFFFEFF | 0x80;
  833.     sub_7FFD6F158CF0(&v196);
  834.     v196 = v149;
  835.     v197 = v150;
  836.     v132 = &v118;
  837.     v193 = "MaxIsBP";
  838.     v71 = v107;
  839.     if ( *(_BYTE *)v107 != 1 )
  840.     {
  841.       v97 = sub_7FFD6F16D4A0(v107);
  842.       v98 = sub_7FFD6F158D50(&v185, v97);
  843.       v99 = sub_7FFD6F16A610(&v186, "cannot use operator[] with ", v98);
  844.       sub_7FFD6F160390(&v180, 305i64, v99);
  845.       CxxThrowException(&v180, &_TI3_AVtype_error_detail_nlohmann__);
  846.     }
  847.     v72 = **(char ***)(v107 + 8);
  848.     v108 = v72;
  849.     EndPtr = v72;
  850.     v73 = (char *)*((_QWORD *)v72 + 1);
  851.     while ( !v73[25] )
  852.     {
  853.       if ( (unsigned __int8)sub_7FFD6F1792E0(v71, v73 + 32, &v193) )
  854.       {
  855.         v73 = (char *)*((_QWORD *)v73 + 2);
  856.         v72 = EndPtr;
  857.       }
  858.       else
  859.       {
  860.         v72 = v73;
  861.         EndPtr = v73;
  862.         v73 = *(char **)v73;
  863.       }
  864.     }
  865.     v74 = (__int64)v108;
  866.     if ( v72 == v108 || (v75 = sub_7FFD6F163F50(v72 + 32), v58 = v75 == 0, v76 = v75 < 0, v77 = EndPtr, !v76 && !v58) )
  867.       v77 = (char *)v74;
  868.     v108 = v77 + 64;
  869.     v78 = v107;
  870.     v107 = sub_7FFD6F16AF80(v107, "MinIsBP");
  871.     EndPtr = (char *)sub_7FFD6F16AF80(v78, "QualityMax");
  872.     v109 = sub_7FFD6F16AF80(v78, "QualityMin");
  873.     v131 = sub_7FFD6F16AF80(v78, "QuantityMax");
  874.     v111 = (_BYTE *)sub_7FFD6F16AF80(v78, "QuantityMin");
  875.     v79 = (const char *)sub_7FFD6F163FC0(&v196);
  876.     v193 = v79;
  877.     v80 = 0i64;
  878.     v118 = 0i64;
  879.     v119 = 0i64;
  880.     if ( v79 && *v79 )
  881.     {
  882.       v81 = -1i64;
  883.       do
  884.         ++v81;
  885.       while ( v79[v81] );
  886.       v82 = v81 + 1;
  887.       LODWORD(v119) = v82;
  888.       if ( (signed int)v82 > 0 )
  889.       {
  890.         sub_7FFD6F158F00((__int64)&v118);
  891.         v80 = v118;
  892.         v79 = v193;
  893.       }
  894.       sub_7FFD6F159430(v80, v82, v79, v82);
  895.     }
  896.     sub_7FFD6F1749F0(v80, v108, &v112);
  897.     sub_7FFD6F1749F0(v83, v107, &v113);
  898.     sub_7FFD6F1749F0(v84, EndPtr, &v114);
  899.     sub_7FFD6F1749F0(v85, v109, &v115);
  900.     sub_7FFD6F1749F0(v86, v131, &v116);
  901.     sub_7FFD6F1749F0(v87, v111, &v117);
  902.     v88 = sub_7FFD6F160A60((unsigned __int64)&v177, (unsigned __int64)&v118, v117, v116, v115, v114, v113);
  903.     v111 = (_BYTE *)v88;
  904.     v89 = (signed int)qword_7FFD6F5578E0;
  905.     LODWORD(qword_7FFD6F5578E0) = qword_7FFD6F5578E0 + 1;
  906.     if ( (signed int)qword_7FFD6F5578E0 > SHIDWORD(qword_7FFD6F5578E0) )
  907.     {
  908.       sub_7FFD6F16D820();
  909.       v88 = (__int64)v111;
  910.     }
  911.     sub_7FFD6F16D190(qword_7FFD6F5578D8 + 40 * v89, v88);
  912.     sub_7FFD6F1558A0(&v177);
  913.     v52 = v110;
  914.     if ( *v110 == 1 )
  915.     {
  916.       if ( !*(_BYTE *)(v55 + 25) )
  917.       {
  918.         v90 = *(_QWORD *)(v55 + 16);
  919.         if ( *(_BYTE *)(v90 + 25) )
  920.         {
  921.           for ( i = *(_QWORD *)(v55 + 8); !*(_BYTE *)(i + 25); i = *(_QWORD *)(i + 8) )
  922.           {
  923.             if ( v55 != *(_QWORD *)(i + 16) )
  924.               break;
  925.             v55 = i;
  926.           }
  927.           v55 = i;
  928.         }
  929.         else
  930.         {
  931.           v55 = *(_QWORD *)(v55 + 16);
  932.           for ( j = *(_QWORD *)v90; !*(_BYTE *)(j + 25); j = *(_QWORD *)j )
  933.             v55 = j;
  934.         }
  935.       }
  936.     }
  937.     else if ( *v110 == 2 )
  938.     {
  939.       v56 += 16i64;
  940.     }
  941.     else
  942.     {
  943.       ++v54;
  944.     }
  945.   }
  946.   sub_7FFD6F158CF0(&v200);
  947.   result = sub_7FFD6F158CF0(&v196);
  948.   if ( v195 )
  949.     result = sub_7FFD6F159870();
  950.   return result;
  951. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top