Guest User

encrypt decompiled /w BinaryNinja

a guest
Feb 8th, 2023
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 94.09 KB | None | 0 0
  1. int64_t _init()
  2. {
  3. call_gmon_start();
  4. frame_dummy();
  5. return __do_global_ctors_aux();
  6. }
  7.  
  8. int64_t sub_400968()
  9. {
  10. int64_t var_8 = data_6091e8;
  11. /* jump -> data_6091f0 */
  12. }
  13.  
  14. int32_t printf(char const* format, ...)
  15. {
  16. /* tailcall */
  17. return printf();
  18. }
  19.  
  20. int64_t sub_40097e()
  21. {
  22. int64_t var_8 = 0;
  23. /* tailcall */
  24. return sub_400968();
  25. }
  26.  
  27. int64_t memset(void* arg1, int32_t arg2, uint64_t arg3)
  28. {
  29. /* tailcall */
  30. return memset(arg1, arg2, arg3);
  31. }
  32.  
  33. int64_t sub_40098e()
  34. {
  35. int64_t var_8 = 1;
  36. /* tailcall */
  37. return sub_400968();
  38. }
  39.  
  40. int32_t close(int32_t fd)
  41. {
  42. /* tailcall */
  43. return close(fd);
  44. }
  45.  
  46. int64_t sub_40099e()
  47. {
  48. int64_t var_8 = 2;
  49. /* tailcall */
  50. return sub_400968();
  51. }
  52.  
  53. int32_t puts(char const* str)
  54. {
  55. /* tailcall */
  56. return puts(str);
  57. }
  58.  
  59. int64_t sub_4009ae()
  60. {
  61. int64_t var_8 = 3;
  62. /* tailcall */
  63. return sub_400968();
  64. }
  65.  
  66. void exit(int32_t status) __noreturn
  67. {
  68. /* tailcall */
  69. return exit(status);
  70. }
  71.  
  72. int64_t sub_4009be()
  73. {
  74. int64_t var_8 = 4;
  75. /* tailcall */
  76. return sub_400968();
  77. }
  78.  
  79. int32_t putchar(int32_t c)
  80. {
  81. /* tailcall */
  82. return putchar(c);
  83. }
  84.  
  85. int64_t sub_4009ce()
  86. {
  87. int64_t var_8 = 5;
  88. /* tailcall */
  89. return sub_400968();
  90. }
  91.  
  92. ssize_t read(int32_t fd, void* buf, uint64_t nbytes)
  93. {
  94. /* tailcall */
  95. return read(fd, buf, nbytes);
  96. }
  97.  
  98. int64_t sub_4009de()
  99. {
  100. int64_t var_8 = 6;
  101. /* tailcall */
  102. return sub_400968();
  103. }
  104.  
  105. int64_t malloc(uint64_t bytes)
  106. {
  107. /* tailcall */
  108. return malloc(bytes);
  109. }
  110.  
  111. int64_t sub_4009ee()
  112. {
  113. int64_t var_8 = 7;
  114. /* tailcall */
  115. return sub_400968();
  116. }
  117.  
  118. void __libc_start_main(
  119. int32_t (* main)(int32_t argc, char** argv, char** envp), int32_t argc,
  120. char** ubp_av, void (* init)(), void (* fini)(), void (* rtld_fini)(),
  121. void* stack_end) __noreturn
  122. {
  123. /* tailcall */
  124. return __libc_start_main(main, argc, ubp_av, init, fini, rtld_fini, __return_addr);
  125. }
  126.  
  127. int64_t sub_4009fe()
  128. {
  129. int64_t var_8 = 8;
  130. /* tailcall */
  131. return sub_400968();
  132. }
  133.  
  134. void free(void* mem)
  135. {
  136. /* tailcall */
  137. return free(mem);
  138. }
  139.  
  140. int64_t sub_400a0e()
  141. {
  142. int64_t var_8 = 9;
  143. /* tailcall */
  144. return sub_400968();
  145. }
  146.  
  147. int32_t sprintf(char* s, char const* format, ...)
  148. {
  149. /* tailcall */
  150. return sprintf();
  151. }
  152.  
  153. int64_t sub_400a1e()
  154. {
  155. int64_t var_8 = 0xa;
  156. /* tailcall */
  157. return sub_400968();
  158. }
  159.  
  160. off64_t lseek(int32_t fd, int64_t __arg2, int32_t whence)
  161. {
  162. /* tailcall */
  163. return lseek(fd, __arg2, whence);
  164. }
  165.  
  166. int64_t sub_400a2e()
  167. {
  168. int64_t var_8 = 0xb;
  169. /* tailcall */
  170. return sub_400968();
  171. }
  172.  
  173. int32_t atoi(char const* nptr)
  174. {
  175. /* tailcall */
  176. return atoi(nptr);
  177. }
  178.  
  179. int64_t sub_400a3e()
  180. {
  181. int64_t var_8 = 0xc;
  182. /* tailcall */
  183. return sub_400968();
  184. }
  185.  
  186. int64_t memcpy(void* arg1, void const* arg2, uint64_t arg3)
  187. {
  188. /* tailcall */
  189. return memcpy(arg1, arg2, arg3);
  190. }
  191.  
  192. int64_t sub_400a4e()
  193. {
  194. int64_t var_8 = 0xd;
  195. /* tailcall */
  196. return sub_400968();
  197. }
  198.  
  199. int32_t* __errno_location()
  200. {
  201. /* tailcall */
  202. return __errno_location();
  203. }
  204.  
  205. int64_t sub_400a5e()
  206. {
  207. int64_t var_8 = 0xe;
  208. /* tailcall */
  209. return sub_400968();
  210. }
  211.  
  212. void __stack_chk_fail() __noreturn
  213. {
  214. /* tailcall */
  215. return __stack_chk_fail();
  216. }
  217.  
  218. int64_t sub_400a6e()
  219. {
  220. int64_t var_8 = 0xf;
  221. /* tailcall */
  222. return sub_400968();
  223. }
  224.  
  225. int64_t calloc(uint64_t n, uint64_t elem_size)
  226. {
  227. /* tailcall */
  228. return calloc(n, elem_size);
  229. }
  230.  
  231. int64_t sub_400a7e()
  232. {
  233. int64_t var_8 = 0x10;
  234. /* tailcall */
  235. return sub_400968();
  236. }
  237.  
  238. int64_t dlopen()
  239. {
  240. /* tailcall */
  241. return dlopen();
  242. }
  243.  
  244. int64_t sub_400a8e()
  245. {
  246. int64_t var_8 = 0x11;
  247. /* tailcall */
  248. return sub_400968();
  249. }
  250.  
  251. int64_t dlsym()
  252. {
  253. /* tailcall */
  254. return dlsym();
  255. }
  256.  
  257. int64_t sub_400a9e()
  258. {
  259. int64_t var_8 = 0x12;
  260. /* tailcall */
  261. return sub_400968();
  262. }
  263.  
  264. int32_t fprintf(FILE* stream, char const* format, ...)
  265. {
  266. /* tailcall */
  267. return fprintf();
  268. }
  269.  
  270. int64_t sub_400aae()
  271. {
  272. int64_t var_8 = 0x13;
  273. /* tailcall */
  274. return sub_400968();
  275. }
  276.  
  277. ssize_t write(int32_t fd, void const* buf, uint64_t nbytes)
  278. {
  279. /* tailcall */
  280. return write(fd, buf, nbytes);
  281. }
  282.  
  283. int64_t sub_400abe()
  284. {
  285. int64_t var_8 = 0x14;
  286. /* tailcall */
  287. return sub_400968();
  288. }
  289.  
  290. int32_t open(char const* file, int32_t oflag, ...)
  291. {
  292. /* tailcall */
  293. return open();
  294. }
  295.  
  296. int64_t sub_400ace()
  297. {
  298. int64_t var_8 = 0x15;
  299. /* tailcall */
  300. return sub_400968();
  301. }
  302.  
  303. int64_t _start(int64_t arg1, int64_t arg2, void (* arg3)()) __noreturn
  304. {
  305. int64_t rax;
  306. int64_t var_8 = rax;
  307. __libc_start_main(main, __return_addr, &arg_8, __libc_csu_init, __libc_csu_fini, arg3, &var_8);
  308. /* no return */
  309. }
  310.  
  311. void call_gmon_start()
  312. {
  313. if (__gmon_start__ != 0)
  314. {
  315. __gmon_start__();
  316. }
  317. }
  318.  
  319. void __do_global_dtors_aux()
  320. {
  321. if (completed.6183 == 0)
  322. {
  323. while (true)
  324. {
  325. int64_t* rax = p.6181;
  326. int64_t rdx_1 = *rax;
  327. if (rdx_1 == 0)
  328. {
  329. break;
  330. }
  331. p.6181 = &rax[1];
  332. rdx_1();
  333. }
  334. completed.6183 = 1;
  335. }
  336. }
  337.  
  338. void frame_dummy()
  339. {
  340. return;
  341. }
  342.  
  343. uint64_t init_libssl()
  344. {
  345. void* fsbase;
  346. int64_t rax = *(fsbase + 0x28);
  347. plibssl = dlopen("libssl.so", 2);
  348. int32_t var_4c;
  349. if (plibssl == 0)
  350. {
  351. for (int32_t var_3c_1 = 0; var_3c_1 <= 0xf; var_3c_1 = (var_3c_1 + 1))
  352. {
  353. void var_38;
  354. sprintf(&var_38, "libssl.so.%d", var_3c_1);
  355. plibssl = dlopen(&var_38, 2);
  356. if (plibssl != 0)
  357. {
  358. break;
  359. }
  360. }
  361. var_4c = 1;
  362. }
  363. lBIO_new_mem_buf = dlsym(plibssl, "BIO_new_mem_buf");
  364. if (lBIO_new_mem_buf == 0)
  365. {
  366. var_4c = 2;
  367. }
  368. else
  369. {
  370. lERR_get_error = dlsym(plibssl, "ERR_get_error");
  371. if (lERR_get_error == 0)
  372. {
  373. var_4c = 3;
  374. }
  375. else
  376. {
  377. lERR_error_string = dlsym(plibssl, "ERR_error_string");
  378. if (lERR_error_string == 0)
  379. {
  380. var_4c = 4;
  381. }
  382. else
  383. {
  384. lPEM_read_bio_RSA_PUBKEY = dlsym(plibssl, "PEM_read_bio_RSA_PUBKEY");
  385. if (lPEM_read_bio_RSA_PUBKEY == 0)
  386. {
  387. var_4c = 5;
  388. }
  389. else
  390. {
  391. lPEM_read_bio_RSAPrivateKey = dlsym(plibssl, "PEM_read_bio_RSAPrivateKey");
  392. if (lPEM_read_bio_RSAPrivateKey == 0)
  393. {
  394. var_4c = 6;
  395. }
  396. else
  397. {
  398. lRAND_pseudo_bytes = dlsym(plibssl, "RAND_pseudo_bytes");
  399. if (lRAND_pseudo_bytes == 0)
  400. {
  401. var_4c = 7;
  402. }
  403. else
  404. {
  405. lRSA_public_encrypt = dlsym(plibssl, "RSA_public_encrypt");
  406. if (lRSA_public_encrypt == 0)
  407. {
  408. var_4c = 8;
  409. }
  410. else
  411. {
  412. lRSA_private_decrypt = dlsym(plibssl, "RSA_private_decrypt");
  413. if (lRSA_private_decrypt == 0)
  414. {
  415. var_4c = 9;
  416. }
  417. else
  418. {
  419. lRSA_size = dlsym(plibssl, "RSA_size");
  420. if (lRSA_size != 0)
  421. {
  422. var_4c = 0;
  423. }
  424. else
  425. {
  426. var_4c = 0xa;
  427. }
  428. }
  429. }
  430. }
  431. }
  432. }
  433. }
  434. }
  435. }
  436. uint64_t rax_26 = var_4c;
  437. if ((rax ^ *(fsbase + 0x28)) == 0)
  438. {
  439. return rax_26;
  440. }
  441. __stack_chk_fail();
  442. /* no return */
  443. }
  444.  
  445. int64_t print_error(int64_t arg1, int32_t arg2)
  446. {
  447. int64_t rax_2;
  448. if (arg2 == 0)
  449. {
  450. rax_2 = printf("[ %s ] - FAIL\n", arg1);
  451. }
  452. else
  453. {
  454. rax_2 = printf("[ %s ] - FAIL { Errno: %d }\n", arg1, *__errno_location());
  455. }
  456. return rax_2;
  457. }
  458.  
  459. int64_t print_error_ex(int64_t arg1, int32_t arg2)
  460. {
  461. void* fsbase;
  462. int64_t rax = *(fsbase + 0x28);
  463. if (arg2 == 0)
  464. {
  465. printf("[ %s ] - FAIL\n", arg1);
  466. }
  467. else
  468. {
  469. void var_98;
  470. lERR_error_string(lERR_get_error(), &var_98);
  471. printf("[ %s ] - FAIL { %s }\n", arg1, &var_98);
  472. }
  473. int64_t rax_8 = (rax ^ *(fsbase + 0x28));
  474. if (rax_8 == 0)
  475. {
  476. return rax_8;
  477. }
  478. __stack_chk_fail();
  479. /* no return */
  480. }
  481.  
  482. uint64_t open_read(char* arg1)
  483. {
  484. int32_t rax_1 = open(arg1, 0);
  485. if (rax_1 == 0xffffffff)
  486. {
  487. print_error("open", 1);
  488. }
  489. return rax_1;
  490. }
  491.  
  492. uint64_t open_write(char* arg1)
  493. {
  494. int32_t rax_1 = open(arg1, 0x242, 0x180);
  495. if (rax_1 == 0xffffffff)
  496. {
  497. print_error("open", 1);
  498. }
  499. return rax_1;
  500. }
  501.  
  502. uint64_t open_read_write(char* arg1)
  503. {
  504. int32_t rax_1 = open(arg1, 2, 0x180);
  505. if (rax_1 == 0xffffffff)
  506. {
  507. print_error("open", 1);
  508. }
  509. return rax_1;
  510. }
  511.  
  512. uint64_t get_file_curr_size(int32_t arg1, off64_t* arg2)
  513. {
  514. off64_t rax = lseek(arg1, 0, 2);
  515. int32_t var_2c;
  516. if (rax != -1)
  517. {
  518. *arg2 = rax;
  519. var_2c = 0;
  520. }
  521. else
  522. {
  523. print_error("lseek [end]", 1);
  524. var_2c = 1;
  525. }
  526. return var_2c;
  527. }
  528.  
  529. uint64_t get_pk_data(char* arg1, int64_t* arg2)
  530. {
  531. int32_t rax = open_read(arg1);
  532. int32_t var_3c;
  533. if (rax == 0xffffffff)
  534. {
  535. print_error("open_pk_file", 0);
  536. var_3c = 1;
  537. }
  538. else
  539. {
  540. off64_t rax_1 = lseek(rax, 0, 2);
  541. if (rax_1 == -1)
  542. {
  543. print_error("lseek [end]", 1);
  544. var_3c = 2;
  545. }
  546. else if (rax_1 == 0)
  547. {
  548. puts("get_pk_data: key file is empty!");
  549. var_3c = 3;
  550. }
  551. else
  552. {
  553. *arg2 = calloc((rax_1 + 1), 1);
  554. if (lseek(rax, 0, 0) == -1)
  555. {
  556. print_error("lseek [start]", 1);
  557. var_3c = 4;
  558. }
  559. else if (read(rax, *arg2, rax_1) != -1)
  560. {
  561. close(rax);
  562. var_3c = 0;
  563. }
  564. else
  565. {
  566. print_error("read", 1);
  567. var_3c = 5;
  568. }
  569. }
  570. }
  571. return var_3c;
  572. }
  573.  
  574. uint64_t create_rsa_obj(int64_t arg1, int64_t* arg2)
  575. {
  576. int64_t rax_1 = lBIO_new_mem_buf(arg1, 0xffffffff);
  577. int32_t var_2c;
  578. if (rax_1 == 0)
  579. {
  580. print_error_ex("BIO_new_mem_buf", 1);
  581. var_2c = 1;
  582. }
  583. else
  584. {
  585. *arg2 = 0;
  586. if (lPEM_read_bio_RSA_PUBKEY(rax_1, arg2, 0, 0) != 0)
  587. {
  588. var_2c = 0;
  589. }
  590. else
  591. {
  592. print_error_ex("PEM_read_bio_RSA_PUBKEY", 1);
  593. var_2c = 2;
  594. }
  595. }
  596. return var_2c;
  597. }
  598.  
  599. uint64_t gen_stream_key(int64_t arg1, int32_t arg2)
  600. {
  601. int32_t var_18;
  602. if (lRAND_pseudo_bytes(arg1, arg2) != 0)
  603. {
  604. var_18 = 0;
  605. }
  606. else
  607. {
  608. print_error_ex("RAND_pseudo_bytes", 1);
  609. var_18 = 1;
  610. }
  611. return var_18;
  612. }
  613.  
  614. uint64_t rsa_encrypt(int64_t arg1, int64_t arg2, int32_t arg3, int64_t* arg4,
  615. int32_t* arg5)
  616. {
  617. int32_t var_44;
  618. if (lRSA_size(arg1) <= arg3)
  619. {
  620. puts("encrypt_bytes: too big data");
  621. var_44 = 1;
  622. }
  623. else
  624. {
  625. *arg4 = calloc(lRSA_size(arg1), 1);
  626. int32_t rax_7 = lRSA_public_encrypt(arg3, arg2, *arg4, arg1, 1);
  627. if (rax_7 != 0xffffffff)
  628. {
  629. *arg5 = rax_7;
  630. var_44 = 0;
  631. }
  632. else
  633. {
  634. print_error_ex("RSA_public_encrypt", 1);
  635. var_44 = 2;
  636. }
  637. }
  638. return var_44;
  639. }
  640.  
  641. uint64_t dump_data(char* arg1, int64_t arg2, int32_t arg3)
  642. {
  643. int32_t rax = open_write(arg1);
  644. int32_t var_30;
  645. if (rax == 0xffffffff)
  646. {
  647. print_error("open_write", 0);
  648. var_30 = 1;
  649. }
  650. else if (write(rax, arg2, arg3) != -1)
  651. {
  652. close(rax);
  653. var_30 = 0;
  654. }
  655. else
  656. {
  657. print_error("write", 1);
  658. var_30 = 2;
  659. }
  660. return var_30;
  661. }
  662.  
  663. uint64_t encrypt_simple(int32_t arg1, int64_t arg2, int64_t arg3, int64_t arg4,
  664. int32_t arg5, int64_t arg6)
  665. {
  666. void* fsbase;
  667. int64_t rax = *(fsbase + 0x28);
  668. void var_278;
  669. sosemanuk_schedule(&var_278, arg4, arg5);
  670. void var_a8;
  671. sosemanuk_init(&var_a8, &var_278, 0, 0);
  672. int32_t var_2cc;
  673. int64_t var_c0;
  674. if (get_file_curr_size(arg1, &var_c0) != 0)
  675. {
  676. print_error("fstat", 1);
  677. var_2cc = 1;
  678. }
  679. else
  680. {
  681. if (arg6 < var_c0)
  682. {
  683. var_c0 = arg6;
  684. }
  685. if (var_c0 == 0)
  686. {
  687. var_2cc = 0;
  688. }
  689. else
  690. {
  691. char* rax_6 = malloc(0x100000);
  692. if (rax_6 == 0)
  693. {
  694. print_error("malloc", 1);
  695. var_2cc = 2;
  696. }
  697. else if (lseek(arg1, 0, 0) == -1)
  698. {
  699. print_error("lseek [start]", 1);
  700. var_2cc = 0xa;
  701. }
  702. else
  703. {
  704. int64_t var_290_1 = (arg3 << 0x14);
  705. int64_t var_288_1 = (arg2 << 0x14);
  706. int64_t var_d0_1 = 0;
  707. int64_t var_b8_1 = 0;
  708. while (true)
  709. {
  710. int64_t var_d8_1 = 0;
  711. uint64_t var_e8_1;
  712. int64_t var_b8_2;
  713. while (true)
  714. {
  715. if (var_d8_1 < var_290_1)
  716. {
  717. var_e8_1 = read(arg1, rax_6, 0x100000);
  718. if (var_e8_1 == -1)
  719. {
  720. print_error("fstat", 1);
  721. var_2cc = 3;
  722. break;
  723. }
  724. sosemanuk_encrypt(&var_a8, rax_6, rax_6, var_e8_1);
  725. if (lseek(arg1, (-var_e8_1), 1) == -1)
  726. {
  727. print_error("lseek", 1);
  728. var_2cc = 4;
  729. break;
  730. }
  731. if (write(arg1, rax_6, var_e8_1) == -1)
  732. {
  733. print_error("write", 1);
  734. var_2cc = 5;
  735. break;
  736. }
  737. var_d8_1 = (var_d8_1 + var_e8_1);
  738. if (var_e8_1 > 0xfffff)
  739. {
  740. continue;
  741. }
  742. }
  743. var_b8_2 = (var_b8_1 + var_d8_1);
  744. break;
  745. }
  746. if ((var_d8_1 < var_290_1 && var_e8_1 == -1))
  747. {
  748. break;
  749. }
  750. if ((var_288_1 + var_b8_2) < var_c0)
  751. {
  752. if (lseek(arg1, var_288_1, 1) == -1)
  753. {
  754. print_error("lseek", 1);
  755. var_2cc = 6;
  756. break;
  757. }
  758. var_b8_1 = (var_b8_2 + var_288_1);
  759. int32_t var_2dc_1 = 0x66666666;
  760. int64_t rax_21;
  761. int64_t rdx_5;
  762. rdx_5 = HIGHD((0x66666667 * var_d0_1));
  763. rax_21 = LOWD((0x66666667 * var_d0_1));
  764. int64_t rax_26 = (((rdx_5 >> 2) - (var_d0_1 >> 0x3f)) * 5);
  765. if ((var_d0_1 - (rax_26 + rax_26)) == 0)
  766. {
  767. double var_2c0_1;
  768. double zmm0;
  769. if (var_b8_1 < 0)
  770. {
  771. zmm0 = ((var_b8_1 >> 1) | (var_b8_1 & 1));
  772. var_2c0_1 = (zmm0 + zmm0);
  773. }
  774. else
  775. {
  776. var_2c0_1 = var_b8_1;
  777. }
  778. double var_e0_1 = (100.0 * var_2c0_1);
  779. int64_t rax_31 = var_c0;
  780. double var_2b0_1;
  781. if (rax_31 < 0)
  782. {
  783. zmm0 = ((rax_31 >> 1) | (rax_31 & 1));
  784. var_2b0_1 = (zmm0 + zmm0);
  785. }
  786. else
  787. {
  788. var_2b0_1 = rax_31;
  789. }
  790. zmm0 = (var_e0_1 / var_2b0_1);
  791. if (((!(zmm0 == 100.0 | (FCMP_UO(zmm0, 100.0)))) && (!(zmm0 < 100.0 | (FCMP_UO(zmm0, 100.0))))))
  792. {
  793. double var_e0_2 = 100.0;
  794. }
  795. if (var_d0_1 != 0)
  796. {
  797. putchar(0xd);
  798. }
  799. printf("Progress: %f");
  800. }
  801. var_d0_1 = (var_d0_1 + 1);
  802. if (var_b8_1 < var_c0)
  803. {
  804. continue;
  805. }
  806. }
  807. putchar(0xa);
  808. free(rax_6);
  809. var_2cc = 0;
  810. break;
  811. }
  812. }
  813. }
  814. }
  815. uint64_t rax_37 = var_2cc;
  816. if ((rax ^ *(fsbase + 0x28)) == 0)
  817. {
  818. return rax_37;
  819. }
  820. __stack_chk_fail();
  821. /* no return */
  822. }
  823.  
  824. uint64_t encrypt_file(char* arg1, int64_t arg2, int64_t arg3, int64_t arg4,
  825. int64_t arg5)
  826. {
  827. void* fsbase;
  828. int64_t rax = *(fsbase + 0x28);
  829. int32_t rax_2 = open_read_write(arg1);
  830. int32_t var_74;
  831. void var_38;
  832. if (rax_2 == 0xffffffff)
  833. {
  834. print_error("open_read", 1);
  835. var_74 = 1;
  836. }
  837. else
  838. {
  839. int64_t var_48;
  840. int32_t var_40;
  841. if (gen_stream_key(&var_38, 0x20) != 0)
  842. {
  843. print_error("get_pk_data", 0);
  844. var_74 = 2;
  845. }
  846. else if (rsa_encrypt(arg2, &var_38, 0x20, &var_48, &var_40) != 0)
  847. {
  848. print_error("rsa_encrypt", 0);
  849. var_74 = 3;
  850. }
  851. else if (encrypt_simple(rax_2, arg3, arg4, &var_38, 0x20, arg5) != 0)
  852. {
  853. print_error("encrypt_simple", 0);
  854. var_74 = 4;
  855. }
  856. else if (lseek(rax_2, 0, 2) == -1)
  857. {
  858. print_error("lseek", 1);
  859. var_74 = 5;
  860. }
  861. else if (write(rax_2, var_48, var_40) != -1)
  862. {
  863. var_74 = 0;
  864. }
  865. else
  866. {
  867. print_error("write", 1);
  868. var_74 = 6;
  869. }
  870. }
  871. uint64_t rax_10 = var_74;
  872. if ((rax ^ *(fsbase + 0x28)) == 0)
  873. {
  874. return rax_10;
  875. }
  876. __stack_chk_fail();
  877. /* no return */
  878. }
  879.  
  880. int32_t main(int32_t argc, char** argv, char** envp)
  881. {
  882. int32_t var_4c;
  883. if (argc <= 2)
  884. {
  885. puts("usage: encrypt <public_key> <fil…");
  886. puts(" enc_step - number of …");
  887. puts(" enc_size - number of …");
  888. puts(" file_size - file size …");
  889. var_4c = 1;
  890. }
  891. else
  892. {
  893. int64_t var_28_1 = 0;
  894. int64_t var_30_1 = 1;
  895. int64_t var_38_1 = 0;
  896. if (argc > 3)
  897. {
  898. var_28_1 = atoi(argv[3]);
  899. }
  900. if (argc > 4)
  901. {
  902. var_30_1 = atoi(argv[4]);
  903. }
  904. if (argc > 5)
  905. {
  906. var_38_1 = atoi(argv[5]);
  907. }
  908. int32_t rax_13 = init_libssl();
  909. int64_t var_18;
  910. if (rax_13 != 0)
  911. {
  912. printf("init_libssl returned %d\n", rax_13);
  913. var_4c = 2;
  914. }
  915. else
  916. {
  917. int64_t var_20;
  918. if (get_pk_data(argv[1], &var_18) != 0)
  919. {
  920. print_error("get_pk_data", 0);
  921. var_4c = 3;
  922. }
  923. else if (create_rsa_obj(var_18, &var_20) != 0)
  924. {
  925. print_error("create_rsa_obj", 0);
  926. var_4c = 4;
  927. }
  928. else if (encrypt_file(argv[2], var_20, var_28_1, var_30_1, var_38_1) == 0)
  929. {
  930. var_4c = 0;
  931. }
  932. else
  933. {
  934. print_error("encrypt_file", 0);
  935. var_4c = 5;
  936. }
  937. }
  938. }
  939. return var_4c;
  940. }
  941.  
  942. int64_t sosemanuk_schedule(void* arg1, int64_t arg2, uint64_t arg3)
  943. {
  944. void* fsbase;
  945. int64_t rax = *(fsbase + 0x28);
  946. int32_t var_3c = 0;
  947. if ((arg3 != 0 && arg3 <= 0x20))
  948. {
  949. void var_38;
  950. memcpy(&var_38, arg2, arg3);
  951. if (arg3 <= 0x1f)
  952. {
  953. *(&var_38 + arg3) = 1;
  954. if (arg3 <= 0x1e)
  955. {
  956. memset(((&var_38 + arg3) + 1), 0, (0x1f - arg3));
  957. }
  958. }
  959. int32_t rax_5 = decode32le(&var_38);
  960. void var_34;
  961. int32_t rax_6 = decode32le(&var_34);
  962. void var_30;
  963. int32_t rax_7 = decode32le(&var_30);
  964. void var_2c;
  965. int32_t rax_8 = decode32le(&var_2c);
  966. void var_28;
  967. int32_t rax_9 = decode32le(&var_28);
  968. void var_24;
  969. int32_t rax_10 = decode32le(&var_24);
  970. void var_20;
  971. int32_t rax_11 = decode32le(&var_20);
  972. void var_1c;
  973. int32_t rax_12 = decode32le(&var_1c);
  974. int32_t rdx_5 = (RORD(((((rax_5 ^ rax_8) ^ rax_10) ^ rax_12) ^ 0x9e3779b9), 0x15));
  975. int32_t rdx_7 = (RORD(((((rax_6 ^ rax_9) ^ rax_11) ^ rdx_5) ^ 0x9e3779b8), 0x15));
  976. int32_t rdx_9 = (RORD(((((rax_7 ^ rax_10) ^ rax_12) ^ rdx_7) ^ 0x9e3779bb), 0x15));
  977. int32_t rdx_11 = (RORD(((((rax_8 ^ rax_11) ^ rdx_5) ^ rdx_9) ^ 0x9e3779ba), 0x15));
  978. int32_t var_50_1 = (rdx_5 | rdx_11);
  979. int32_t var_5c_1 = (rdx_11 ^ rdx_7);
  980. int32_t var_54_1 = (rdx_7 & rdx_5);
  981. int32_t var_58_1 = (rdx_9 ^ var_5c_1);
  982. int32_t var_60_2 = ((rdx_5 ^ rdx_9) | var_54_1);
  983. int32_t var_5c_3 = ((var_5c_1 & var_50_1) ^ var_60_2);
  984. int32_t var_50_2 = (var_50_1 ^ var_54_1);
  985. int32_t var_54_4 = (((var_54_1 ^ var_5c_3) | var_50_2) ^ var_58_1);
  986. *arg1 = ((var_54_4 | var_5c_3) ^ (var_50_2 ^ var_5c_3));
  987. int32_t var_3c_1 = 1;
  988. *(arg1 + 4) = var_54_4;
  989. int32_t var_3c_2 = 2;
  990. *(arg1 + 8) = var_5c_3;
  991. int32_t var_3c_3 = 3;
  992. *(arg1 + 0xc) = ((var_60_2 & var_50_2) ^ var_58_1);
  993. int32_t var_3c_4 = 4;
  994. int32_t rdx_15 = (RORD(((((rax_9 ^ rax_12) ^ rdx_7) ^ rdx_11) ^ 0x9e3779bd), 0x15));
  995. int32_t rdx_17 = (RORD(((((rax_10 ^ rdx_5) ^ rdx_9) ^ rdx_15) ^ 0x9e3779bc), 0x15));
  996. int32_t rdx_19 = (RORD(((((rax_11 ^ rdx_7) ^ rdx_11) ^ rdx_17) ^ 0x9e3779bf), 0x15));
  997. int32_t rdx_21 = (RORD(((((rax_12 ^ rdx_9) ^ rdx_15) ^ rdx_19) ^ 0x9e3779be), 0x15));
  998. int32_t var_74_2 = ((rdx_15 & rdx_19) ^ rdx_21);
  999. int32_t var_7c_2 = ((rdx_19 ^ rdx_17) ^ var_74_2);
  1000. int32_t var_80_2 = ((rdx_21 | rdx_15) ^ rdx_17);
  1001. int32_t var_84_1 = (rdx_15 ^ var_7c_2);
  1002. int32_t var_80_4 = ((var_80_2 | var_84_1) ^ var_74_2);
  1003. int32_t var_84_2 = (var_84_1 ^ (var_74_2 & var_80_2));
  1004. *(arg1 + 0x10) = var_7c_2;
  1005. int32_t var_3c_5 = 5;
  1006. *(arg1 + 0x14) = var_80_4;
  1007. int32_t var_3c_6 = 6;
  1008. *(arg1 + 0x18) = ((var_80_2 ^ var_80_4) ^ var_84_2);
  1009. int32_t var_3c_7 = 7;
  1010. *(arg1 + 0x1c) = (!var_84_2);
  1011. int32_t var_3c_8 = 8;
  1012. int32_t rdx_25 = (RORD(((((rdx_5 ^ rdx_11) ^ rdx_17) ^ rdx_21) ^ 0x9e3779b1), 0x15));
  1013. int32_t rdx_27 = (RORD(((((rdx_7 ^ rdx_15) ^ rdx_19) ^ rdx_25) ^ 0x9e3779b0), 0x15));
  1014. int32_t rdx_29 = (RORD(((((rdx_9 ^ rdx_17) ^ rdx_21) ^ rdx_27) ^ 0x9e3779b3), 0x15));
  1015. int32_t rdx_31 = (RORD(((((rdx_11 ^ rdx_19) ^ rdx_25) ^ rdx_29) ^ 0x9e3779b2), 0x15));
  1016. int32_t var_98_1 = (!rdx_25);
  1017. int32_t var_98_2 = (var_98_1 & rdx_27);
  1018. int32_t var_a0_2 = ((!rdx_29) ^ var_98_2);
  1019. int32_t var_98_3 = (var_98_2 | rdx_31);
  1020. int32_t var_a4_1 = (rdx_31 ^ var_a0_2);
  1021. int32_t var_9c_1 = (rdx_27 ^ var_98_3);
  1022. int32_t var_98_4 = (var_98_3 ^ var_98_1);
  1023. int32_t var_a8_1 = (var_98_1 | var_9c_1);
  1024. int32_t var_9c_2 = (var_9c_1 ^ var_a4_1);
  1025. int32_t var_a0_4 = ((var_a0_2 | var_98_4) & var_a8_1);
  1026. int32_t var_98_5 = (var_98_4 ^ var_9c_2);
  1027. *(arg1 + 0x20) = var_a0_4;
  1028. int32_t var_3c_9 = 9;
  1029. *(arg1 + 0x24) = ((var_98_5 & var_a0_4) ^ var_a8_1);
  1030. int32_t var_3c_10 = 0xa;
  1031. *(arg1 + 0x28) = var_a4_1;
  1032. int32_t var_3c_11 = 0xb;
  1033. *(arg1 + 0x2c) = ((var_9c_2 & var_a0_4) ^ var_98_5);
  1034. int32_t var_3c_12 = 0xc;
  1035. int32_t rdx_35 = (RORD(((((rdx_15 ^ rdx_21) ^ rdx_27) ^ rdx_31) ^ 0x9e3779b5), 0x15));
  1036. int32_t rdx_37 = (RORD(((((rdx_17 ^ rdx_25) ^ rdx_29) ^ rdx_35) ^ 0x9e3779b4), 0x15));
  1037. int32_t rdx_39 = (RORD(((((rdx_19 ^ rdx_27) ^ rdx_31) ^ rdx_37) ^ 0x9e3779b7), 0x15));
  1038. int32_t rdx_41 = (RORD(((((rdx_21 ^ rdx_29) ^ rdx_35) ^ rdx_39) ^ 0x9e3779b6), 0x15));
  1039. int32_t var_c8_1 = (rdx_41 ^ rdx_35);
  1040. int32_t var_cc_1 = (rdx_37 ^ rdx_39);
  1041. int32_t var_c0_2 = ((rdx_37 & var_c8_1) ^ rdx_35);
  1042. int32_t var_bc_2 = ((rdx_35 | var_c8_1) ^ var_cc_1);
  1043. int32_t var_cc_2 = (var_cc_1 ^ var_c8_1);
  1044. int32_t var_c8_2 = (var_c8_1 ^ rdx_39);
  1045. int32_t var_cc_4 = ((!var_cc_2) | var_c0_2);
  1046. int32_t var_c8_3 = (var_c8_2 | var_bc_2);
  1047. *(arg1 + 0x30) = (((var_c0_2 ^ var_c8_2) ^ var_cc_4) ^ var_c8_3);
  1048. int32_t var_3c_13 = 0xd;
  1049. *(arg1 + 0x34) = (var_cc_4 ^ var_c8_3);
  1050. int32_t var_3c_14 = 0xe;
  1051. *(arg1 + 0x38) = ((rdx_39 | var_c0_2) ^ var_cc_2);
  1052. int32_t var_3c_15 = 0xf;
  1053. *(arg1 + 0x3c) = var_bc_2;
  1054. int32_t var_3c_16 = 0x10;
  1055. int32_t rdx_45 = (RORD(((((rdx_25 ^ rdx_31) ^ rdx_37) ^ rdx_41) ^ 0x9e3779a9), 0x15));
  1056. int32_t rdx_47 = (RORD(((((rdx_27 ^ rdx_35) ^ rdx_39) ^ rdx_45) ^ 0x9e3779a8), 0x15));
  1057. int32_t rdx_49 = (RORD(((((rdx_29 ^ rdx_37) ^ rdx_41) ^ rdx_47) ^ 0x9e3779ab), 0x15));
  1058. int32_t rdx_51 = (RORD(((((rdx_31 ^ rdx_39) ^ rdx_45) ^ rdx_49) ^ 0x9e3779aa), 0x15));
  1059. int32_t var_e4_2 = ((rdx_47 | rdx_49) ^ rdx_51);
  1060. int32_t var_f0_1 = (rdx_47 ^ rdx_49);
  1061. int32_t var_e8_1 = (rdx_49 ^ var_e4_2);
  1062. int32_t var_f0_2 = (var_f0_1 ^ var_e8_1);
  1063. int32_t var_e0_2 = ((rdx_45 | var_f0_2) ^ var_e8_1);
  1064. int32_t var_e4_5 = (((var_e4_2 | var_f0_2) ^ rdx_45) ^ var_f0_2);
  1065. *(arg1 + 0x40) = (var_f0_2 ^ ((!(var_e8_1 ^ var_e4_5)) | var_e0_2));
  1066. int32_t var_3c_17 = 0x11;
  1067. *(arg1 + 0x44) = (((rdx_51 | var_f0_1) & rdx_45) ^ var_e4_2);
  1068. int32_t var_3c_18 = 0x12;
  1069. *(arg1 + 0x48) = ((var_e4_5 & var_e0_2) ^ var_f0_2);
  1070. int32_t var_3c_19 = 0x13;
  1071. *(arg1 + 0x4c) = var_e0_2;
  1072. int32_t var_3c_20 = 0x14;
  1073. int32_t rdx_55 = (RORD(((((rdx_35 ^ rdx_41) ^ rdx_47) ^ rdx_51) ^ 0x9e3779ad), 0x15));
  1074. int32_t rdx_57 = (RORD(((((rdx_37 ^ rdx_45) ^ rdx_49) ^ rdx_55) ^ 0x9e3779ac), 0x15));
  1075. int32_t rdx_59 = (RORD(((((rdx_39 ^ rdx_47) ^ rdx_51) ^ rdx_57) ^ 0x9e3779af), 0x15));
  1076. int32_t rdx_61 = (RORD(((((rdx_41 ^ rdx_49) ^ rdx_55) ^ rdx_59) ^ 0x9e3779ae), 0x15));
  1077. int32_t var_10c_1 = (!rdx_59);
  1078. int32_t var_104_1 = (rdx_55 ^ rdx_61);
  1079. int32_t var_110_2 = ((rdx_61 & rdx_55) ^ var_10c_1);
  1080. int32_t var_108_1 = (rdx_57 ^ var_110_2);
  1081. int32_t var_104_2 = (var_104_1 | var_108_1);
  1082. int32_t var_10c_4 = (((var_10c_1 | rdx_61) ^ var_104_1) ^ var_108_1);
  1083. int32_t var_104_4 = ((var_104_2 | var_110_2) ^ var_10c_4);
  1084. int32_t var_114_3 = (((rdx_61 ^ var_104_2) ^ var_110_2) ^ var_104_4);
  1085. *(arg1 + 0x50) = var_104_4;
  1086. int32_t var_3c_21 = 0x15;
  1087. *(arg1 + 0x54) = var_108_1;
  1088. int32_t var_3c_22 = 0x16;
  1089. *(arg1 + 0x58) = var_114_3;
  1090. int32_t var_3c_23 = 0x17;
  1091. *(arg1 + 0x5c) = ((var_10c_4 & var_114_3) ^ (!var_110_2));
  1092. int32_t var_3c_24 = 0x18;
  1093. int32_t rdx_65 = (RORD(((((rdx_45 ^ rdx_51) ^ rdx_57) ^ rdx_61) ^ 0x9e3779a1), 0x15));
  1094. int32_t rdx_67 = (RORD(((((rdx_47 ^ rdx_55) ^ rdx_59) ^ rdx_65) ^ 0x9e3779a0), 0x15));
  1095. int32_t rdx_69 = (RORD(((((rdx_49 ^ rdx_57) ^ rdx_61) ^ rdx_67) ^ 0x9e3779a3), 0x15));
  1096. int32_t rdx_71 = (RORD(((((rdx_51 ^ rdx_59) ^ rdx_65) ^ rdx_69) ^ 0x9e3779a2), 0x15));
  1097. int32_t var_128_1 = (rdx_65 ^ rdx_67);
  1098. int32_t var_12c_1 = (rdx_67 ^ rdx_71);
  1099. int32_t var_134_1 = (!rdx_71);
  1100. int32_t var_130_1 = (rdx_69 ^ var_134_1);
  1101. int32_t var_12c_3 = ((var_12c_1 & var_128_1) ^ var_130_1);
  1102. int32_t var_130_2 = (var_130_1 | var_12c_1);
  1103. int32_t var_134_3 = ((var_134_1 & var_12c_3) ^ var_128_1);
  1104. int32_t var_138_3 = (((var_12c_1 ^ var_134_1) ^ var_12c_3) ^ var_130_2);
  1105. *(arg1 + 0x60) = var_12c_3;
  1106. int32_t var_3c_25 = 0x19;
  1107. *(arg1 + 0x64) = var_134_3;
  1108. int32_t var_3c_26 = 0x1a;
  1109. *(arg1 + 0x68) = ((var_128_1 & var_134_3) ^ var_138_3);
  1110. int32_t var_3c_27 = 0x1b;
  1111. *(arg1 + 0x6c) = ((!(var_130_2 ^ var_128_1)) ^ (var_138_3 | var_134_3));
  1112. int32_t var_3c_28 = 0x1c;
  1113. int32_t rdx_75 = (RORD(((((rdx_55 ^ rdx_61) ^ rdx_67) ^ rdx_71) ^ 0x9e3779a5), 0x15));
  1114. int32_t rdx_77 = (RORD(((((rdx_57 ^ rdx_65) ^ rdx_69) ^ rdx_75) ^ 0x9e3779a4), 0x15));
  1115. int32_t rdx_79 = (RORD(((((rdx_59 ^ rdx_67) ^ rdx_71) ^ rdx_77) ^ 0x9e3779a7), 0x15));
  1116. int32_t rdx_81 = (RORD(((((rdx_61 ^ rdx_69) ^ rdx_75) ^ rdx_79) ^ 0x9e3779a6), 0x15));
  1117. int32_t var_150_1 = (rdx_77 ^ rdx_81);
  1118. int32_t var_158_1 = (!rdx_81);
  1119. int32_t var_154_1 = (rdx_79 ^ var_158_1);
  1120. int32_t var_158_2 = (var_158_1 ^ rdx_75);
  1121. int32_t var_150_3 = ((var_150_1 & var_158_2) ^ var_154_1);
  1122. int32_t var_15c_1 = (var_150_1 ^ var_158_2);
  1123. int32_t var_14c_1 = (rdx_75 ^ var_15c_1);
  1124. int32_t var_154_3 = ((var_154_1 & var_15c_1) ^ var_14c_1);
  1125. int32_t var_14c_2 = (var_14c_1 & var_150_3);
  1126. int32_t var_158_3 = (var_158_2 ^ var_14c_2);
  1127. *(arg1 + 0x70) = var_150_3;
  1128. int32_t var_3c_29 = 0x1d;
  1129. *(arg1 + 0x74) = (((var_15c_1 | var_150_3) ^ var_14c_2) ^ (var_154_3 & var_158_3));
  1130. int32_t var_3c_30 = 0x1e;
  1131. *(arg1 + 0x78) = (!((var_14c_2 | var_158_3) ^ var_154_3));
  1132. int32_t var_3c_31 = 0x1f;
  1133. *(arg1 + 0x7c) = var_158_3;
  1134. int32_t var_3c_32 = 0x20;
  1135. int32_t rdx_85 = (RORD(((((rdx_65 ^ rdx_71) ^ rdx_77) ^ rdx_81) ^ 0x9e377999), 0x15));
  1136. int32_t rdx_87 = (RORD(((((rdx_67 ^ rdx_75) ^ rdx_79) ^ rdx_85) ^ 0x9e377998), 0x15));
  1137. int32_t rdx_89 = (RORD(((((rdx_69 ^ rdx_77) ^ rdx_81) ^ rdx_87) ^ 0x9e37799b), 0x15));
  1138. int32_t rdx_91 = (RORD(((((rdx_71 ^ rdx_79) ^ rdx_85) ^ rdx_89) ^ 0x9e37799a), 0x15));
  1139. int32_t var_170_1 = (rdx_85 | rdx_91);
  1140. int32_t var_17c_1 = (rdx_91 ^ rdx_87);
  1141. int32_t var_174_1 = (rdx_87 & rdx_85);
  1142. int32_t var_178_1 = (rdx_89 ^ var_17c_1);
  1143. int32_t var_180_2 = ((rdx_85 ^ rdx_89) | var_174_1);
  1144. int32_t var_17c_3 = ((var_17c_1 & var_170_1) ^ var_180_2);
  1145. int32_t var_170_2 = (var_170_1 ^ var_174_1);
  1146. int32_t var_174_4 = (((var_174_1 ^ var_17c_3) | var_170_2) ^ var_178_1);
  1147. *(arg1 + 0x80) = ((var_174_4 | var_17c_3) ^ (var_170_2 ^ var_17c_3));
  1148. int32_t var_3c_33 = 0x21;
  1149. *(arg1 + 0x84) = var_174_4;
  1150. int32_t var_3c_34 = 0x22;
  1151. *(arg1 + 0x88) = var_17c_3;
  1152. int32_t var_3c_35 = 0x23;
  1153. *(arg1 + 0x8c) = ((var_180_2 & var_170_2) ^ var_178_1);
  1154. int32_t var_3c_36 = 0x24;
  1155. int32_t rdx_95 = (RORD(((((rdx_75 ^ rdx_81) ^ rdx_87) ^ rdx_91) ^ 0x9e37799d), 0x15));
  1156. int32_t rdx_97 = (RORD(((((rdx_77 ^ rdx_85) ^ rdx_89) ^ rdx_95) ^ 0x9e37799c), 0x15));
  1157. int32_t rdx_99 = (RORD(((((rdx_79 ^ rdx_87) ^ rdx_91) ^ rdx_97) ^ 0x9e37799f), 0x15));
  1158. int32_t rdx_101 = (RORD(((((rdx_81 ^ rdx_89) ^ rdx_95) ^ rdx_99) ^ 0x9e37799e), 0x15));
  1159. int32_t var_194_2 = ((rdx_95 & rdx_99) ^ rdx_101);
  1160. int32_t var_19c_2 = ((rdx_99 ^ rdx_97) ^ var_194_2);
  1161. int32_t var_1a0_2 = ((rdx_101 | rdx_95) ^ rdx_97);
  1162. int32_t var_1a4_1 = (rdx_95 ^ var_19c_2);
  1163. int32_t var_1a0_4 = ((var_1a0_2 | var_1a4_1) ^ var_194_2);
  1164. int32_t var_1a4_2 = (var_1a4_1 ^ (var_194_2 & var_1a0_2));
  1165. *(arg1 + 0x90) = var_19c_2;
  1166. int32_t var_3c_37 = 0x25;
  1167. *(arg1 + 0x94) = var_1a0_4;
  1168. int32_t var_3c_38 = 0x26;
  1169. *(arg1 + 0x98) = ((var_1a0_2 ^ var_1a0_4) ^ var_1a4_2);
  1170. int32_t var_3c_39 = 0x27;
  1171. *(arg1 + 0x9c) = (!var_1a4_2);
  1172. int32_t var_3c_40 = 0x28;
  1173. int32_t rdx_105 = (RORD(((((rdx_85 ^ rdx_91) ^ rdx_97) ^ rdx_101) ^ 0x9e377991), 0x15));
  1174. int32_t rdx_107 = (RORD(((((rdx_87 ^ rdx_95) ^ rdx_99) ^ rdx_105) ^ 0x9e377990), 0x15));
  1175. int32_t rdx_109 = (RORD(((((rdx_89 ^ rdx_97) ^ rdx_101) ^ rdx_107) ^ 0x9e377993), 0x15));
  1176. int32_t rdx_111 = (RORD(((((rdx_91 ^ rdx_99) ^ rdx_105) ^ rdx_109) ^ 0x9e377992), 0x15));
  1177. int32_t var_1b8_1 = (!rdx_105);
  1178. int32_t var_1b8_2 = (var_1b8_1 & rdx_107);
  1179. int32_t var_1c0_2 = ((!rdx_109) ^ var_1b8_2);
  1180. int32_t var_1b8_3 = (var_1b8_2 | rdx_111);
  1181. int32_t var_1c4_1 = (rdx_111 ^ var_1c0_2);
  1182. int32_t var_1bc_1 = (rdx_107 ^ var_1b8_3);
  1183. int32_t var_1b8_4 = (var_1b8_3 ^ var_1b8_1);
  1184. int32_t var_1c8_1 = (var_1b8_1 | var_1bc_1);
  1185. int32_t var_1bc_2 = (var_1bc_1 ^ var_1c4_1);
  1186. int32_t var_1c0_4 = ((var_1c0_2 | var_1b8_4) & var_1c8_1);
  1187. int32_t var_1b8_5 = (var_1b8_4 ^ var_1bc_2);
  1188. *(arg1 + 0xa0) = var_1c0_4;
  1189. int32_t var_3c_41 = 0x29;
  1190. *(arg1 + 0xa4) = ((var_1b8_5 & var_1c0_4) ^ var_1c8_1);
  1191. int32_t var_3c_42 = 0x2a;
  1192. *(arg1 + 0xa8) = var_1c4_1;
  1193. int32_t var_3c_43 = 0x2b;
  1194. *(arg1 + 0xac) = ((var_1bc_2 & var_1c0_4) ^ var_1b8_5);
  1195. int32_t var_3c_44 = 0x2c;
  1196. int32_t rdx_115 = (RORD(((((rdx_95 ^ rdx_101) ^ rdx_107) ^ rdx_111) ^ 0x9e377995), 0x15));
  1197. int32_t rdx_117 = (RORD(((((rdx_97 ^ rdx_105) ^ rdx_109) ^ rdx_115) ^ 0x9e377994), 0x15));
  1198. int32_t rdx_119 = (RORD(((((rdx_99 ^ rdx_107) ^ rdx_111) ^ rdx_117) ^ 0x9e377997), 0x15));
  1199. int32_t rdx_121 = (RORD(((((rdx_101 ^ rdx_109) ^ rdx_115) ^ rdx_119) ^ 0x9e377996), 0x15));
  1200. int32_t var_1e8_1 = (rdx_121 ^ rdx_115);
  1201. int32_t var_1ec_1 = (rdx_117 ^ rdx_119);
  1202. int32_t var_1e0_2 = ((rdx_117 & var_1e8_1) ^ rdx_115);
  1203. int32_t var_1dc_2 = ((rdx_115 | var_1e8_1) ^ var_1ec_1);
  1204. int32_t var_1ec_2 = (var_1ec_1 ^ var_1e8_1);
  1205. int32_t var_1e8_2 = (var_1e8_1 ^ rdx_119);
  1206. int32_t var_1ec_4 = ((!var_1ec_2) | var_1e0_2);
  1207. int32_t var_1e8_3 = (var_1e8_2 | var_1dc_2);
  1208. *(arg1 + 0xb0) = (((var_1e0_2 ^ var_1e8_2) ^ var_1ec_4) ^ var_1e8_3);
  1209. int32_t var_3c_45 = 0x2d;
  1210. *(arg1 + 0xb4) = (var_1ec_4 ^ var_1e8_3);
  1211. int32_t var_3c_46 = 0x2e;
  1212. *(arg1 + 0xb8) = ((rdx_119 | var_1e0_2) ^ var_1ec_2);
  1213. int32_t var_3c_47 = 0x2f;
  1214. *(arg1 + 0xbc) = var_1dc_2;
  1215. int32_t var_3c_48 = 0x30;
  1216. int32_t rdx_125 = (RORD(((((rdx_105 ^ rdx_111) ^ rdx_117) ^ rdx_121) ^ 0x9e377989), 0x15));
  1217. int32_t rdx_127 = (RORD(((((rdx_107 ^ rdx_115) ^ rdx_119) ^ rdx_125) ^ 0x9e377988), 0x15));
  1218. int32_t rdx_129 = (RORD(((((rdx_109 ^ rdx_117) ^ rdx_121) ^ rdx_127) ^ 0x9e37798b), 0x15));
  1219. int32_t rdx_131 = (RORD(((((rdx_111 ^ rdx_119) ^ rdx_125) ^ rdx_129) ^ 0x9e37798a), 0x15));
  1220. int32_t var_204_2 = ((rdx_127 | rdx_129) ^ rdx_131);
  1221. int32_t var_210_1 = (rdx_127 ^ rdx_129);
  1222. int32_t var_208_1 = (rdx_129 ^ var_204_2);
  1223. int32_t var_210_2 = (var_210_1 ^ var_208_1);
  1224. int32_t var_200_2 = ((rdx_125 | var_210_2) ^ var_208_1);
  1225. int32_t var_204_5 = (((var_204_2 | var_210_2) ^ rdx_125) ^ var_210_2);
  1226. *(arg1 + 0xc0) = (var_210_2 ^ ((!(var_208_1 ^ var_204_5)) | var_200_2));
  1227. int32_t var_3c_49 = 0x31;
  1228. *(arg1 + 0xc4) = (((rdx_131 | var_210_1) & rdx_125) ^ var_204_2);
  1229. int32_t var_3c_50 = 0x32;
  1230. *(arg1 + 0xc8) = ((var_204_5 & var_200_2) ^ var_210_2);
  1231. int32_t var_3c_51 = 0x33;
  1232. *(arg1 + 0xcc) = var_200_2;
  1233. int32_t var_3c_52 = 0x34;
  1234. int32_t rdx_135 = (RORD(((((rdx_115 ^ rdx_121) ^ rdx_127) ^ rdx_131) ^ 0x9e37798d), 0x15));
  1235. int32_t rdx_137 = (RORD(((((rdx_117 ^ rdx_125) ^ rdx_129) ^ rdx_135) ^ 0x9e37798c), 0x15));
  1236. int32_t rdx_139 = (RORD(((((rdx_119 ^ rdx_127) ^ rdx_131) ^ rdx_137) ^ 0x9e37798f), 0x15));
  1237. int32_t rdx_141 = (RORD(((((rdx_121 ^ rdx_129) ^ rdx_135) ^ rdx_139) ^ 0x9e37798e), 0x15));
  1238. int32_t var_22c_1 = (!rdx_139);
  1239. int32_t var_224_1 = (rdx_135 ^ rdx_141);
  1240. int32_t var_230_2 = ((rdx_141 & rdx_135) ^ var_22c_1);
  1241. int32_t var_228_1 = (rdx_137 ^ var_230_2);
  1242. int32_t var_224_2 = (var_224_1 | var_228_1);
  1243. int32_t var_22c_4 = (((var_22c_1 | rdx_141) ^ var_224_1) ^ var_228_1);
  1244. int32_t var_224_4 = ((var_224_2 | var_230_2) ^ var_22c_4);
  1245. int32_t var_234_3 = (((rdx_141 ^ var_224_2) ^ var_230_2) ^ var_224_4);
  1246. *(arg1 + 0xd0) = var_224_4;
  1247. int32_t var_3c_53 = 0x35;
  1248. *(arg1 + 0xd4) = var_228_1;
  1249. int32_t var_3c_54 = 0x36;
  1250. *(arg1 + 0xd8) = var_234_3;
  1251. int32_t var_3c_55 = 0x37;
  1252. *(arg1 + 0xdc) = ((var_22c_4 & var_234_3) ^ (!var_230_2));
  1253. int32_t var_3c_56 = 0x38;
  1254. int32_t rdx_145 = (RORD(((((rdx_125 ^ rdx_131) ^ rdx_137) ^ rdx_141) ^ 0x9e377981), 0x15));
  1255. int32_t rdx_147 = (RORD(((((rdx_127 ^ rdx_135) ^ rdx_139) ^ rdx_145) ^ 0x9e377980), 0x15));
  1256. int32_t rdx_149 = (RORD(((((rdx_129 ^ rdx_137) ^ rdx_141) ^ rdx_147) ^ 0x9e377983), 0x15));
  1257. int32_t rdx_151 = (RORD(((((rdx_131 ^ rdx_139) ^ rdx_145) ^ rdx_149) ^ 0x9e377982), 0x15));
  1258. int32_t var_248_1 = (rdx_145 ^ rdx_147);
  1259. int32_t var_24c_1 = (rdx_147 ^ rdx_151);
  1260. int32_t var_254_1 = (!rdx_151);
  1261. int32_t var_250_1 = (rdx_149 ^ var_254_1);
  1262. int32_t var_24c_3 = ((var_24c_1 & var_248_1) ^ var_250_1);
  1263. int32_t var_250_2 = (var_250_1 | var_24c_1);
  1264. int32_t var_254_3 = ((var_254_1 & var_24c_3) ^ var_248_1);
  1265. int32_t var_258_3 = (((var_24c_1 ^ var_254_1) ^ var_24c_3) ^ var_250_2);
  1266. *(arg1 + 0xe0) = var_24c_3;
  1267. int32_t var_3c_57 = 0x39;
  1268. *(arg1 + 0xe4) = var_254_3;
  1269. int32_t var_3c_58 = 0x3a;
  1270. *(arg1 + 0xe8) = ((var_248_1 & var_254_3) ^ var_258_3);
  1271. int32_t var_3c_59 = 0x3b;
  1272. *(arg1 + 0xec) = ((!(var_250_2 ^ var_248_1)) ^ (var_258_3 | var_254_3));
  1273. int32_t var_3c_60 = 0x3c;
  1274. int32_t rdx_155 = (RORD(((((rdx_135 ^ rdx_141) ^ rdx_147) ^ rdx_151) ^ 0x9e377985), 0x15));
  1275. int32_t rdx_157 = (RORD(((((rdx_137 ^ rdx_145) ^ rdx_149) ^ rdx_155) ^ 0x9e377984), 0x15));
  1276. int32_t rdx_159 = (RORD(((((rdx_139 ^ rdx_147) ^ rdx_151) ^ rdx_157) ^ 0x9e377987), 0x15));
  1277. int32_t rdx_161 = (RORD(((((rdx_141 ^ rdx_149) ^ rdx_155) ^ rdx_159) ^ 0x9e377986), 0x15));
  1278. int32_t var_270_1 = (rdx_157 ^ rdx_161);
  1279. int32_t var_278_1 = (!rdx_161);
  1280. int32_t var_274_1 = (rdx_159 ^ var_278_1);
  1281. int32_t var_278_2 = (var_278_1 ^ rdx_155);
  1282. int32_t var_270_3 = ((var_270_1 & var_278_2) ^ var_274_1);
  1283. int32_t var_27c_1 = (var_270_1 ^ var_278_2);
  1284. int32_t var_26c_1 = (rdx_155 ^ var_27c_1);
  1285. int32_t var_274_3 = ((var_274_1 & var_27c_1) ^ var_26c_1);
  1286. int32_t var_26c_2 = (var_26c_1 & var_270_3);
  1287. int32_t var_278_3 = (var_278_2 ^ var_26c_2);
  1288. *(arg1 + 0xf0) = var_270_3;
  1289. int32_t var_3c_61 = 0x3d;
  1290. *(arg1 + 0xf4) = (((var_27c_1 | var_270_3) ^ var_26c_2) ^ (var_274_3 & var_278_3));
  1291. int32_t var_3c_62 = 0x3e;
  1292. *(arg1 + 0xf8) = (!((var_26c_2 | var_278_3) ^ var_274_3));
  1293. int32_t var_3c_63 = 0x3f;
  1294. *(arg1 + 0xfc) = var_278_3;
  1295. int32_t var_3c_64 = 0x40;
  1296. int32_t rdx_165 = (RORD(((((rdx_145 ^ rdx_151) ^ rdx_157) ^ rdx_161) ^ 0x9e3779f9), 0x15));
  1297. int32_t rdx_167 = (RORD(((((rdx_147 ^ rdx_155) ^ rdx_159) ^ rdx_165) ^ 0x9e3779f8), 0x15));
  1298. int32_t rdx_169 = (RORD(((((rdx_149 ^ rdx_157) ^ rdx_161) ^ rdx_167) ^ 0x9e3779fb), 0x15));
  1299. int32_t rdx_171 = (RORD(((((rdx_151 ^ rdx_159) ^ rdx_165) ^ rdx_169) ^ 0x9e3779fa), 0x15));
  1300. int32_t var_290_1 = (rdx_165 | rdx_171);
  1301. int32_t var_29c_1 = (rdx_171 ^ rdx_167);
  1302. int32_t var_294_1 = (rdx_167 & rdx_165);
  1303. int32_t var_298_1 = (rdx_169 ^ var_29c_1);
  1304. int32_t var_2a0_2 = ((rdx_165 ^ rdx_169) | var_294_1);
  1305. int32_t var_29c_3 = ((var_29c_1 & var_290_1) ^ var_2a0_2);
  1306. int32_t var_290_2 = (var_290_1 ^ var_294_1);
  1307. int32_t var_294_4 = (((var_294_1 ^ var_29c_3) | var_290_2) ^ var_298_1);
  1308. *(arg1 + 0x100) = ((var_294_4 | var_29c_3) ^ (var_290_2 ^ var_29c_3));
  1309. int32_t var_3c_65 = 0x41;
  1310. *(arg1 + 0x104) = var_294_4;
  1311. int32_t var_3c_66 = 0x42;
  1312. *(arg1 + 0x108) = var_29c_3;
  1313. int32_t var_3c_67 = 0x43;
  1314. *(arg1 + 0x10c) = ((var_2a0_2 & var_290_2) ^ var_298_1);
  1315. int32_t var_3c_68 = 0x44;
  1316. int32_t rdx_175 = (RORD(((((rdx_155 ^ rdx_161) ^ rdx_167) ^ rdx_171) ^ 0x9e3779fd), 0x15));
  1317. int32_t rdx_177 = (RORD(((((rdx_157 ^ rdx_165) ^ rdx_169) ^ rdx_175) ^ 0x9e3779fc), 0x15));
  1318. int32_t rdx_179 = (RORD(((((rdx_159 ^ rdx_167) ^ rdx_171) ^ rdx_177) ^ 0x9e3779ff), 0x15));
  1319. int32_t rdx_181 = (RORD(((((rdx_161 ^ rdx_169) ^ rdx_175) ^ rdx_179) ^ 0x9e3779fe), 0x15));
  1320. int32_t var_2b4_2 = ((rdx_175 & rdx_179) ^ rdx_181);
  1321. int32_t var_2bc_2 = ((rdx_179 ^ rdx_177) ^ var_2b4_2);
  1322. int32_t var_2c0_2 = ((rdx_181 | rdx_175) ^ rdx_177);
  1323. int32_t var_2c4_1 = (rdx_175 ^ var_2bc_2);
  1324. int32_t var_2c0_4 = ((var_2c0_2 | var_2c4_1) ^ var_2b4_2);
  1325. int32_t var_2c4_2 = (var_2c4_1 ^ (var_2b4_2 & var_2c0_2));
  1326. *(arg1 + 0x110) = var_2bc_2;
  1327. int32_t var_3c_69 = 0x45;
  1328. *(arg1 + 0x114) = var_2c0_4;
  1329. int32_t var_3c_70 = 0x46;
  1330. *(arg1 + 0x118) = ((var_2c0_2 ^ var_2c0_4) ^ var_2c4_2);
  1331. int32_t var_3c_71 = 0x47;
  1332. *(arg1 + 0x11c) = (!var_2c4_2);
  1333. int32_t var_3c_72 = 0x48;
  1334. int32_t rdx_185 = (RORD(((((rdx_165 ^ rdx_171) ^ rdx_177) ^ rdx_181) ^ 0x9e3779f1), 0x15));
  1335. int32_t rdx_187 = (RORD(((((rdx_167 ^ rdx_175) ^ rdx_179) ^ rdx_185) ^ 0x9e3779f0), 0x15));
  1336. int32_t rdx_189 = (RORD(((((rdx_169 ^ rdx_177) ^ rdx_181) ^ rdx_187) ^ 0x9e3779f3), 0x15));
  1337. int32_t rdx_191 = (RORD(((((rdx_171 ^ rdx_179) ^ rdx_185) ^ rdx_189) ^ 0x9e3779f2), 0x15));
  1338. int32_t var_2d8_1 = (!rdx_185);
  1339. int32_t var_2d8_2 = (var_2d8_1 & rdx_187);
  1340. int32_t var_2e0_2 = ((!rdx_189) ^ var_2d8_2);
  1341. int32_t var_2d8_3 = (var_2d8_2 | rdx_191);
  1342. int32_t var_2e4_1 = (rdx_191 ^ var_2e0_2);
  1343. int32_t var_2dc_1 = (rdx_187 ^ var_2d8_3);
  1344. int32_t var_2d8_4 = (var_2d8_3 ^ var_2d8_1);
  1345. int32_t var_2e8_1 = (var_2d8_1 | var_2dc_1);
  1346. int32_t var_2dc_2 = (var_2dc_1 ^ var_2e4_1);
  1347. int32_t var_2e0_4 = ((var_2e0_2 | var_2d8_4) & var_2e8_1);
  1348. int32_t var_2d8_5 = (var_2d8_4 ^ var_2dc_2);
  1349. *(arg1 + 0x120) = var_2e0_4;
  1350. int32_t var_3c_73 = 0x49;
  1351. *(arg1 + 0x124) = ((var_2d8_5 & var_2e0_4) ^ var_2e8_1);
  1352. int32_t var_3c_74 = 0x4a;
  1353. *(arg1 + 0x128) = var_2e4_1;
  1354. int32_t var_3c_75 = 0x4b;
  1355. *(arg1 + 0x12c) = ((var_2dc_2 & var_2e0_4) ^ var_2d8_5);
  1356. int32_t var_3c_76 = 0x4c;
  1357. int32_t rdx_195 = (RORD(((((rdx_175 ^ rdx_181) ^ rdx_187) ^ rdx_191) ^ 0x9e3779f5), 0x15));
  1358. int32_t rdx_197 = (RORD(((((rdx_177 ^ rdx_185) ^ rdx_189) ^ rdx_195) ^ 0x9e3779f4), 0x15));
  1359. int32_t rdx_199 = (RORD(((((rdx_179 ^ rdx_187) ^ rdx_191) ^ rdx_197) ^ 0x9e3779f7), 0x15));
  1360. int32_t rdx_201 = (RORD(((((rdx_181 ^ rdx_189) ^ rdx_195) ^ rdx_199) ^ 0x9e3779f6), 0x15));
  1361. int32_t var_308_1 = (rdx_201 ^ rdx_195);
  1362. int32_t var_30c_1 = (rdx_197 ^ rdx_199);
  1363. int32_t var_300_2 = ((rdx_197 & var_308_1) ^ rdx_195);
  1364. int32_t var_2fc_2 = ((rdx_195 | var_308_1) ^ var_30c_1);
  1365. int32_t var_30c_2 = (var_30c_1 ^ var_308_1);
  1366. int32_t var_308_2 = (var_308_1 ^ rdx_199);
  1367. int32_t var_30c_4 = ((!var_30c_2) | var_300_2);
  1368. int32_t var_308_3 = (var_308_2 | var_2fc_2);
  1369. *(arg1 + 0x130) = (((var_300_2 ^ var_308_2) ^ var_30c_4) ^ var_308_3);
  1370. int32_t var_3c_77 = 0x4d;
  1371. *(arg1 + 0x134) = (var_30c_4 ^ var_308_3);
  1372. int32_t var_3c_78 = 0x4e;
  1373. *(arg1 + 0x138) = ((rdx_199 | var_300_2) ^ var_30c_2);
  1374. int32_t var_3c_79 = 0x4f;
  1375. *(arg1 + 0x13c) = var_2fc_2;
  1376. int32_t var_3c_80 = 0x50;
  1377. int32_t rdx_205 = (RORD(((((rdx_185 ^ rdx_191) ^ rdx_197) ^ rdx_201) ^ 0x9e3779e9), 0x15));
  1378. int32_t rdx_207 = (RORD(((((rdx_187 ^ rdx_195) ^ rdx_199) ^ rdx_205) ^ 0x9e3779e8), 0x15));
  1379. int32_t rdx_209 = (RORD(((((rdx_189 ^ rdx_197) ^ rdx_201) ^ rdx_207) ^ 0x9e3779eb), 0x15));
  1380. int32_t rdx_211 = (RORD(((((rdx_191 ^ rdx_199) ^ rdx_205) ^ rdx_209) ^ 0x9e3779ea), 0x15));
  1381. int32_t var_324_2 = ((rdx_207 | rdx_209) ^ rdx_211);
  1382. int32_t var_330_1 = (rdx_207 ^ rdx_209);
  1383. int32_t var_328_1 = (rdx_209 ^ var_324_2);
  1384. int32_t var_330_2 = (var_330_1 ^ var_328_1);
  1385. int32_t var_320_2 = ((rdx_205 | var_330_2) ^ var_328_1);
  1386. int32_t var_324_5 = (((var_324_2 | var_330_2) ^ rdx_205) ^ var_330_2);
  1387. *(arg1 + 0x140) = (var_330_2 ^ ((!(var_328_1 ^ var_324_5)) | var_320_2));
  1388. int32_t var_3c_81 = 0x51;
  1389. *(arg1 + 0x144) = (((rdx_211 | var_330_1) & rdx_205) ^ var_324_2);
  1390. int32_t var_3c_82 = 0x52;
  1391. *(arg1 + 0x148) = ((var_324_5 & var_320_2) ^ var_330_2);
  1392. int32_t var_3c_83 = 0x53;
  1393. *(arg1 + 0x14c) = var_320_2;
  1394. int32_t var_3c_84 = 0x54;
  1395. int32_t rdx_215 = (RORD(((((rdx_195 ^ rdx_201) ^ rdx_207) ^ rdx_211) ^ 0x9e3779ed), 0x15));
  1396. int32_t rdx_217 = (RORD(((((rdx_197 ^ rdx_205) ^ rdx_209) ^ rdx_215) ^ 0x9e3779ec), 0x15));
  1397. int32_t rdx_219 = (RORD(((((rdx_199 ^ rdx_207) ^ rdx_211) ^ rdx_217) ^ 0x9e3779ef), 0x15));
  1398. int32_t rdx_221 = (RORD(((((rdx_201 ^ rdx_209) ^ rdx_215) ^ rdx_219) ^ 0x9e3779ee), 0x15));
  1399. int32_t var_34c_1 = (!rdx_219);
  1400. int32_t var_344_1 = (rdx_215 ^ rdx_221);
  1401. int32_t var_350_2 = ((rdx_221 & rdx_215) ^ var_34c_1);
  1402. int32_t var_348_1 = (rdx_217 ^ var_350_2);
  1403. int32_t var_344_2 = (var_344_1 | var_348_1);
  1404. int32_t var_34c_4 = (((var_34c_1 | rdx_221) ^ var_344_1) ^ var_348_1);
  1405. int32_t var_344_4 = ((var_344_2 | var_350_2) ^ var_34c_4);
  1406. int32_t var_354_3 = (((rdx_221 ^ var_344_2) ^ var_350_2) ^ var_344_4);
  1407. *(arg1 + 0x150) = var_344_4;
  1408. int32_t var_3c_85 = 0x55;
  1409. *(arg1 + 0x154) = var_348_1;
  1410. int32_t var_3c_86 = 0x56;
  1411. *(arg1 + 0x158) = var_354_3;
  1412. int32_t var_3c_87 = 0x57;
  1413. *(arg1 + 0x15c) = ((var_34c_4 & var_354_3) ^ (!var_350_2));
  1414. int32_t var_3c_88 = 0x58;
  1415. int32_t rdx_225 = (RORD(((((rdx_205 ^ rdx_211) ^ rdx_217) ^ rdx_221) ^ 0x9e3779e1), 0x15));
  1416. int32_t rdx_227 = (RORD(((((rdx_207 ^ rdx_215) ^ rdx_219) ^ rdx_225) ^ 0x9e3779e0), 0x15));
  1417. int32_t rdx_229 = (RORD(((((rdx_209 ^ rdx_217) ^ rdx_221) ^ rdx_227) ^ 0x9e3779e3), 0x15));
  1418. int32_t rdx_231 = (RORD(((((rdx_211 ^ rdx_219) ^ rdx_225) ^ rdx_229) ^ 0x9e3779e2), 0x15));
  1419. int32_t var_368_1 = (rdx_225 ^ rdx_227);
  1420. int32_t var_36c_1 = (rdx_227 ^ rdx_231);
  1421. int32_t var_374_1 = (!rdx_231);
  1422. int32_t var_370_1 = (rdx_229 ^ var_374_1);
  1423. int32_t var_36c_3 = ((var_36c_1 & var_368_1) ^ var_370_1);
  1424. int32_t var_370_2 = (var_370_1 | var_36c_1);
  1425. int32_t var_374_3 = ((var_374_1 & var_36c_3) ^ var_368_1);
  1426. int32_t var_378_3 = (((var_36c_1 ^ var_374_1) ^ var_36c_3) ^ var_370_2);
  1427. *(arg1 + 0x160) = var_36c_3;
  1428. int32_t var_3c_89 = 0x59;
  1429. *(arg1 + 0x164) = var_374_3;
  1430. int32_t var_3c_90 = 0x5a;
  1431. *(arg1 + 0x168) = ((var_368_1 & var_374_3) ^ var_378_3);
  1432. int32_t var_3c_91 = 0x5b;
  1433. *(arg1 + 0x16c) = ((!(var_370_2 ^ var_368_1)) ^ (var_378_3 | var_374_3));
  1434. int32_t var_3c_92 = 0x5c;
  1435. int32_t rdx_235 = (RORD(((((rdx_215 ^ rdx_221) ^ rdx_227) ^ rdx_231) ^ 0x9e3779e5), 0x15));
  1436. int32_t rdx_237 = (RORD(((((rdx_217 ^ rdx_225) ^ rdx_229) ^ rdx_235) ^ 0x9e3779e4), 0x15));
  1437. int32_t rdx_239 = (RORD(((((rdx_219 ^ rdx_227) ^ rdx_231) ^ rdx_237) ^ 0x9e3779e7), 0x15));
  1438. int32_t rdx_241 = (RORD(((((rdx_221 ^ rdx_229) ^ rdx_235) ^ rdx_239) ^ 0x9e3779e6), 0x15));
  1439. int32_t var_390_1 = (rdx_237 ^ rdx_241);
  1440. int32_t var_398_1 = (!rdx_241);
  1441. int32_t var_394_1 = (rdx_239 ^ var_398_1);
  1442. int32_t var_398_2 = (var_398_1 ^ rdx_235);
  1443. int32_t var_390_3 = ((var_390_1 & var_398_2) ^ var_394_1);
  1444. int32_t var_39c_1 = (var_390_1 ^ var_398_2);
  1445. int32_t var_38c_1 = (rdx_235 ^ var_39c_1);
  1446. int32_t var_394_3 = ((var_394_1 & var_39c_1) ^ var_38c_1);
  1447. int32_t var_38c_2 = (var_38c_1 & var_390_3);
  1448. int32_t var_398_3 = (var_398_2 ^ var_38c_2);
  1449. *(arg1 + 0x170) = var_390_3;
  1450. int32_t var_3c_93 = 0x5d;
  1451. *(arg1 + 0x174) = (((var_39c_1 | var_390_3) ^ var_38c_2) ^ (var_394_3 & var_398_3));
  1452. int32_t var_3c_94 = 0x5e;
  1453. *(arg1 + 0x178) = (!((var_38c_2 | var_398_3) ^ var_394_3));
  1454. int32_t var_3c_95 = 0x5f;
  1455. *(arg1 + 0x17c) = var_398_3;
  1456. int32_t var_3c_96 = 0x60;
  1457. int32_t rdx_245 = (RORD(((((rdx_225 ^ rdx_231) ^ rdx_237) ^ rdx_241) ^ 0x9e3779d9), 0x15));
  1458. int32_t rdx_247 = (RORD(((((rdx_227 ^ rdx_235) ^ rdx_239) ^ rdx_245) ^ 0x9e3779d8), 0x15));
  1459. int32_t rdx_249 = (RORD(((((rdx_229 ^ rdx_237) ^ rdx_241) ^ rdx_247) ^ 0x9e3779db), 0x15));
  1460. int32_t rdx_251 = (RORD(((((rdx_231 ^ rdx_239) ^ rdx_245) ^ rdx_249) ^ 0x9e3779da), 0x15));
  1461. int32_t var_3b0_1 = (rdx_245 | rdx_251);
  1462. int32_t var_3bc_1 = (rdx_251 ^ rdx_247);
  1463. int32_t var_3b4_1 = (rdx_247 & rdx_245);
  1464. int32_t var_3b8_1 = (rdx_249 ^ var_3bc_1);
  1465. int32_t var_3c0_2 = ((rdx_245 ^ rdx_249) | var_3b4_1);
  1466. int32_t var_3bc_3 = ((var_3bc_1 & var_3b0_1) ^ var_3c0_2);
  1467. int32_t var_3b0_2 = (var_3b0_1 ^ var_3b4_1);
  1468. int32_t var_3b4_4 = (((var_3b4_1 ^ var_3bc_3) | var_3b0_2) ^ var_3b8_1);
  1469. *(arg1 + 0x180) = ((var_3b4_4 | var_3bc_3) ^ (var_3b0_2 ^ var_3bc_3));
  1470. int32_t var_3c_97 = 0x61;
  1471. *(arg1 + 0x184) = var_3b4_4;
  1472. int32_t var_3c_98 = 0x62;
  1473. *(arg1 + 0x188) = var_3bc_3;
  1474. int32_t var_3c_99 = 0x63;
  1475. *(arg1 + 0x18c) = ((var_3c0_2 & var_3b0_2) ^ var_3b8_1);
  1476. int32_t var_3c_100 = 0x64;
  1477. int64_t rax_1194 = (rax ^ *(fsbase + 0x28));
  1478. if (rax_1194 == 0)
  1479. {
  1480. return rax_1194;
  1481. }
  1482. __stack_chk_fail();
  1483. /* no return */
  1484. }
  1485. fprintf(stderr, "invalid key size: %lu\n", arg3);
  1486. exit(1);
  1487. /* no return */
  1488. }
  1489.  
  1490. uint64_t decode32le(char* arg1)
  1491. {
  1492. return ((arg1[3] << 0x18) | ((*arg1 | (arg1[1] << 8)) | (arg1[2] << 0x10)));
  1493. }
  1494.  
  1495. int64_t sosemanuk_init(int32_t* arg1, int32_t* arg2, int64_t arg3,
  1496. uint64_t arg4)
  1497. {
  1498. void* fsbase;
  1499. int64_t rax = *(fsbase + 0x28);
  1500. void var_28;
  1501. if (arg4 > 0xf)
  1502. {
  1503. memcpy(&var_28, arg3, 0x10);
  1504. }
  1505. else
  1506. {
  1507. if (arg4 != 0)
  1508. {
  1509. memcpy(&var_28, arg3, arg4);
  1510. }
  1511. memset((&var_28 + arg4), 0, (0x10 - arg4));
  1512. }
  1513. int32_t var_5c_1 = (decode32le(&var_28) ^ *arg2);
  1514. void var_24;
  1515. int32_t var_58_1 = (decode32le(&var_24) ^ arg2[1]);
  1516. void var_20;
  1517. int32_t var_54_1 = (decode32le(&var_20) ^ arg2[2]);
  1518. void var_1c;
  1519. int32_t var_50_2 = ((decode32le(&var_1c) ^ arg2[3]) ^ var_5c_1);
  1520. int32_t var_4c_1 = (var_58_1 ^ var_54_1);
  1521. int32_t var_58_3 = ((var_58_1 & var_50_2) ^ var_5c_1);
  1522. int32_t var_5c_3 = ((var_5c_1 | var_50_2) ^ var_4c_1);
  1523. int32_t var_4c_2 = (var_4c_1 ^ var_50_2);
  1524. int32_t var_50_3 = (var_50_2 ^ var_54_1);
  1525. int32_t var_4c_4 = ((!var_4c_2) | var_58_3);
  1526. int32_t var_50_4 = (var_50_3 | var_5c_3);
  1527. int32_t var_58_7 = (RORD((((var_58_3 ^ var_50_3) ^ var_4c_4) ^ var_50_4), 0x13));
  1528. int32_t var_54_4 = (RORD(((var_54_1 | var_58_3) ^ var_4c_2), 0x1d));
  1529. int32_t var_4c_7 = (RORD((var_54_4 ^ ((var_4c_4 ^ var_50_4) ^ var_58_7)), 0x1f));
  1530. int32_t var_5c_5 = (RORD(((var_5c_3 ^ var_54_4) ^ (var_58_7 << 3)), 0x19));
  1531. int32_t var_4c_8 = (var_4c_7 ^ arg2[5]);
  1532. int32_t var_5c_6 = (var_5c_5 ^ arg2[7]);
  1533. int32_t var_58_11 = (!((RORD((var_5c_5 ^ (var_58_7 ^ var_4c_7)), 0x1b)) ^ arg2[4]));
  1534. int32_t var_58_12 = (var_58_11 & var_4c_8);
  1535. int32_t var_54_9 = ((!((RORD(((var_54_4 ^ var_5c_5) ^ (var_4c_7 << 7)), 0xa)) ^ arg2[6])) ^ var_58_12);
  1536. int32_t var_58_13 = (var_58_12 | var_5c_6);
  1537. int32_t var_5c_7 = (var_5c_6 ^ var_54_9);
  1538. int32_t var_4c_9 = (var_4c_8 ^ var_58_13);
  1539. int32_t var_58_14 = (var_58_13 ^ var_58_11);
  1540. int32_t var_50_6 = (var_58_11 | var_4c_9);
  1541. int32_t var_4c_10 = (var_4c_9 ^ var_5c_7);
  1542. int32_t var_54_11 = ((var_54_9 | var_58_14) & var_50_6);
  1543. int32_t var_58_15 = (var_58_14 ^ var_4c_10);
  1544. int32_t var_54_12 = (RORD(var_54_11, 0x13));
  1545. int32_t var_5c_8 = (RORD(var_5c_7, 0x1d));
  1546. int32_t var_58_19 = (RORD((var_5c_8 ^ (((var_58_15 & var_54_11) ^ var_50_6) ^ var_54_12)), 0x1f));
  1547. int32_t var_4c_14 = (RORD(((((var_4c_10 & var_54_11) ^ var_58_15) ^ var_5c_8) ^ (var_54_12 << 3)), 0x19));
  1548. int32_t var_54_15 = ((RORD((var_4c_14 ^ (var_54_12 ^ var_58_19)), 0x1b)) ^ arg2[8]);
  1549. int32_t var_58_20 = (var_58_19 ^ arg2[9]);
  1550. int32_t var_5c_11 = ((RORD(((var_5c_8 ^ var_4c_14) ^ (var_58_19 << 7)), 0xa)) ^ arg2[0xa]);
  1551. int32_t var_4c_15 = (var_4c_14 ^ arg2[0xb]);
  1552. int32_t var_54_17 = ((var_54_15 & var_5c_11) ^ var_4c_15);
  1553. int32_t var_5c_13 = ((var_5c_11 ^ var_58_20) ^ var_54_17);
  1554. int32_t var_4c_17 = ((var_4c_15 | var_54_15) ^ var_58_20);
  1555. int32_t var_50_8 = (var_54_15 ^ var_5c_13);
  1556. int32_t var_4c_19 = ((var_4c_17 | var_50_8) ^ var_54_17);
  1557. int32_t var_50_9 = (var_50_8 ^ (var_54_17 & var_4c_17));
  1558. int32_t var_5c_14 = (RORD(var_5c_13, 0x13));
  1559. int32_t var_58_24 = (RORD(((var_4c_17 ^ var_4c_19) ^ var_50_9), 0x1d));
  1560. int32_t var_4c_21 = (RORD((var_58_24 ^ (var_4c_19 ^ var_5c_14)), 0x1f));
  1561. int32_t var_50_12 = (RORD((((!var_50_9) ^ var_58_24) ^ (var_5c_14 << 3)), 0x19));
  1562. int32_t var_5c_17 = ((RORD((var_50_12 ^ (var_5c_14 ^ var_4c_21)), 0x1b)) ^ arg2[0xc]);
  1563. int32_t var_4c_22 = (var_4c_21 ^ arg2[0xd]);
  1564. int32_t var_58_27 = ((RORD(((var_58_24 ^ var_50_12) ^ (var_4c_21 << 7)), 0xa)) ^ arg2[0xe]);
  1565. int32_t var_50_13 = (var_50_12 ^ arg2[0xf]);
  1566. int32_t var_5c_18 = (var_5c_17 | var_50_13);
  1567. int32_t var_50_14 = (var_50_13 ^ var_4c_22);
  1568. int32_t var_4c_23 = (var_4c_22 & var_5c_17);
  1569. int32_t var_58_28 = (var_58_27 ^ var_50_14);
  1570. int32_t var_54_21 = ((var_5c_17 ^ var_58_27) | var_4c_23);
  1571. int32_t var_50_16 = ((var_50_14 & var_5c_18) ^ var_54_21);
  1572. int32_t var_5c_19 = (var_5c_18 ^ var_4c_23);
  1573. int32_t var_4c_26 = (((var_4c_23 ^ var_50_16) | var_5c_19) ^ var_58_28);
  1574. int32_t var_4c_29 = (RORD(((var_4c_26 | var_50_16) ^ (var_5c_19 ^ var_50_16)), 0x13));
  1575. int32_t var_50_17 = (RORD(var_50_16, 0x1d));
  1576. int32_t var_58_31 = (RORD((var_50_17 ^ (var_4c_26 ^ var_4c_29)), 0x1f));
  1577. int32_t var_54_25 = (RORD(((((var_54_21 & var_5c_19) ^ var_58_28) ^ var_50_17) ^ (var_4c_29 << 3)), 0x19));
  1578. int32_t var_4c_32 = ((RORD((var_54_25 ^ (var_4c_29 ^ var_58_31)), 0x1b)) ^ arg2[0x10]);
  1579. int32_t var_54_26 = (var_54_25 ^ arg2[0x13]);
  1580. int32_t var_58_33 = ((var_58_31 ^ arg2[0x11]) ^ var_54_26);
  1581. int32_t var_54_27 = (!var_54_26);
  1582. int32_t var_50_21 = (((RORD(((var_50_17 ^ var_54_25) ^ (var_58_31 << 7)), 0xa)) ^ arg2[0x12]) ^ var_54_27);
  1583. int32_t var_54_28 = (var_54_27 ^ var_4c_32);
  1584. int32_t var_58_35 = ((var_58_33 & var_54_28) ^ var_50_21);
  1585. int32_t var_5c_22 = (var_58_33 ^ var_54_28);
  1586. int32_t var_4c_33 = (var_4c_32 ^ var_5c_22);
  1587. int32_t var_50_23 = ((var_50_21 & var_5c_22) ^ var_4c_33);
  1588. int32_t var_4c_34 = (var_4c_33 & var_58_35);
  1589. int32_t var_54_29 = (var_54_28 ^ var_4c_34);
  1590. int32_t var_58_36 = (RORD(var_58_35, 0x13));
  1591. int32_t var_4c_38 = (RORD((!((var_4c_34 | var_54_29) ^ var_50_23)), 0x1d));
  1592. int32_t var_5c_27 = (RORD((var_4c_38 ^ ((((var_5c_22 | var_58_35) ^ var_4c_34) ^ (var_50_23 & var_54_29)) ^ var_58_36)), 0x1f));
  1593. int32_t var_54_31 = (RORD(((var_54_29 ^ var_4c_38) ^ (var_58_36 << 3)), 0x19));
  1594. int32_t var_5c_28 = (var_5c_27 ^ arg2[0x15]);
  1595. int32_t var_54_32 = (var_54_31 ^ arg2[0x17]);
  1596. int32_t var_58_40 = (((RORD((var_54_31 ^ (var_58_36 ^ var_5c_27)), 0x1b)) ^ arg2[0x14]) ^ var_5c_28);
  1597. int32_t var_5c_29 = (var_5c_28 ^ var_54_32);
  1598. int32_t var_54_33 = (!var_54_32);
  1599. int32_t var_4c_42 = (((RORD(((var_4c_38 ^ var_54_31) ^ (var_5c_27 << 7)), 0xa)) ^ arg2[0x16]) ^ var_54_33);
  1600. int32_t var_5c_31 = ((var_5c_29 & var_58_40) ^ var_4c_42);
  1601. int32_t var_4c_43 = (var_4c_42 | var_5c_29);
  1602. int32_t var_54_35 = ((var_54_33 & var_5c_31) ^ var_58_40);
  1603. int32_t var_50_28 = (((var_5c_29 ^ var_54_33) ^ var_5c_31) ^ var_4c_43);
  1604. int32_t var_5c_32 = (RORD(var_5c_31, 0x13));
  1605. int32_t var_58_43 = (RORD(((var_58_40 & var_54_35) ^ var_50_28), 0x1d));
  1606. int32_t var_54_37 = (RORD((var_58_43 ^ (var_54_35 ^ var_5c_32)), 0x1f));
  1607. int32_t var_4c_48 = (RORD(((((!(var_4c_43 ^ var_58_40)) ^ (var_50_28 | var_54_35)) ^ var_58_43) ^ (var_5c_32 << 3)), 0x19));
  1608. int32_t var_5c_35 = ((RORD((var_4c_48 ^ (var_5c_32 ^ var_54_37)), 0x1b)) ^ arg2[0x18]);
  1609. int32_t var_4c_49 = (var_4c_48 ^ arg2[0x1b]);
  1610. int32_t var_58_47 = (!((RORD(((var_58_43 ^ var_4c_48) ^ (var_54_37 << 7)), 0xa)) ^ arg2[0x1a]));
  1611. int32_t var_5c_36 = (var_5c_35 ^ var_4c_49);
  1612. int32_t var_4c_51 = ((var_4c_49 & var_5c_35) ^ var_58_47);
  1613. int32_t var_54_39 = ((var_54_37 ^ arg2[0x19]) ^ var_4c_51);
  1614. int32_t var_5c_37 = (var_5c_36 | var_54_39);
  1615. int32_t var_58_50 = (((var_58_47 | var_4c_49) ^ var_5c_36) ^ var_54_39);
  1616. int32_t var_5c_39 = ((var_5c_37 | var_4c_51) ^ var_58_50);
  1617. int32_t var_50_33 = (((var_4c_49 ^ var_5c_37) ^ var_4c_51) ^ var_5c_39);
  1618. int32_t var_5c_40 = (RORD(var_5c_39, 0x13));
  1619. int32_t var_50_34 = (RORD(var_50_33, 0x1d));
  1620. int32_t var_54_41 = (RORD((var_50_34 ^ (var_54_39 ^ var_5c_40)), 0x1f));
  1621. int32_t var_58_54 = (RORD(((((var_58_50 & var_50_33) ^ (!var_4c_51)) ^ var_50_34) ^ (var_5c_40 << 3)), 0x19));
  1622. int32_t var_5c_43 = ((RORD((var_58_54 ^ (var_5c_40 ^ var_54_41)), 0x1b)) ^ arg2[0x1c]);
  1623. int32_t var_54_42 = (var_54_41 ^ arg2[0x1d]);
  1624. int32_t var_50_37 = ((RORD(((var_50_34 ^ var_58_54) ^ (var_54_41 << 7)), 0xa)) ^ arg2[0x1e]);
  1625. int32_t var_58_55 = (var_58_54 ^ arg2[0x1f]);
  1626. int32_t var_54_44 = ((var_54_42 | var_50_37) ^ var_58_55);
  1627. int32_t var_4c_54 = (var_54_42 ^ var_50_37);
  1628. int32_t var_50_38 = (var_50_37 ^ var_54_44);
  1629. int32_t var_4c_55 = (var_4c_54 ^ var_50_38);
  1630. int32_t var_5c_45 = ((var_5c_43 | var_4c_55) ^ var_50_38);
  1631. int32_t var_54_47 = (((var_54_44 | var_4c_55) ^ var_5c_43) ^ var_4c_55);
  1632. int32_t var_4c_57 = (RORD((var_4c_55 ^ ((!(var_50_38 ^ var_54_47)) | var_5c_45)), 0x13));
  1633. int32_t var_54_50 = (RORD(((var_54_47 & var_5c_45) ^ var_4c_55), 0x1d));
  1634. int32_t var_58_60 = (RORD((var_54_50 ^ ((((var_58_55 | var_4c_54) & var_5c_43) ^ var_54_44) ^ var_4c_57)), 0x1f));
  1635. int32_t var_5c_47 = (RORD(((var_5c_45 ^ var_54_50) ^ (var_4c_57 << 3)), 0x19));
  1636. int32_t var_4c_60 = ((RORD((var_5c_47 ^ (var_4c_57 ^ var_58_60)), 0x1b)) ^ arg2[0x20]);
  1637. int32_t var_58_61 = (var_58_60 ^ arg2[0x21]);
  1638. int32_t var_54_53 = ((RORD(((var_54_50 ^ var_5c_47) ^ (var_58_60 << 7)), 0xa)) ^ arg2[0x22]);
  1639. int32_t var_5c_49 = ((var_5c_47 ^ arg2[0x23]) ^ var_4c_60);
  1640. int32_t var_50_43 = (var_58_61 ^ var_54_53);
  1641. int32_t var_58_63 = ((var_58_61 & var_5c_49) ^ var_4c_60);
  1642. int32_t var_4c_62 = ((var_4c_60 | var_5c_49) ^ var_50_43);
  1643. int32_t var_50_44 = (var_50_43 ^ var_5c_49);
  1644. int32_t var_5c_50 = (var_5c_49 ^ var_54_53);
  1645. int32_t var_50_46 = ((!var_50_44) | var_58_63);
  1646. int32_t var_5c_51 = (var_5c_50 | var_4c_62);
  1647. int32_t var_58_67 = (RORD((((var_58_63 ^ var_5c_50) ^ var_50_46) ^ var_5c_51), 0x13));
  1648. int32_t var_54_56 = (RORD(((var_54_53 | var_58_63) ^ var_50_44), 0x1d));
  1649. int32_t var_50_49 = (RORD((var_54_56 ^ ((var_50_46 ^ var_5c_51) ^ var_58_67)), 0x1f));
  1650. int32_t var_4c_64 = (RORD(((var_4c_62 ^ var_54_56) ^ (var_58_67 << 3)), 0x19));
  1651. int32_t var_50_50 = (var_50_49 ^ arg2[0x25]);
  1652. int32_t var_4c_65 = (var_4c_64 ^ arg2[0x27]);
  1653. int32_t var_58_71 = (!((RORD((var_4c_64 ^ (var_58_67 ^ var_50_49)), 0x1b)) ^ arg2[0x24]));
  1654. int32_t var_58_72 = (var_58_71 & var_50_50);
  1655. int32_t var_54_61 = ((!((RORD(((var_54_56 ^ var_4c_64) ^ (var_50_49 << 7)), 0xa)) ^ arg2[0x26])) ^ var_58_72);
  1656. int32_t var_58_73 = (var_58_72 | var_4c_65);
  1657. int32_t var_4c_66 = (var_4c_65 ^ var_54_61);
  1658. int32_t var_50_51 = (var_50_50 ^ var_58_73);
  1659. int32_t var_58_74 = (var_58_73 ^ var_58_71);
  1660. int32_t var_5c_53 = (var_58_71 | var_50_51);
  1661. int32_t var_50_52 = (var_50_51 ^ var_4c_66);
  1662. int32_t var_54_63 = ((var_54_61 | var_58_74) & var_5c_53);
  1663. int32_t var_58_75 = (var_58_74 ^ var_50_52);
  1664. int32_t var_54_64 = (RORD(var_54_63, 0x13));
  1665. int32_t var_4c_67 = (RORD(var_4c_66, 0x1d));
  1666. int32_t var_58_79 = (RORD((var_4c_67 ^ (((var_58_75 & var_54_63) ^ var_5c_53) ^ var_54_64)), 0x1f));
  1667. int32_t var_50_56 = (RORD(((((var_50_52 & var_54_63) ^ var_58_75) ^ var_4c_67) ^ (var_54_64 << 3)), 0x19));
  1668. int32_t var_54_67 = ((RORD((var_50_56 ^ (var_54_64 ^ var_58_79)), 0x1b)) ^ arg2[0x28]);
  1669. int32_t var_58_80 = (var_58_79 ^ arg2[0x29]);
  1670. int32_t var_4c_70 = ((RORD(((var_4c_67 ^ var_50_56) ^ (var_58_79 << 7)), 0xa)) ^ arg2[0x2a]);
  1671. int32_t var_50_57 = (var_50_56 ^ arg2[0x2b]);
  1672. int32_t var_54_69 = ((var_54_67 & var_4c_70) ^ var_50_57);
  1673. int32_t var_4c_72 = ((var_4c_70 ^ var_58_80) ^ var_54_69);
  1674. int32_t var_50_59 = ((var_50_57 | var_54_67) ^ var_58_80);
  1675. int32_t var_5c_55 = (var_54_67 ^ var_4c_72);
  1676. int32_t var_50_61 = ((var_50_59 | var_5c_55) ^ var_54_69);
  1677. int32_t var_5c_56 = (var_5c_55 ^ (var_54_69 & var_50_59));
  1678. int32_t var_4c_73 = (RORD(var_4c_72, 0x13));
  1679. int32_t var_58_84 = (RORD(((var_50_59 ^ var_50_61) ^ var_5c_56), 0x1d));
  1680. int32_t var_50_63 = (RORD((var_58_84 ^ (var_50_61 ^ var_4c_73)), 0x1f));
  1681. int32_t var_5c_59 = (RORD((((!var_5c_56) ^ var_58_84) ^ (var_4c_73 << 3)), 0x19));
  1682. int32_t var_4c_76 = ((RORD((var_5c_59 ^ (var_4c_73 ^ var_50_63)), 0x1b)) ^ arg2[0x2c]);
  1683. int32_t var_50_64 = (var_50_63 ^ arg2[0x2d]);
  1684. int32_t var_58_87 = ((RORD(((var_58_84 ^ var_5c_59) ^ (var_50_63 << 7)), 0xa)) ^ arg2[0x2e]);
  1685. int32_t var_5c_60 = (var_5c_59 ^ arg2[0x2f]);
  1686. int32_t var_4c_77 = (var_4c_76 | var_5c_60);
  1687. int32_t var_5c_61 = (var_5c_60 ^ var_50_64);
  1688. int32_t var_50_65 = (var_50_64 & var_4c_76);
  1689. int32_t var_58_88 = (var_58_87 ^ var_5c_61);
  1690. int32_t var_54_73 = ((var_4c_76 ^ var_58_87) | var_50_65);
  1691. int32_t var_5c_63 = ((var_5c_61 & var_4c_77) ^ var_54_73);
  1692. int32_t var_4c_78 = (var_4c_77 ^ var_50_65);
  1693. int32_t var_50_68 = (((var_50_65 ^ var_5c_63) | var_4c_78) ^ var_58_88);
  1694. int32_t var_50_71 = (RORD(((var_50_68 | var_5c_63) ^ (var_4c_78 ^ var_5c_63)), 0x13));
  1695. int32_t var_5c_64 = (RORD(var_5c_63, 0x1d));
  1696. int32_t var_58_91 = (RORD((var_5c_64 ^ (var_50_68 ^ var_50_71)), 0x1f));
  1697. int32_t var_54_77 = (RORD(((((var_54_73 & var_4c_78) ^ var_58_88) ^ var_5c_64) ^ (var_50_71 << 3)), 0x19));
  1698. int32_t var_50_73 = (RORD((var_54_77 ^ (var_50_71 ^ var_58_91)), 0x1b));
  1699. int32_t var_5c_66 = (RORD(((var_5c_64 ^ var_54_77) ^ (var_58_91 << 7)), 0xa));
  1700. arg1[9] = var_50_73;
  1701. arg1[8] = var_58_91;
  1702. arg1[7] = var_5c_66;
  1703. arg1[6] = var_54_77;
  1704. int32_t var_50_74 = (var_50_73 ^ arg2[0x30]);
  1705. int32_t var_54_78 = (var_54_77 ^ arg2[0x33]);
  1706. int32_t var_58_93 = ((var_58_91 ^ arg2[0x31]) ^ var_54_78);
  1707. int32_t var_54_79 = (!var_54_78);
  1708. int32_t var_5c_68 = ((var_5c_66 ^ arg2[0x32]) ^ var_54_79);
  1709. int32_t var_54_80 = (var_54_79 ^ var_50_74);
  1710. int32_t var_58_95 = ((var_58_93 & var_54_80) ^ var_5c_68);
  1711. int32_t var_4c_81 = (var_58_93 ^ var_54_80);
  1712. int32_t var_50_75 = (var_50_74 ^ var_4c_81);
  1713. int32_t var_5c_70 = ((var_5c_68 & var_4c_81) ^ var_50_75);
  1714. int32_t var_50_76 = (var_50_75 & var_58_95);
  1715. int32_t var_54_81 = (var_54_80 ^ var_50_76);
  1716. int32_t var_58_96 = (RORD(var_58_95, 0x13));
  1717. int32_t var_50_80 = (RORD((!((var_50_76 | var_54_81) ^ var_5c_70)), 0x1d));
  1718. int32_t var_4c_86 = (RORD((var_50_80 ^ ((((var_4c_81 | var_58_95) ^ var_50_76) ^ (var_5c_70 & var_54_81)) ^ var_58_96)), 0x1f));
  1719. int32_t var_54_83 = (RORD(((var_54_81 ^ var_50_80) ^ (var_58_96 << 3)), 0x19));
  1720. int32_t var_4c_87 = (var_4c_86 ^ arg2[0x35]);
  1721. int32_t var_54_84 = (var_54_83 ^ arg2[0x37]);
  1722. int32_t var_58_100 = (((RORD((var_54_83 ^ (var_58_96 ^ var_4c_86)), 0x1b)) ^ arg2[0x34]) ^ var_4c_87);
  1723. int32_t var_4c_88 = (var_4c_87 ^ var_54_84);
  1724. int32_t var_54_85 = (!var_54_84);
  1725. int32_t var_50_84 = (((RORD(((var_50_80 ^ var_54_83) ^ (var_4c_86 << 7)), 0xa)) ^ arg2[0x36]) ^ var_54_85);
  1726. int32_t var_4c_90 = ((var_4c_88 & var_58_100) ^ var_50_84);
  1727. int32_t var_50_85 = (var_50_84 | var_4c_88);
  1728. int32_t var_54_87 = ((var_54_85 & var_4c_90) ^ var_58_100);
  1729. int32_t var_5c_75 = (((var_4c_88 ^ var_54_85) ^ var_4c_90) ^ var_50_85);
  1730. int32_t var_4c_91 = (RORD(var_4c_90, 0x13));
  1731. int32_t var_58_103 = (RORD(((var_58_100 & var_54_87) ^ var_5c_75), 0x1d));
  1732. int32_t var_54_89 = (RORD((var_58_103 ^ (var_54_87 ^ var_4c_91)), 0x1f));
  1733. int32_t var_50_90 = (RORD(((((!(var_50_85 ^ var_58_100)) ^ (var_5c_75 | var_54_87)) ^ var_58_103) ^ (var_4c_91 << 3)), 0x19));
  1734. int32_t var_4c_94 = ((RORD((var_50_90 ^ (var_4c_91 ^ var_54_89)), 0x1b)) ^ arg2[0x38]);
  1735. int32_t var_50_91 = (var_50_90 ^ arg2[0x3b]);
  1736. int32_t var_58_107 = (!((RORD(((var_58_103 ^ var_50_90) ^ (var_54_89 << 7)), 0xa)) ^ arg2[0x3a]));
  1737. int32_t var_4c_95 = (var_4c_94 ^ var_50_91);
  1738. int32_t var_50_93 = ((var_50_91 & var_4c_94) ^ var_58_107);
  1739. int32_t var_54_91 = ((var_54_89 ^ arg2[0x39]) ^ var_50_93);
  1740. int32_t var_4c_96 = (var_4c_95 | var_54_91);
  1741. int32_t var_58_110 = (((var_58_107 | var_50_91) ^ var_4c_95) ^ var_54_91);
  1742. int32_t var_4c_98 = ((var_4c_96 | var_50_93) ^ var_58_110);
  1743. int32_t var_5c_80 = (((var_50_91 ^ var_4c_96) ^ var_50_93) ^ var_4c_98);
  1744. int32_t var_4c_99 = (RORD(var_4c_98, 0x13));
  1745. int32_t var_5c_81 = (RORD(var_5c_80, 0x1d));
  1746. int32_t var_54_93 = (RORD((var_5c_81 ^ (var_54_91 ^ var_4c_99)), 0x1f));
  1747. int32_t var_58_114 = (RORD(((((var_58_110 & var_5c_80) ^ (!var_50_93)) ^ var_5c_81) ^ (var_4c_99 << 3)), 0x19));
  1748. int32_t var_4c_102 = ((RORD((var_58_114 ^ (var_4c_99 ^ var_54_93)), 0x1b)) ^ arg2[0x3c]);
  1749. int32_t var_54_94 = (var_54_93 ^ arg2[0x3d]);
  1750. int32_t var_5c_84 = ((RORD(((var_5c_81 ^ var_58_114) ^ (var_54_93 << 7)), 0xa)) ^ arg2[0x3e]);
  1751. int32_t var_58_115 = (var_58_114 ^ arg2[0x3f]);
  1752. int32_t var_54_96 = ((var_54_94 | var_5c_84) ^ var_58_115);
  1753. int32_t var_50_96 = (var_54_94 ^ var_5c_84);
  1754. int32_t var_5c_85 = (var_5c_84 ^ var_54_96);
  1755. int32_t var_50_97 = (var_50_96 ^ var_5c_85);
  1756. int32_t var_4c_104 = ((var_4c_102 | var_50_97) ^ var_5c_85);
  1757. int32_t var_54_99 = (((var_54_96 | var_50_97) ^ var_4c_102) ^ var_50_97);
  1758. int32_t var_50_99 = (RORD((var_50_97 ^ ((!(var_5c_85 ^ var_54_99)) | var_4c_104)), 0x13));
  1759. int32_t var_54_102 = (RORD(((var_54_99 & var_4c_104) ^ var_50_97), 0x1d));
  1760. int32_t var_58_120 = (RORD((var_54_102 ^ ((((var_58_115 | var_50_96) & var_4c_102) ^ var_54_96) ^ var_50_99)), 0x1f));
  1761. int32_t var_4c_106 = (RORD(((var_4c_104 ^ var_54_102) ^ (var_50_99 << 3)), 0x19));
  1762. int32_t var_50_102 = ((RORD((var_4c_106 ^ (var_50_99 ^ var_58_120)), 0x1b)) ^ arg2[0x40]);
  1763. int32_t var_58_121 = (var_58_120 ^ arg2[0x41]);
  1764. int32_t var_54_105 = ((RORD(((var_54_102 ^ var_4c_106) ^ (var_58_120 << 7)), 0xa)) ^ arg2[0x42]);
  1765. int32_t var_4c_108 = ((var_4c_106 ^ arg2[0x43]) ^ var_50_102);
  1766. int32_t var_5c_90 = (var_58_121 ^ var_54_105);
  1767. int32_t var_58_123 = ((var_58_121 & var_4c_108) ^ var_50_102);
  1768. int32_t var_50_104 = ((var_50_102 | var_4c_108) ^ var_5c_90);
  1769. int32_t var_5c_91 = (var_5c_90 ^ var_4c_108);
  1770. int32_t var_4c_109 = (var_4c_108 ^ var_54_105);
  1771. int32_t var_5c_93 = ((!var_5c_91) | var_58_123);
  1772. int32_t var_4c_110 = (var_4c_109 | var_50_104);
  1773. int32_t var_58_127 = (RORD((((var_58_123 ^ var_4c_109) ^ var_5c_93) ^ var_4c_110), 0x13));
  1774. int32_t var_54_108 = (RORD(((var_54_105 | var_58_123) ^ var_5c_91), 0x1d));
  1775. int32_t var_5c_96 = (RORD((var_54_108 ^ ((var_5c_93 ^ var_4c_110) ^ var_58_127)), 0x1f));
  1776. int32_t var_50_106 = (RORD(((var_50_104 ^ var_54_108) ^ (var_58_127 << 3)), 0x19));
  1777. int32_t var_5c_97 = (var_5c_96 ^ arg2[0x45]);
  1778. int32_t var_50_107 = (var_50_106 ^ arg2[0x47]);
  1779. int32_t var_58_131 = (!((RORD((var_50_106 ^ (var_58_127 ^ var_5c_96)), 0x1b)) ^ arg2[0x44]));
  1780. int32_t var_58_132 = (var_58_131 & var_5c_97);
  1781. int32_t var_54_113 = ((!((RORD(((var_54_108 ^ var_50_106) ^ (var_5c_96 << 7)), 0xa)) ^ arg2[0x46])) ^ var_58_132);
  1782. int32_t var_58_133 = (var_58_132 | var_50_107);
  1783. int32_t var_50_108 = (var_50_107 ^ var_54_113);
  1784. int32_t var_5c_98 = (var_5c_97 ^ var_58_133);
  1785. int32_t var_58_134 = (var_58_133 ^ var_58_131);
  1786. int32_t var_4c_112 = (var_58_131 | var_5c_98);
  1787. int32_t var_5c_99 = (var_5c_98 ^ var_50_108);
  1788. int32_t var_54_115 = ((var_54_113 | var_58_134) & var_4c_112);
  1789. int32_t var_58_135 = (var_58_134 ^ var_5c_99);
  1790. int32_t var_54_116 = (RORD(var_54_115, 0x13));
  1791. int32_t var_50_109 = (RORD(var_50_108, 0x1d));
  1792. int32_t var_58_139 = (RORD((var_50_109 ^ (((var_58_135 & var_54_115) ^ var_4c_112) ^ var_54_116)), 0x1f));
  1793. int32_t var_5c_103 = (RORD(((((var_5c_99 & var_54_115) ^ var_58_135) ^ var_50_109) ^ (var_54_116 << 3)), 0x19));
  1794. int32_t var_54_118 = (RORD((var_5c_103 ^ (var_54_116 ^ var_58_139)), 0x1b));
  1795. int32_t var_50_111 = (RORD(((var_50_109 ^ var_5c_103) ^ (var_58_139 << 7)), 0xa));
  1796. arg1[0xa] = var_54_118;
  1797. arg1[4] = var_58_139;
  1798. arg1[0xb] = var_50_111;
  1799. arg1[5] = var_5c_103;
  1800. int32_t var_54_119 = (var_54_118 ^ arg2[0x48]);
  1801. int32_t var_58_140 = (var_58_139 ^ arg2[0x49]);
  1802. int32_t var_50_112 = (var_50_111 ^ arg2[0x4a]);
  1803. int32_t var_5c_104 = (var_5c_103 ^ arg2[0x4b]);
  1804. int32_t var_54_121 = ((var_54_119 & var_50_112) ^ var_5c_104);
  1805. int32_t var_50_114 = ((var_50_112 ^ var_58_140) ^ var_54_121);
  1806. int32_t var_5c_106 = ((var_5c_104 | var_54_119) ^ var_58_140);
  1807. int32_t var_4c_114 = (var_54_119 ^ var_50_114);
  1808. int32_t var_5c_108 = ((var_5c_106 | var_4c_114) ^ var_54_121);
  1809. int32_t var_4c_115 = (var_4c_114 ^ (var_54_121 & var_5c_106));
  1810. int32_t var_50_115 = (RORD(var_50_114, 0x13));
  1811. int32_t var_58_144 = (RORD(((var_5c_106 ^ var_5c_108) ^ var_4c_115), 0x1d));
  1812. int32_t var_5c_110 = (RORD((var_58_144 ^ (var_5c_108 ^ var_50_115)), 0x1f));
  1813. int32_t var_4c_118 = (RORD((((!var_4c_115) ^ var_58_144) ^ (var_50_115 << 3)), 0x19));
  1814. int32_t var_50_118 = ((RORD((var_4c_118 ^ (var_50_115 ^ var_5c_110)), 0x1b)) ^ arg2[0x4c]);
  1815. int32_t var_5c_111 = (var_5c_110 ^ arg2[0x4d]);
  1816. int32_t var_58_147 = ((RORD(((var_58_144 ^ var_4c_118) ^ (var_5c_110 << 7)), 0xa)) ^ arg2[0x4e]);
  1817. int32_t var_4c_119 = (var_4c_118 ^ arg2[0x4f]);
  1818. int32_t var_50_119 = (var_50_118 | var_4c_119);
  1819. int32_t var_4c_120 = (var_4c_119 ^ var_5c_111);
  1820. int32_t var_5c_112 = (var_5c_111 & var_50_118);
  1821. int32_t var_58_148 = (var_58_147 ^ var_4c_120);
  1822. int32_t var_54_125 = ((var_50_118 ^ var_58_147) | var_5c_112);
  1823. int32_t var_4c_122 = ((var_4c_120 & var_50_119) ^ var_54_125);
  1824. int32_t var_50_120 = (var_50_119 ^ var_5c_112);
  1825. int32_t var_5c_115 = (((var_5c_112 ^ var_4c_122) | var_50_120) ^ var_58_148);
  1826. int32_t var_5c_118 = (RORD(((var_5c_115 | var_4c_122) ^ (var_50_120 ^ var_4c_122)), 0x13));
  1827. int32_t var_4c_123 = (RORD(var_4c_122, 0x1d));
  1828. int32_t var_58_151 = (RORD((var_4c_123 ^ (var_5c_115 ^ var_5c_118)), 0x1f));
  1829. int32_t var_54_129 = (RORD(((((var_54_125 & var_50_120) ^ var_58_148) ^ var_4c_123) ^ (var_5c_118 << 3)), 0x19));
  1830. int32_t var_5c_121 = ((RORD((var_54_129 ^ (var_5c_118 ^ var_58_151)), 0x1b)) ^ arg2[0x50]);
  1831. int32_t var_54_130 = (var_54_129 ^ arg2[0x53]);
  1832. int32_t var_58_153 = ((var_58_151 ^ arg2[0x51]) ^ var_54_130);
  1833. int32_t var_54_131 = (!var_54_130);
  1834. int32_t var_4c_127 = (((RORD(((var_4c_123 ^ var_54_129) ^ (var_58_151 << 7)), 0xa)) ^ arg2[0x52]) ^ var_54_131);
  1835. int32_t var_54_132 = (var_54_131 ^ var_5c_121);
  1836. int32_t var_58_155 = ((var_58_153 & var_54_132) ^ var_4c_127);
  1837. int32_t var_50_123 = (var_58_153 ^ var_54_132);
  1838. int32_t var_5c_122 = (var_5c_121 ^ var_50_123);
  1839. int32_t var_4c_129 = ((var_4c_127 & var_50_123) ^ var_5c_122);
  1840. int32_t var_5c_123 = (var_5c_122 & var_58_155);
  1841. int32_t var_54_133 = (var_54_132 ^ var_5c_123);
  1842. int32_t var_58_156 = (RORD(var_58_155, 0x13));
  1843. int32_t var_5c_127 = (RORD((!((var_5c_123 | var_54_133) ^ var_4c_129)), 0x1d));
  1844. int32_t var_50_128 = (RORD((var_5c_127 ^ ((((var_50_123 | var_58_155) ^ var_5c_123) ^ (var_4c_129 & var_54_133)) ^ var_58_156)), 0x1f));
  1845. int32_t var_54_135 = (RORD(((var_54_133 ^ var_5c_127) ^ (var_58_156 << 3)), 0x19));
  1846. int32_t var_50_129 = (var_50_128 ^ arg2[0x55]);
  1847. int32_t var_54_136 = (var_54_135 ^ arg2[0x57]);
  1848. int32_t var_58_160 = (((RORD((var_54_135 ^ (var_58_156 ^ var_50_128)), 0x1b)) ^ arg2[0x54]) ^ var_50_129);
  1849. int32_t var_50_130 = (var_50_129 ^ var_54_136);
  1850. int32_t var_54_137 = (!var_54_136);
  1851. int32_t var_5c_131 = (((RORD(((var_5c_127 ^ var_54_135) ^ (var_50_128 << 7)), 0xa)) ^ arg2[0x56]) ^ var_54_137);
  1852. int32_t var_50_132 = ((var_50_130 & var_58_160) ^ var_5c_131);
  1853. int32_t var_5c_132 = (var_5c_131 | var_50_130);
  1854. int32_t var_54_139 = ((var_54_137 & var_50_132) ^ var_58_160);
  1855. int32_t var_4c_134 = (((var_50_130 ^ var_54_137) ^ var_50_132) ^ var_5c_132);
  1856. int32_t var_50_133 = (RORD(var_50_132, 0x13));
  1857. int32_t var_58_163 = (RORD(((var_58_160 & var_54_139) ^ var_4c_134), 0x1d));
  1858. int32_t var_54_141 = (RORD((var_58_163 ^ (var_54_139 ^ var_50_133)), 0x1f));
  1859. int32_t var_5c_137 = (RORD(((((!(var_5c_132 ^ var_58_160)) ^ (var_4c_134 | var_54_139)) ^ var_58_163) ^ (var_50_133 << 3)), 0x19));
  1860. int32_t var_50_136 = ((RORD((var_5c_137 ^ (var_50_133 ^ var_54_141)), 0x1b)) ^ arg2[0x58]);
  1861. int32_t var_5c_138 = (var_5c_137 ^ arg2[0x5b]);
  1862. int32_t var_58_167 = (!((RORD(((var_58_163 ^ var_5c_137) ^ (var_54_141 << 7)), 0xa)) ^ arg2[0x5a]));
  1863. int32_t var_50_137 = (var_50_136 ^ var_5c_138);
  1864. int32_t var_5c_140 = ((var_5c_138 & var_50_136) ^ var_58_167);
  1865. int32_t var_54_143 = ((var_54_141 ^ arg2[0x59]) ^ var_5c_140);
  1866. int32_t var_50_138 = (var_50_137 | var_54_143);
  1867. int32_t var_58_170 = (((var_58_167 | var_5c_138) ^ var_50_137) ^ var_54_143);
  1868. int32_t var_50_140 = ((var_50_138 | var_5c_140) ^ var_58_170);
  1869. int32_t var_4c_139 = (((var_5c_138 ^ var_50_138) ^ var_5c_140) ^ var_50_140);
  1870. int32_t var_50_141 = (RORD(var_50_140, 0x13));
  1871. int32_t var_4c_140 = (RORD(var_4c_139, 0x1d));
  1872. int32_t var_54_145 = (RORD((var_4c_140 ^ (var_54_143 ^ var_50_141)), 0x1f));
  1873. int32_t var_58_174 = (RORD(((((var_58_170 & var_4c_139) ^ (!var_5c_140)) ^ var_4c_140) ^ (var_50_141 << 3)), 0x19));
  1874. int32_t var_50_144 = ((RORD((var_58_174 ^ (var_50_141 ^ var_54_145)), 0x1b)) ^ arg2[0x5c]);
  1875. int32_t var_54_146 = (var_54_145 ^ arg2[0x5d]);
  1876. int32_t var_4c_143 = ((RORD(((var_4c_140 ^ var_58_174) ^ (var_54_145 << 7)), 0xa)) ^ arg2[0x5e]);
  1877. int32_t var_58_175 = (var_58_174 ^ arg2[0x5f]);
  1878. int32_t var_54_148 = ((var_54_146 | var_4c_143) ^ var_58_175);
  1879. int32_t var_5c_143 = (var_54_146 ^ var_4c_143);
  1880. int32_t var_4c_144 = (var_4c_143 ^ var_54_148);
  1881. int32_t var_5c_144 = (var_5c_143 ^ var_4c_144);
  1882. int32_t var_50_146 = ((var_50_144 | var_5c_144) ^ var_4c_144);
  1883. int32_t var_54_151 = (((var_54_148 | var_5c_144) ^ var_50_144) ^ var_5c_144);
  1884. int32_t var_5c_146 = (RORD((var_5c_144 ^ ((!(var_4c_144 ^ var_54_151)) | var_50_146)), 0x13));
  1885. int32_t var_54_154 = (RORD(((var_54_151 & var_50_146) ^ var_5c_144), 0x1d));
  1886. int32_t var_58_180 = (RORD((var_54_154 ^ ((((var_58_175 | var_5c_143) & var_50_144) ^ var_54_148) ^ var_5c_146)), 0x1f));
  1887. int32_t var_50_148 = (RORD(((var_50_146 ^ var_54_154) ^ (var_5c_146 << 3)), 0x19));
  1888. int32_t var_58_181 = (var_58_180 ^ arg2[0x61]);
  1889. int32_t var_54_157 = ((RORD(((var_54_154 ^ var_50_148) ^ (var_58_180 << 7)), 0xa)) ^ arg2[0x62]);
  1890. int32_t var_50_149 = (var_50_148 ^ arg2[0x63]);
  1891. arg1[3] = ((RORD((var_50_148 ^ (var_5c_146 ^ var_58_180)), 0x1b)) ^ arg2[0x60]);
  1892. arg1[2] = var_58_181;
  1893. arg1[1] = var_54_157;
  1894. *arg1 = var_50_149;
  1895. arg1[0x20] = 0x50;
  1896. int64_t rax_559 = (rax ^ *(fsbase + 0x28));
  1897. if (rax_559 == 0)
  1898. {
  1899. return rax_559;
  1900. }
  1901. __stack_chk_fail();
  1902. /* no return */
  1903. }
  1904.  
  1905. uint64_t sosemanuk_internal(int32_t* arg1)
  1906. {
  1907. int32_t rax_1 = *arg1;
  1908. int32_t rax_3 = arg1[1];
  1909. int32_t rax_5 = arg1[2];
  1910. int32_t rax_7 = arg1[3];
  1911. int32_t rax_9 = arg1[4];
  1912. int32_t rax_11 = arg1[5];
  1913. int32_t rax_13 = arg1[6];
  1914. int32_t rax_15 = arg1[7];
  1915. int32_t rax_17 = arg1[8];
  1916. int32_t rax_19 = arg1[9];
  1917. int32_t rax_21 = arg1[0xa];
  1918. int32_t rax_23 = arg1[0xb];
  1919. int32_t var_160;
  1920. if ((rax_21 & 1) == 0)
  1921. {
  1922. var_160 = rax_3;
  1923. }
  1924. else
  1925. {
  1926. var_160 = (rax_3 ^ rax_17);
  1927. }
  1928. int32_t rax_30 = (var_160 + rax_23);
  1929. int32_t rax_34 = (RORD((rax_21 * 0x54655307), 0x19));
  1930. int32_t rax_47 = (((*((rax_7 << 2) + 0x6096e0) ^ (rax_7 >> 8)) ^ ((rax_1 << 8) ^ *(((rax_1 >> 0x18) << 2) + 0x6092e0))) ^ rax_19);
  1931. int32_t rax_50 = ((rax_30 + rax_19) ^ rax_34);
  1932. int32_t var_15c;
  1933. if ((rax_30 & 1) == 0)
  1934. {
  1935. var_15c = rax_5;
  1936. }
  1937. else
  1938. {
  1939. var_15c = (rax_5 ^ rax_19);
  1940. }
  1941. int32_t rax_57 = (var_15c + rax_34);
  1942. int32_t rax_61 = (RORD((rax_30 * 0x54655307), 0x19));
  1943. int32_t rax_74 = (((*((rax_9 << 2) + 0x6096e0) ^ (rax_9 >> 8)) ^ ((rax_3 << 8) ^ *(((rax_3 >> 0x18) << 2) + 0x6092e0))) ^ rax_47);
  1944. int32_t rax_77 = ((rax_57 + rax_47) ^ rax_61);
  1945. int32_t var_158;
  1946. if ((rax_57 & 1) == 0)
  1947. {
  1948. var_158 = rax_7;
  1949. }
  1950. else
  1951. {
  1952. var_158 = (rax_7 ^ rax_47);
  1953. }
  1954. int32_t rax_84 = (var_158 + rax_61);
  1955. int32_t rax_88 = (RORD((rax_57 * 0x54655307), 0x19));
  1956. int32_t rax_101 = (((*((rax_11 << 2) + 0x6096e0) ^ (rax_11 >> 8)) ^ ((rax_5 << 8) ^ *(((rax_5 >> 0x18) << 2) + 0x6092e0))) ^ rax_74);
  1957. int32_t rax_104 = ((rax_84 + rax_74) ^ rax_88);
  1958. int32_t var_154;
  1959. if ((rax_84 & 1) == 0)
  1960. {
  1961. var_154 = rax_9;
  1962. }
  1963. else
  1964. {
  1965. var_154 = (rax_9 ^ rax_74);
  1966. }
  1967. int32_t rax_111 = (var_154 + rax_88);
  1968. int32_t rax_115 = (RORD((rax_84 * 0x54655307), 0x19));
  1969. int32_t rax_128 = (((*((rax_13 << 2) + 0x6096e0) ^ (rax_13 >> 8)) ^ ((rax_7 << 8) ^ *(((rax_7 >> 0x18) << 2) + 0x6092e0))) ^ rax_101);
  1970. int32_t rax_131 = ((rax_111 + rax_101) ^ rax_115);
  1971. int32_t var_3c_2 = ((rax_50 & rax_104) ^ rax_131);
  1972. int32_t var_44_2 = ((rax_104 ^ rax_77) ^ var_3c_2);
  1973. int32_t var_48_2 = ((rax_131 | rax_50) ^ rax_77);
  1974. int32_t var_4c_1 = (rax_50 ^ var_44_2);
  1975. int32_t var_48_4 = ((var_48_2 | var_4c_1) ^ var_3c_2);
  1976. int32_t var_4c_2 = (var_4c_1 ^ (var_3c_2 & var_48_2));
  1977. encode32le(&arg1[0xc], (var_44_2 ^ rax_1));
  1978. encode32le(&arg1[0xd], (var_48_4 ^ rax_3));
  1979. encode32le(&arg1[0xe], (((var_48_2 ^ var_48_4) ^ var_4c_2) ^ rax_5));
  1980. encode32le(&arg1[0xf], ((!var_4c_2) ^ rax_7));
  1981. int32_t var_150;
  1982. if ((rax_111 & 1) == 0)
  1983. {
  1984. var_150 = rax_11;
  1985. }
  1986. else
  1987. {
  1988. var_150 = (rax_11 ^ rax_101);
  1989. }
  1990. int32_t rax_163 = (var_150 + rax_115);
  1991. int32_t rax_167 = (RORD((rax_111 * 0x54655307), 0x19));
  1992. int32_t rax_180 = (((*((rax_15 << 2) + 0x6096e0) ^ (rax_15 >> 8)) ^ ((rax_9 << 8) ^ *(((rax_9 >> 0x18) << 2) + 0x6092e0))) ^ rax_128);
  1993. int32_t rax_183 = ((rax_163 + rax_128) ^ rax_167);
  1994. int32_t var_14c;
  1995. if ((rax_163 & 1) == 0)
  1996. {
  1997. var_14c = rax_13;
  1998. }
  1999. else
  2000. {
  2001. var_14c = (rax_13 ^ rax_128);
  2002. }
  2003. int32_t rax_190 = (var_14c + rax_167);
  2004. int32_t rax_194 = (RORD((rax_163 * 0x54655307), 0x19));
  2005. int32_t rax_207 = (((*((rax_17 << 2) + 0x6096e0) ^ (rax_17 >> 8)) ^ ((rax_11 << 8) ^ *(((rax_11 >> 0x18) << 2) + 0x6092e0))) ^ rax_180);
  2006. int32_t rax_210 = ((rax_190 + rax_180) ^ rax_194);
  2007. int32_t var_148;
  2008. if ((rax_190 & 1) == 0)
  2009. {
  2010. var_148 = rax_15;
  2011. }
  2012. else
  2013. {
  2014. var_148 = (rax_15 ^ rax_180);
  2015. }
  2016. int32_t rax_217 = (var_148 + rax_194);
  2017. int32_t rax_221 = (RORD((rax_190 * 0x54655307), 0x19));
  2018. int32_t rax_234 = (((*((rax_19 << 2) + 0x6096e0) ^ (rax_19 >> 8)) ^ ((rax_13 << 8) ^ *(((rax_13 >> 0x18) << 2) + 0x6092e0))) ^ rax_207);
  2019. int32_t rax_237 = ((rax_217 + rax_207) ^ rax_221);
  2020. int32_t var_144;
  2021. if ((rax_217 & 1) == 0)
  2022. {
  2023. var_144 = rax_17;
  2024. }
  2025. else
  2026. {
  2027. var_144 = (rax_17 ^ rax_207);
  2028. }
  2029. int32_t rax_244 = (var_144 + rax_221);
  2030. int32_t rax_248 = (RORD((rax_217 * 0x54655307), 0x19));
  2031. int32_t rax_261 = (((*((rax_47 << 2) + 0x6096e0) ^ (rax_47 >> 8)) ^ ((rax_15 << 8) ^ *(((rax_15 >> 0x18) << 2) + 0x6092e0))) ^ rax_234);
  2032. int32_t rax_264 = ((rax_244 + rax_234) ^ rax_248);
  2033. int32_t var_3c_6 = ((rax_183 & rax_237) ^ rax_264);
  2034. int32_t var_44_5 = ((rax_237 ^ rax_210) ^ var_3c_6);
  2035. int32_t var_48_7 = ((rax_264 | rax_183) ^ rax_210);
  2036. int32_t var_4c_5 = (rax_183 ^ var_44_5);
  2037. int32_t var_48_9 = ((var_48_7 | var_4c_5) ^ var_3c_6);
  2038. int32_t var_4c_6 = (var_4c_5 ^ (var_3c_6 & var_48_7));
  2039. encode32le(&arg1[0x10], (var_44_5 ^ rax_9));
  2040. encode32le(&arg1[0x11], (var_48_9 ^ rax_11));
  2041. encode32le(&arg1[0x12], (((var_48_7 ^ var_48_9) ^ var_4c_6) ^ rax_13));
  2042. encode32le(&arg1[0x13], ((!var_4c_6) ^ rax_15));
  2043. int32_t var_140;
  2044. if ((rax_244 & 1) == 0)
  2045. {
  2046. var_140 = rax_19;
  2047. }
  2048. else
  2049. {
  2050. var_140 = (rax_19 ^ rax_234);
  2051. }
  2052. int32_t rax_298 = (var_140 + rax_248);
  2053. int32_t rax_302 = (RORD((rax_244 * 0x54655307), 0x19));
  2054. int32_t rax_315 = (((*((rax_74 << 2) + 0x6096e0) ^ (rax_74 >> 8)) ^ ((rax_17 << 8) ^ *(((rax_17 >> 0x18) << 2) + 0x6092e0))) ^ rax_261);
  2055. int32_t rax_318 = ((rax_298 + rax_261) ^ rax_302);
  2056. int32_t var_13c;
  2057. if ((rax_298 & 1) == 0)
  2058. {
  2059. var_13c = rax_47;
  2060. }
  2061. else
  2062. {
  2063. var_13c = (rax_47 ^ rax_261);
  2064. }
  2065. int32_t rax_325 = (var_13c + rax_302);
  2066. int32_t rax_329 = (RORD((rax_298 * 0x54655307), 0x19));
  2067. int32_t rax_342 = (((*((rax_101 << 2) + 0x6096e0) ^ (rax_101 >> 8)) ^ ((rax_19 << 8) ^ *(((rax_19 >> 0x18) << 2) + 0x6092e0))) ^ rax_315);
  2068. int32_t rax_345 = ((rax_325 + rax_315) ^ rax_329);
  2069. int32_t var_138;
  2070. if ((rax_325 & 1) == 0)
  2071. {
  2072. var_138 = rax_74;
  2073. }
  2074. else
  2075. {
  2076. var_138 = (rax_74 ^ rax_315);
  2077. }
  2078. int32_t rax_352 = (var_138 + rax_329);
  2079. int32_t rax_356 = (RORD((rax_325 * 0x54655307), 0x19));
  2080. int32_t rax_369 = (((*((rax_128 << 2) + 0x6096e0) ^ (rax_128 >> 8)) ^ ((rax_47 << 8) ^ *(((rax_47 >> 0x18) << 2) + 0x6092e0))) ^ rax_342);
  2081. int32_t rax_372 = ((rax_352 + rax_342) ^ rax_356);
  2082. int32_t var_134;
  2083. if ((rax_352 & 1) == 0)
  2084. {
  2085. var_134 = rax_101;
  2086. }
  2087. else
  2088. {
  2089. var_134 = (rax_101 ^ rax_342);
  2090. }
  2091. int32_t rax_379 = (var_134 + rax_356);
  2092. int32_t rax_383 = (RORD((rax_352 * 0x54655307), 0x19));
  2093. int32_t rax_396 = (((*((rax_180 << 2) + 0x6096e0) ^ (rax_180 >> 8)) ^ ((rax_74 << 8) ^ *(((rax_74 >> 0x18) << 2) + 0x6092e0))) ^ rax_369);
  2094. int32_t rax_399 = ((rax_379 + rax_369) ^ rax_383);
  2095. int32_t var_3c_10 = ((rax_318 & rax_372) ^ rax_399);
  2096. int32_t var_44_8 = ((rax_372 ^ rax_345) ^ var_3c_10);
  2097. int32_t var_48_12 = ((rax_399 | rax_318) ^ rax_345);
  2098. int32_t var_4c_9 = (rax_318 ^ var_44_8);
  2099. int32_t var_48_14 = ((var_48_12 | var_4c_9) ^ var_3c_10);
  2100. int32_t var_4c_10 = (var_4c_9 ^ (var_3c_10 & var_48_12));
  2101. encode32le(&arg1[0x14], (var_44_8 ^ rax_17));
  2102. encode32le(&arg1[0x15], (var_48_14 ^ rax_19));
  2103. encode32le(&arg1[0x16], (((var_48_12 ^ var_48_14) ^ var_4c_10) ^ rax_47));
  2104. encode32le(&arg1[0x17], ((!var_4c_10) ^ rax_74));
  2105. int32_t var_130;
  2106. if ((rax_379 & 1) == 0)
  2107. {
  2108. var_130 = rax_128;
  2109. }
  2110. else
  2111. {
  2112. var_130 = (rax_128 ^ rax_369);
  2113. }
  2114. int32_t rax_433 = (var_130 + rax_383);
  2115. int32_t rax_437 = (RORD((rax_379 * 0x54655307), 0x19));
  2116. int32_t rax_450 = (((*((rax_207 << 2) + 0x6096e0) ^ (rax_207 >> 8)) ^ ((rax_101 << 8) ^ *(((rax_101 >> 0x18) << 2) + 0x6092e0))) ^ rax_396);
  2117. int32_t rax_453 = ((rax_433 + rax_396) ^ rax_437);
  2118. int32_t var_12c;
  2119. if ((rax_433 & 1) == 0)
  2120. {
  2121. var_12c = rax_180;
  2122. }
  2123. else
  2124. {
  2125. var_12c = (rax_180 ^ rax_396);
  2126. }
  2127. int32_t rax_460 = (var_12c + rax_437);
  2128. int32_t rax_464 = (RORD((rax_433 * 0x54655307), 0x19));
  2129. int32_t rax_477 = (((*((rax_234 << 2) + 0x6096e0) ^ (rax_234 >> 8)) ^ ((rax_128 << 8) ^ *(((rax_128 >> 0x18) << 2) + 0x6092e0))) ^ rax_450);
  2130. int32_t rax_480 = ((rax_460 + rax_450) ^ rax_464);
  2131. int32_t var_128;
  2132. if ((rax_460 & 1) == 0)
  2133. {
  2134. var_128 = rax_207;
  2135. }
  2136. else
  2137. {
  2138. var_128 = (rax_207 ^ rax_450);
  2139. }
  2140. int32_t rax_487 = (var_128 + rax_464);
  2141. int32_t rax_491 = (RORD((rax_460 * 0x54655307), 0x19));
  2142. int32_t rax_504 = (((*((rax_261 << 2) + 0x6096e0) ^ (rax_261 >> 8)) ^ ((rax_180 << 8) ^ *(((rax_180 >> 0x18) << 2) + 0x6092e0))) ^ rax_477);
  2143. int32_t rax_507 = ((rax_487 + rax_477) ^ rax_491);
  2144. int32_t var_124;
  2145. if ((rax_487 & 1) == 0)
  2146. {
  2147. var_124 = rax_234;
  2148. }
  2149. else
  2150. {
  2151. var_124 = (rax_234 ^ rax_477);
  2152. }
  2153. int32_t rax_514 = (var_124 + rax_491);
  2154. int32_t rax_518 = (RORD((rax_487 * 0x54655307), 0x19));
  2155. int32_t rax_531 = (((*((rax_315 << 2) + 0x6096e0) ^ (rax_315 >> 8)) ^ ((rax_207 << 8) ^ *(((rax_207 >> 0x18) << 2) + 0x6092e0))) ^ rax_504);
  2156. int32_t rax_534 = ((rax_514 + rax_504) ^ rax_518);
  2157. int32_t var_3c_14 = ((rax_453 & rax_507) ^ rax_534);
  2158. int32_t var_44_11 = ((rax_507 ^ rax_480) ^ var_3c_14);
  2159. int32_t var_48_17 = ((rax_534 | rax_453) ^ rax_480);
  2160. int32_t var_4c_13 = (rax_453 ^ var_44_11);
  2161. int32_t var_48_19 = ((var_48_17 | var_4c_13) ^ var_3c_14);
  2162. int32_t var_4c_14 = (var_4c_13 ^ (var_3c_14 & var_48_17));
  2163. encode32le(&arg1[0x18], (var_44_11 ^ rax_101));
  2164. encode32le(&arg1[0x19], (var_48_19 ^ rax_128));
  2165. encode32le(&arg1[0x1a], (((var_48_17 ^ var_48_19) ^ var_4c_14) ^ rax_180));
  2166. encode32le(&arg1[0x1b], ((!var_4c_14) ^ rax_207));
  2167. int32_t var_120;
  2168. if ((rax_514 & 1) == 0)
  2169. {
  2170. var_120 = rax_261;
  2171. }
  2172. else
  2173. {
  2174. var_120 = (rax_261 ^ rax_504);
  2175. }
  2176. int32_t rax_568 = (var_120 + rax_518);
  2177. int32_t rax_572 = (RORD((rax_514 * 0x54655307), 0x19));
  2178. int32_t rax_585 = (((*((rax_342 << 2) + 0x6096e0) ^ (rax_342 >> 8)) ^ ((rax_234 << 8) ^ *(((rax_234 >> 0x18) << 2) + 0x6092e0))) ^ rax_531);
  2179. int32_t rax_588 = ((rax_568 + rax_531) ^ rax_572);
  2180. int32_t var_11c;
  2181. if ((rax_568 & 1) == 0)
  2182. {
  2183. var_11c = rax_315;
  2184. }
  2185. else
  2186. {
  2187. var_11c = (rax_315 ^ rax_531);
  2188. }
  2189. int32_t rax_595 = (var_11c + rax_572);
  2190. int32_t rax_599 = (RORD((rax_568 * 0x54655307), 0x19));
  2191. int32_t rax_612 = (((*((rax_369 << 2) + 0x6096e0) ^ (rax_369 >> 8)) ^ ((rax_261 << 8) ^ *(((rax_261 >> 0x18) << 2) + 0x6092e0))) ^ rax_585);
  2192. int32_t rax_615 = ((rax_595 + rax_585) ^ rax_599);
  2193. int32_t var_118;
  2194. if ((rax_595 & 1) == 0)
  2195. {
  2196. var_118 = rax_342;
  2197. }
  2198. else
  2199. {
  2200. var_118 = (rax_342 ^ rax_585);
  2201. }
  2202. int32_t rax_622 = (var_118 + rax_599);
  2203. int32_t rax_626 = (RORD((rax_595 * 0x54655307), 0x19));
  2204. int32_t rax_639 = (((*((rax_396 << 2) + 0x6096e0) ^ (rax_396 >> 8)) ^ ((rax_315 << 8) ^ *(((rax_315 >> 0x18) << 2) + 0x6092e0))) ^ rax_612);
  2205. int32_t rax_642 = ((rax_622 + rax_612) ^ rax_626);
  2206. int32_t var_114;
  2207. if ((rax_622 & 1) == 0)
  2208. {
  2209. var_114 = rax_369;
  2210. }
  2211. else
  2212. {
  2213. var_114 = (rax_369 ^ rax_612);
  2214. }
  2215. int32_t rax_649 = (var_114 + rax_626);
  2216. int32_t rax_653 = (RORD((rax_622 * 0x54655307), 0x19));
  2217. int32_t rax_666 = (((*((rax_450 << 2) + 0x6096e0) ^ (rax_450 >> 8)) ^ ((rax_342 << 8) ^ *(((rax_342 >> 0x18) << 2) + 0x6092e0))) ^ rax_639);
  2218. int32_t rax_669 = ((rax_649 + rax_639) ^ rax_653);
  2219. int32_t var_3c_18 = ((rax_588 & rax_642) ^ rax_669);
  2220. int32_t var_44_14 = ((rax_642 ^ rax_615) ^ var_3c_18);
  2221. int32_t var_48_22 = ((rax_669 | rax_588) ^ rax_615);
  2222. int32_t var_4c_17 = (rax_588 ^ var_44_14);
  2223. int32_t var_48_24 = ((var_48_22 | var_4c_17) ^ var_3c_18);
  2224. int32_t var_4c_18 = (var_4c_17 ^ (var_3c_18 & var_48_22));
  2225. encode32le(&arg1[0x1c], (var_44_14 ^ rax_234));
  2226. encode32le(&arg1[0x1d], (var_48_24 ^ rax_261));
  2227. encode32le(&arg1[0x1e], (((var_48_22 ^ var_48_24) ^ var_4c_18) ^ rax_315));
  2228. encode32le(&arg1[0x1f], ((!var_4c_18) ^ rax_342));
  2229. *arg1 = rax_369;
  2230. arg1[1] = rax_396;
  2231. arg1[2] = rax_450;
  2232. arg1[3] = rax_477;
  2233. arg1[4] = rax_504;
  2234. arg1[5] = rax_531;
  2235. arg1[6] = rax_585;
  2236. arg1[7] = rax_612;
  2237. arg1[8] = rax_639;
  2238. arg1[9] = rax_666;
  2239. arg1[0xa] = rax_649;
  2240. uint64_t rax_708 = rax_653;
  2241. arg1[0xb] = rax_708;
  2242. return rax_708;
  2243. }
  2244.  
  2245. uint64_t encode32le(char* arg1, int32_t arg2)
  2246. {
  2247. *arg1 = arg2;
  2248. arg1[1] = (arg2 >> 8);
  2249. arg1[2] = (arg2 >> 0x10);
  2250. uint64_t rax_7 = (arg2 >> 0x18);
  2251. arg1[3] = rax_7;
  2252. return rax_7;
  2253. }
  2254.  
  2255. uint64_t sosemanuk_prng(uint64_t arg1, int64_t arg2, uint64_t arg3)
  2256. {
  2257. int64_t var_28 = arg2;
  2258. uint64_t var_30 = arg3;
  2259. uint64_t rax_1 = *(arg1 + 0x80);
  2260. if (rax_1 <= 0x4f)
  2261. {
  2262. uint64_t var_10_1 = (0x50 - *(arg1 + 0x80));
  2263. if (var_10_1 > var_30)
  2264. {
  2265. var_10_1 = var_30;
  2266. }
  2267. memcpy(var_28, ((arg1 + 0x30) + *(arg1 + 0x80)), var_10_1);
  2268. var_28 = (var_28 + var_10_1);
  2269. var_30 = (var_30 - var_10_1);
  2270. rax_1 = arg1;
  2271. *(rax_1 + 0x80) = (*(arg1 + 0x80) + var_10_1);
  2272. }
  2273. while (var_30 != 0)
  2274. {
  2275. sosemanuk_internal(arg1);
  2276. if (var_30 <= 0x4f)
  2277. {
  2278. memcpy(var_28, (arg1 + 0x30), var_30);
  2279. rax_1 = arg1;
  2280. *(rax_1 + 0x80) = var_30;
  2281. var_30 = 0;
  2282. }
  2283. else
  2284. {
  2285. rax_1 = memcpy(var_28, (arg1 + 0x30), 0x50);
  2286. var_28 = (var_28 + 0x50);
  2287. var_30 = (var_30 - 0x50);
  2288. }
  2289. }
  2290. return rax_1;
  2291. }
  2292.  
  2293. uint64_t sosemanuk_encrypt(uint64_t arg1, char* arg2, char* arg3, int64_t arg4)
  2294. {
  2295. char* var_28 = arg2;
  2296. char* var_30 = arg3;
  2297. int64_t var_38 = arg4;
  2298. uint64_t rax_1 = *(arg1 + 0x80);
  2299. if (rax_1 <= 0x4f)
  2300. {
  2301. int64_t var_10_1 = (0x50 - *(arg1 + 0x80));
  2302. if (var_10_1 > var_38)
  2303. {
  2304. var_10_1 = var_38;
  2305. }
  2306. xorbuf(((arg1 + 0x30) + *(arg1 + 0x80)), var_28, var_30, var_10_1);
  2307. var_28 = &var_28[var_10_1];
  2308. var_30 = &var_30[var_10_1];
  2309. var_38 = (var_38 - var_10_1);
  2310. rax_1 = arg1;
  2311. *(rax_1 + 0x80) = (*(arg1 + 0x80) + var_10_1);
  2312. }
  2313. while (var_38 != 0)
  2314. {
  2315. sosemanuk_internal(arg1);
  2316. if (var_38 <= 0x4f)
  2317. {
  2318. xorbuf((arg1 + 0x30), var_28, var_30, var_38);
  2319. rax_1 = arg1;
  2320. *(rax_1 + 0x80) = var_38;
  2321. var_38 = 0;
  2322. }
  2323. else
  2324. {
  2325. rax_1 = xorbuf((arg1 + 0x30), var_28, var_30, 0x50);
  2326. var_28 = &var_28[0x50];
  2327. var_30 = &var_30[0x50];
  2328. var_38 = (var_38 - 0x50);
  2329. }
  2330. }
  2331. return rax_1;
  2332. }
  2333.  
  2334. void xorbuf(char* arg1, char* arg2, char* arg3, int64_t arg4)
  2335. {
  2336. char* var_10 = arg1;
  2337. char* var_18 = arg2;
  2338. char* var_20 = arg3;
  2339. int64_t var_28 = arg4;
  2340. while (true)
  2341. {
  2342. var_28 = (var_28 - 1);
  2343. if (var_28 == -1)
  2344. {
  2345. break;
  2346. }
  2347. *var_20 = (*var_10 ^ *var_18);
  2348. var_20 = &var_20[1];
  2349. var_10 = &var_10[1];
  2350. var_18 = &var_18[1];
  2351. }
  2352. }
  2353.  
  2354. void __libc_csu_fini()
  2355. {
  2356. return;
  2357. }
  2358.  
  2359. void __libc_csu_init()
  2360. {
  2361. _init();
  2362. }
  2363.  
  2364. int64_t __do_global_ctors_aux()
  2365. {
  2366. return -1;
  2367. }
  2368.  
  2369. int64_t _fini()
  2370. {
  2371. return __do_global_dtors_aux();
  2372. }
  2373.  
  2374.  
Add Comment
Please, Sign In to add comment