Advertisement
icefreezer

Untitled

Jul 27th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.43 KB | None | 0 0
  1. void __usercall sub_12B4BAF(int a1@<eax>, int a2, signed int a3, int a4)
  2. {
  3. signed int v4; // esi
  4. char *v5; // eax
  5. signed int v6; // edi
  6. char v7; // cl
  7. char v8; // cl
  8. char v9; // cl
  9. char v10; // cl
  10. char v11; // cl
  11. char v12; // cl
  12. char v13; // cl
  13. char v14; // cl
  14. char v15; // cl
  15. char v16; // cl
  16. char v17; // cl
  17. char *v18; // eax
  18. char v19; // cl
  19. char v20; // cl
  20. char v21; // cl
  21. char v22; // cl
  22. char v23; // cl
  23. char v24; // cl
  24. char v25; // cl
  25. char v26; // cl
  26. char v27; // cl
  27. char v28; // cl
  28. char v29; // cl
  29. char v30; // cl
  30. char v31; // cl
  31. char v32; // cl
  32. char v33; // cl
  33. char v34; // cl
  34. char v35; // cl
  35. char v36; // cl
  36. char v37; // cl
  37. char v38; // cl
  38. char v39; // cl
  39. char v40; // cl
  40. char v41; // cl
  41. char v42; // cl
  42. char v43; // cl
  43. char v44; // cl
  44. char v45; // cl
  45. char v46; // cl
  46. char v47; // cl
  47. char v48; // cl
  48. char v49; // cl
  49. char v50; // cl
  50. char v51; // cl
  51. char v52; // cl
  52. char v53; // cl
  53. char v54; // cl
  54. char *v55; // ecx
  55. const char *v56; // eax
  56. char v57; // [esp+Ch] [ebp-40h]
  57. char v58; // [esp+2Ch] [ebp-20h]
  58.  
  59. v4 = 31;
  60. switch ( a1 )
  61. {
  62. case 0:
  63. v5 = &v57;
  64. v6 = 31;
  65. do
  66. {
  67. v7 = v5["COP_NONE" - &v57];
  68. *v5++ = v7;
  69. if ( !v7 )
  70. goto LABEL_6;
  71. --v6;
  72. }
  73. while ( v6 );
  74. goto LABEL_7;
  75. case 1:
  76. v5 = &v57;
  77. v6 = 31;
  78. while ( 1 )
  79. {
  80. v8 = v5["COP_INIT" - &v57];
  81. *v5++ = v8;
  82. if ( !v8 )
  83. goto LABEL_6;
  84. if ( !--v6 )
  85. goto LABEL_7;
  86. }
  87. case 2:
  88. v5 = &v57;
  89. v6 = 31;
  90. while ( 1 )
  91. {
  92. v9 = v5["COP_CONNECT" - &v57];
  93. *v5++ = v9;
  94. if ( !v9 )
  95. goto LABEL_6;
  96. if ( !--v6 )
  97. goto LABEL_7;
  98. }
  99. case 3:
  100. v5 = &v57;
  101. v6 = 31;
  102. while ( 1 )
  103. {
  104. v10 = v5["COP_AUTHENTICATE" - &v57];
  105. *v5++ = v10;
  106. if ( !v10 )
  107. goto LABEL_6;
  108. if ( !--v6 )
  109. goto LABEL_7;
  110. }
  111. case 4:
  112. v5 = &v57;
  113. v6 = 31;
  114. while ( 1 )
  115. {
  116. v11 = v5["COP_CREATE_ACCOUNT" - &v57];
  117. *v5++ = v11;
  118. if ( !v11 )
  119. goto LABEL_6;
  120. if ( !--v6 )
  121. goto LABEL_7;
  122. }
  123. case 5:
  124. v5 = &v57;
  125. v6 = 31;
  126. while ( 1 )
  127. {
  128. v12 = v5["COP_CREATE_CHARACTER" - &v57];
  129. *v5++ = v12;
  130. if ( !v12 )
  131. goto LABEL_6;
  132. if ( !--v6 )
  133. goto LABEL_7;
  134. }
  135. case 6:
  136. v5 = &v57;
  137. v6 = 31;
  138. while ( 1 )
  139. {
  140. v13 = v5["COP_GET_CHARACTERS" - &v57];
  141. *v5++ = v13;
  142. if ( !v13 )
  143. goto LABEL_6;
  144. if ( !--v6 )
  145. goto LABEL_7;
  146. }
  147. case 7:
  148. v5 = &v57;
  149. v6 = 31;
  150. while ( 1 )
  151. {
  152. v14 = v5["COP_DELETE_CHARACTER" - &v57];
  153. *v5++ = v14;
  154. if ( !v14 )
  155. goto LABEL_6;
  156. if ( !--v6 )
  157. goto LABEL_7;
  158. }
  159. case 8:
  160. v5 = &v57;
  161. v6 = 31;
  162. while ( 1 )
  163. {
  164. v15 = v5["COP_LOGIN_CHARACTER" - &v57];
  165. *v5++ = v15;
  166. if ( !v15 )
  167. goto LABEL_6;
  168. if ( !--v6 )
  169. goto LABEL_7;
  170. }
  171. case 9:
  172. v5 = &v57;
  173. v6 = 31;
  174. while ( 1 )
  175. {
  176. v16 = v5["COP_GET_REALMS" - &v57];
  177. *v5++ = v16;
  178. if ( !v16 )
  179. goto LABEL_6;
  180. if ( !--v6 )
  181. goto LABEL_7;
  182. }
  183. case 10:
  184. v5 = &v57;
  185. v6 = 31;
  186. break;
  187. default:
  188. SStrPrintf(&v57, 32, "%d", a1);
  189. goto LABEL_49;
  190. }
  191. while ( 1 )
  192. {
  193. v17 = v5["COP_WAIT_QUEUE" - &v57];
  194. *v5++ = v17;
  195. if ( !v17 )
  196. break;
  197. if ( !--v6 )
  198. goto LABEL_7;
  199. }
  200. LABEL_6:
  201. if ( v6 )
  202. goto LABEL_49;
  203. LABEL_7:
  204. *v5 = 0;
  205. LABEL_49:
  206. if ( a3 <= 18 )
  207. {
  208. if ( a3 == 18 )
  209. {
  210. v18 = &v58;
  211. while ( 1 )
  212. {
  213. v37 = v18["AUTH_BILLING_ERROR" - &v58];
  214. *v18++ = v37;
  215. if ( !v37 )
  216. break;
  217. if ( !--v4 )
  218. goto LABEL_217;
  219. }
  220. }
  221. else
  222. {
  223. switch ( a3 )
  224. {
  225. case 0:
  226. v18 = &v58;
  227. while ( 1 )
  228. {
  229. v19 = v18["RESPONSE_SUCCESS" - &v58];
  230. *v18++ = v19;
  231. if ( !v19 )
  232. goto LABEL_216;
  233. if ( !--v4 )
  234. goto LABEL_217;
  235. }
  236. case 1:
  237. v18 = &v58;
  238. while ( 1 )
  239. {
  240. v20 = v18["RESPONSE_FAILURE" - &v58];
  241. *v18++ = v20;
  242. if ( !v20 )
  243. goto LABEL_216;
  244. if ( !--v4 )
  245. goto LABEL_217;
  246. }
  247. case 2:
  248. v18 = &v58;
  249. while ( 1 )
  250. {
  251. v21 = v18["RESPONSE_CANCELLED" - &v58];
  252. *v18++ = v21;
  253. if ( !v21 )
  254. goto LABEL_216;
  255. if ( !--v4 )
  256. goto LABEL_217;
  257. }
  258. case 3:
  259. v18 = &v58;
  260. while ( 1 )
  261. {
  262. v22 = v18["RESPONSE_DISCONNECTED" - &v58];
  263. *v18++ = v22;
  264. if ( !v22 )
  265. goto LABEL_216;
  266. if ( !--v4 )
  267. goto LABEL_217;
  268. }
  269. case 4:
  270. v18 = &v58;
  271. while ( 1 )
  272. {
  273. v23 = v18["RESPONSE_FAILED_TO_CONNECT" - &v58];
  274. *v18++ = v23;
  275. if ( !v23 )
  276. goto LABEL_216;
  277. if ( !--v4 )
  278. goto LABEL_217;
  279. }
  280. case 5:
  281. v18 = &v58;
  282. while ( 1 )
  283. {
  284. v24 = v18["RESPONSE_CONNECTED" - &v58];
  285. *v18++ = v24;
  286. if ( !v24 )
  287. goto LABEL_216;
  288. if ( !--v4 )
  289. goto LABEL_217;
  290. }
  291. case 6:
  292. v18 = &v58;
  293. while ( 1 )
  294. {
  295. v25 = v18["RESPONSE_VERSION_MISMATCH" - &v58];
  296. *v18++ = v25;
  297. if ( !v25 )
  298. goto LABEL_216;
  299. if ( !--v4 )
  300. goto LABEL_217;
  301. }
  302. case 7:
  303. v18 = &v58;
  304. while ( 1 )
  305. {
  306. v26 = v18["CSTATUS_CONNECTING" - &v58];
  307. *v18++ = v26;
  308. if ( !v26 )
  309. goto LABEL_216;
  310. if ( !--v4 )
  311. goto LABEL_217;
  312. }
  313. case 8:
  314. v18 = &v58;
  315. while ( 1 )
  316. {
  317. v27 = v18["CSTATUS_NEGOTIATING_SECURITY" - &v58];
  318. *v18++ = v27;
  319. if ( !v27 )
  320. goto LABEL_216;
  321. if ( !--v4 )
  322. goto LABEL_217;
  323. }
  324. case 9:
  325. v18 = &v58;
  326. while ( 1 )
  327. {
  328. v28 = v18["CSTATUS_NEGOTIATION_COMPLETE" - &v58];
  329. *v18++ = v28;
  330. if ( !v28 )
  331. goto LABEL_216;
  332. if ( !--v4 )
  333. goto LABEL_217;
  334. }
  335. case 10:
  336. v18 = &v58;
  337. while ( 1 )
  338. {
  339. v29 = v18["CSTATUS_NEGOTIATION_FAILED" - &v58];
  340. *v18++ = v29;
  341. if ( !v29 )
  342. goto LABEL_216;
  343. if ( !--v4 )
  344. goto LABEL_217;
  345. }
  346. case 11:
  347. v18 = &v58;
  348. while ( 1 )
  349. {
  350. v30 = v18["CSTATUS_AUTHENTICATING" - &v58];
  351. *v18++ = v30;
  352. if ( !v30 )
  353. goto LABEL_216;
  354. if ( !--v4 )
  355. goto LABEL_217;
  356. }
  357. case 12:
  358. v18 = &v58;
  359. while ( 1 )
  360. {
  361. v31 = v18["AUTH_OK" - &v58];
  362. *v18++ = v31;
  363. if ( !v31 )
  364. goto LABEL_216;
  365. if ( !--v4 )
  366. goto LABEL_217;
  367. }
  368. case 13:
  369. v18 = &v58;
  370. while ( 1 )
  371. {
  372. v32 = v18["AUTH_FAILED" - &v58];
  373. *v18++ = v32;
  374. if ( !v32 )
  375. goto LABEL_216;
  376. if ( !--v4 )
  377. goto LABEL_217;
  378. }
  379. case 14:
  380. v18 = &v58;
  381. while ( 1 )
  382. {
  383. v33 = v18["AUTH_REJECT" - &v58];
  384. *v18++ = v33;
  385. if ( !v33 )
  386. goto LABEL_216;
  387. if ( !--v4 )
  388. goto LABEL_217;
  389. }
  390. case 15:
  391. v18 = &v58;
  392. while ( 1 )
  393. {
  394. v34 = v18["AUTH_BAD_SERVER_PROOF" - &v58];
  395. *v18++ = v34;
  396. if ( !v34 )
  397. goto LABEL_216;
  398. if ( !--v4 )
  399. goto LABEL_217;
  400. }
  401. case 16:
  402. v18 = &v58;
  403. while ( 1 )
  404. {
  405. v35 = v18["AUTH_UNAVAILABLE" - &v58];
  406. *v18++ = v35;
  407. if ( !v35 )
  408. goto LABEL_216;
  409. if ( !--v4 )
  410. goto LABEL_217;
  411. }
  412. case 17:
  413. v18 = &v58;
  414. break;
  415. default:
  416. goto LABEL_207;
  417. }
  418. while ( 1 )
  419. {
  420. v36 = v18["AUTH_SYSTEM_ERROR" - &v58];
  421. *v18++ = v36;
  422. if ( !v36 )
  423. break;
  424. if ( !--v4 )
  425. goto LABEL_217;
  426. }
  427. }
  428. goto LABEL_216;
  429. }
  430. if ( a3 > 75 )
  431. {
  432. if ( a3 == 76 )
  433. {
  434. v18 = &v58;
  435. while ( 1 )
  436. {
  437. v54 = v18["CHAR_DELETE_FAILED_ARENA_CAPTAIN" - &v58];
  438. *v18++ = v54;
  439. if ( !v54 )
  440. goto LABEL_216;
  441. if ( !--v4 )
  442. goto LABEL_217;
  443. }
  444. }
  445. if ( a3 != 77 )
  446. goto LABEL_207;
  447. v18 = &v58;
  448. while ( 1 )
  449. {
  450. v53 = v18["CHAR_DELETE_FAILED_HAS_HEIRLOOM_OR_MAIL" - &v58];
  451. *v18++ = v53;
  452. if ( !v53 )
  453. break;
  454. if ( !--v4 )
  455. goto LABEL_217;
  456. }
  457. }
  458. else if ( a3 == 75 )
  459. {
  460. v18 = &v58;
  461. while ( 1 )
  462. {
  463. v52 = v18["CHAR_DELETE_FAILED_GUILD_LEADER" - &v58];
  464. *v18++ = v52;
  465. if ( !v52 )
  466. break;
  467. if ( !--v4 )
  468. goto LABEL_217;
  469. }
  470. }
  471. else if ( a3 > 26 )
  472. {
  473. switch ( a3 )
  474. {
  475. case 27:
  476. v18 = &v58;
  477. while ( 1 )
  478. {
  479. v51 = v18["AUTH_WAIT_QUEUE" - &v58];
  480. *v18++ = v51;
  481. if ( !v51 )
  482. break;
  483. if ( !--v4 )
  484. goto LABEL_217;
  485. }
  486. break;
  487. case 35:
  488. v18 = &v58;
  489. while ( 1 )
  490. {
  491. v50 = v18["REALM_LIST_IN_PROGRESS" - &v58];
  492. *v18++ = v50;
  493. if ( !v50 )
  494. break;
  495. if ( !--v4 )
  496. goto LABEL_217;
  497. }
  498. break;
  499. case 36:
  500. v18 = &v58;
  501. while ( 1 )
  502. {
  503. v49 = v18["REALM_LIST_SUCCESS" - &v58];
  504. *v18++ = v49;
  505. if ( !v49 )
  506. break;
  507. if ( !--v4 )
  508. goto LABEL_217;
  509. }
  510. break;
  511. case 37:
  512. v18 = &v58;
  513. while ( 1 )
  514. {
  515. v48 = v18["REALM_LIST_FAILED" - &v58];
  516. *v18++ = v48;
  517. if ( !v48 )
  518. break;
  519. if ( !--v4 )
  520. goto LABEL_217;
  521. }
  522. break;
  523. case 38:
  524. v18 = &v58;
  525. while ( 1 )
  526. {
  527. v47 = v18["REALM_LIST_INVALID" - &v58];
  528. *v18++ = v47;
  529. if ( !v47 )
  530. break;
  531. if ( !--v4 )
  532. goto LABEL_217;
  533. }
  534. break;
  535. case 39:
  536. v18 = &v58;
  537. while ( 1 )
  538. {
  539. v46 = v18["REALM_LIST_REALM_NOT_FOUND" - &v58];
  540. *v18++ = v46;
  541. if ( !v46 )
  542. break;
  543. if ( !--v4 )
  544. goto LABEL_217;
  545. }
  546. break;
  547. default:
  548. goto LABEL_207;
  549. }
  550. }
  551. else
  552. {
  553. switch ( a3 )
  554. {
  555. case 26:
  556. v18 = &v58;
  557. while ( 1 )
  558. {
  559. v45 = v18["AUTH_LOGIN_SERVER_NOT_FOUND" - &v58];
  560. *v18++ = v45;
  561. if ( !v45 )
  562. break;
  563. if ( !--v4 )
  564. goto LABEL_217;
  565. }
  566. break;
  567. case 19:
  568. v18 = &v58;
  569. while ( 1 )
  570. {
  571. v44 = v18["AUTH_BILLING_EXPIRED" - &v58];
  572. *v18++ = v44;
  573. if ( !v44 )
  574. break;
  575. if ( !--v4 )
  576. goto LABEL_217;
  577. }
  578. break;
  579. case 20:
  580. v18 = &v58;
  581. while ( 1 )
  582. {
  583. v43 = v18["AUTH_VERSION_MISMATCH" - &v58];
  584. *v18++ = v43;
  585. if ( !v43 )
  586. break;
  587. if ( !--v4 )
  588. goto LABEL_217;
  589. }
  590. break;
  591. case 21:
  592. v18 = &v58;
  593. while ( 1 )
  594. {
  595. v42 = v18["AUTH_UNKNOWN_ACCOUNT" - &v58];
  596. *v18++ = v42;
  597. if ( !v42 )
  598. break;
  599. if ( !--v4 )
  600. goto LABEL_217;
  601. }
  602. break;
  603. case 22:
  604. v18 = &v58;
  605. while ( 1 )
  606. {
  607. v41 = v18["AUTH_INCORRECT_PASSWORD" - &v58];
  608. *v18++ = v41;
  609. if ( !v41 )
  610. break;
  611. if ( !--v4 )
  612. goto LABEL_217;
  613. }
  614. break;
  615. case 23:
  616. v18 = &v58;
  617. while ( 1 )
  618. {
  619. v40 = v18["AUTH_SESSION_EXPIRED" - &v58];
  620. *v18++ = v40;
  621. if ( !v40 )
  622. break;
  623. if ( !--v4 )
  624. goto LABEL_217;
  625. }
  626. break;
  627. case 24:
  628. v18 = &v58;
  629. while ( 1 )
  630. {
  631. v39 = v18["AUTH_SERVER_SHUTTING_DOWN" - &v58];
  632. *v18++ = v39;
  633. if ( !v39 )
  634. break;
  635. if ( !--v4 )
  636. goto LABEL_217;
  637. }
  638. break;
  639. case 25:
  640. v18 = &v58;
  641. while ( 1 )
  642. {
  643. v38 = v18["AUTH_ALREADY_LOGGING_IN" - &v58];
  644. *v18++ = v38;
  645. if ( !v38 )
  646. goto LABEL_216;
  647. if ( !--v4 )
  648. goto LABEL_217;
  649. }
  650. default:
  651. LABEL_207:
  652. SStrPrintf(&v58, 32, "%d", a3);
  653. goto LABEL_218;
  654. }
  655. }
  656. LABEL_216:
  657. if ( !v4 )
  658. LABEL_217:
  659. *v18 = 0;
  660. LABEL_218:
  661. if ( a2 )
  662. {
  663. v55 = dword_1676BDC;
  664. }
  665. else
  666. {
  667. if ( a4 )
  668. {
  669. v55 = "result=TRUE";
  670. LABEL_224:
  671. v56 = "Completed";
  672. goto LABEL_225;
  673. }
  674. v55 = "result=FALSE";
  675. }
  676. v56 = "Initiating";
  677. if ( !a2 )
  678. goto LABEL_224;
  679. LABEL_225:
  680. sub_E9A027("ClientConnection %s: %s code=%s %s", v56, &v57, &v58, v55);
  681. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement