Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.14 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement