Advertisement
Guest User

Untitled

a guest
Jan 21st, 2020
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 13.22 KB | None | 0 0
  1. /* r2dec pseudo code output */
  2. /* C:\Users\whiskey\Downloads\TcxLicenseNative.dll @ 0x18005810c */
  3. #include <stdint.h>
  4.  
  5. uint64_t fcn_1800579e0 (int32_t arg_38h, int32_t arg_8h, int32_t arg_18h, int32_t arg_20h, int32_t arg5, int32_t arg1, int32_t arg2, int32_t arg3, int32_t arg4) {
  6.     int32_t var_20h;
  7.     int32_t var_18h;
  8.     int32_t var_14h;
  9.     int32_t var_10h;
  10.     int32_t var_40h;
  11.     r8 = arg5;
  12.     rdi = arg1;
  13.     rsi = arg2;
  14.     rdx = arg3;
  15.     rcx = arg4;
  16.     arg_8h = rbx;
  17.     arg_18h = rsi;
  18.     arg_20h = rdi;
  19.     var_20h = rcx;
  20.     rbx = r8;
  21.     var_18h = edx;
  22.     r8 = rcx + 1;
  23.     eax = *(rcx);
  24.     edx--;
  25.     ecx = (int32_t) al;
  26.     var_20h = r8;
  27.     al >>= 3;
  28.     r9d = 3;
  29.     cl <<= 5;
  30.     eax = (int32_t) al;
  31.     var_18h = edx;
  32.     var_10h = r9d;
  33.     var_14h = cl;
  34.     if (eax != 0x15) {
  35.         goto label_2;
  36.     }
  37.     esi = 0xe29cd76b;
  38.     r15d = r9 + 5;
  39.     r12d = 0;
  40.     r14d = 0xff;
  41.     r13d = 0xffff;
  42. label_1:
  43.     r11d = 0x80;
  44.     if (r9d >= 1) {
  45.         r9d--;
  46.         eax = (int32_t) cl;
  47.         var_10h = r9d;
  48.         if (r9d == 0) {
  49.             if (edx > 0) {
  50.                 ecx = *(r8);
  51.                 edx--;
  52.                 r8++;
  53.                 var_18h = edx;
  54.                 var_20h = r8;
  55.                 r9d = r15d;
  56.                 eax >>= 7;
  57.                 var_10h = r15d;
  58.                 var_14h = cl;
  59.             } else {
  60.                 cl += cl;
  61.             }
  62.             var_14h = cl;
  63.         }
  64.         eax >>= 7;
  65.     } else {
  66.         if (r9d <= 0) {
  67.             goto label_4;
  68.         }
  69.         r10d = 1;
  70.         r10d -= r9d;
  71.         ax = fcn_1800572d0 (rdi, rsi, r9d, var_20h, 0);
  72.         r8d = (int32_t) ax;
  73.         ax = fcn_1800572d0 (rdi, rsi, r10d, var_20h, r8);
  74.         r9d = var_10h;
  75.         ecx = (int32_t) var_14h;
  76.         edx = var_18h;
  77.         r8 = var_20h;
  78.     }
  79.     if (ax == 0) {
  80.         goto label_4;
  81.     }
  82.     if (r9d >= 1) {
  83.         r9d--;
  84.         eax = (int32_t) cl;
  85.         var_10h = r9d;
  86.         if (r9d == 0) {
  87.             if (edx > 0) {
  88.                 ecx = *(r8);
  89.                 edx--;
  90.                 r8++;
  91.                 var_18h = edx;
  92.                 var_20h = r8;
  93.                 r9d = r15d;
  94.                 eax >>= 7;
  95.                 var_10h = r15d;
  96.                 var_14h = cl;
  97.             } else {
  98.                 cl += cl;
  99.             }
  100.             var_14h = cl;
  101.         }
  102.         eax >>= 7;
  103.     } else {
  104.         if (r9d <= 0) {
  105.             goto label_5;
  106.         }
  107.         r10d = 1;
  108.         r10d -= r9d;
  109.         ax = fcn_1800572d0 (rdi, rsi, r9d, var_20h, 0);
  110.         r8d = (int32_t) ax;
  111.         ax = fcn_1800572d0 (rdi, rsi, r10d, var_20h, r8);
  112.         r9d = var_10h;
  113.         ecx = (int32_t) var_14h;
  114.         edx = var_18h;
  115.         r8 = var_20h;
  116.     }
  117.     if (ax == 0) {
  118.         goto label_5;
  119.     }
  120.     if (r9d >= 1) {
  121.         r9d--;
  122.         eax = (int32_t) cl;
  123.         var_10h = r9d;
  124.         if (r9d == 0) {
  125.             if (edx > 0) {
  126.                 ecx = *(r8);
  127.                 edx--;
  128.                 r8++;
  129.                 var_18h = edx;
  130.                 var_20h = r8;
  131.                 r9d = r15d;
  132.                 eax >>= 7;
  133.                 var_10h = r15d;
  134.                 var_14h = cl;
  135.             } else {
  136.                 cl += cl;
  137.             }
  138.             var_14h = cl;
  139.         }
  140.         eax >>= 7;
  141.     } else {
  142.         if (r9d <= 0) {
  143.             goto label_6;
  144.         }
  145.         r10d = 1;
  146.         r10d -= r9d;
  147.         ax = fcn_1800572d0 (rdi, rsi, r9d, var_20h, 0);
  148.         r8d = (int32_t) ax;
  149.         ax = fcn_1800572d0 (rdi, rsi, r10d, var_20h, r8);
  150.         r9d = var_10h;
  151.         ecx = (int32_t) var_14h;
  152.         edx = var_18h;
  153.         r8 = var_20h;
  154.     }
  155.     if (ax != 0) {
  156.         if (r9d >= 7) {
  157.             r9d -= 7;
  158.             edi = (int32_t) cl;
  159.             var_10h = r9d;
  160.             if (r9d == 0) {
  161.                 if (edx > 0) {
  162.                     ecx = *(r8);
  163.                     edx--;
  164.                     r8++;
  165.                     var_18h = edx;
  166.                     var_20h = r8;
  167.                     r9d = r15d;
  168.                     edi >>= 1;
  169.                     var_10h = r15d;
  170.                     var_14h = cl;
  171.                 } else {
  172.                     cl <<= 7;
  173.                 }
  174.                 var_14h = cl;
  175.             }
  176.             edi >>= 1;
  177.         } else {
  178.             if (r9d > 0) {
  179.                 r10d = 7;
  180.                 r10d -= r9d;
  181.                 ax = fcn_1800572d0 (rdi, rsi, r9d, var_20h, 0);
  182.                 r8d = (int32_t) ax;
  183.                 ax = fcn_1800572d0 (rdi, rsi, r10d, var_20h, r8);
  184.                 r9d = var_10h;
  185.                 edi = (int32_t) ax;
  186.                 ecx = (int32_t) var_14h;
  187.                 edx = var_18h;
  188.                 r8 = var_20h;
  189.             } else {
  190.                 edi = (int32_t) r12w;
  191.             }
  192.         }
  193.         di += r11w;
  194.         if (di == r14w) {
  195.             goto label_7;
  196.         }
  197.         rdx = *((rbx + 8));
  198.         arg_38h = dil;
  199.         if (*((rbx + 0x10)) != rdx) {
  200.             *(rdx) = dil;
  201.             *((rbx + 8))++;
  202.         } else {
  203.             fcn_1800581e0 (rdi, rsi, rdx, rbx, arg_38h, r9);
  204.         }
  205.         r9d = var_10h;
  206.         ecx = (int32_t) var_14h;
  207.         edx = var_18h;
  208.         r8 = var_20h;
  209.         if (dil == 0) {
  210.             esi += 0xd1301;
  211.             goto label_8;
  212.         }
  213.         eax = (int32_t) dil;
  214.         esi += eax;
  215.         goto label_8;
  216.     }
  217. label_6:
  218.     if (r9d >= 6) {
  219.         r9d -= 6;
  220.         edi = (int32_t) cl;
  221.         var_10h = r9d;
  222.         if (r9d == 0) {
  223.             if (edx > 0) {
  224.                 eax = *(r8);
  225.                 edx--;
  226.                 r8++;
  227.                 var_14h = al;
  228.                 var_20h = r8;
  229.                 edi >>= 2;
  230.                 var_18h = edx;
  231.                 var_10h = r15d;
  232.             } else {
  233.                 cl <<= 6;
  234.             }
  235.             var_14h = cl;
  236.         }
  237.         edi >>= 2;
  238.     } else {
  239.         if (r9d > 0) {
  240.             r10d = 6;
  241.             r10d -= r9d;
  242.             ax = fcn_1800572d0 (rdi, rsi, r9d, var_20h, 0);
  243.             r8d = (int32_t) ax;
  244.             ax = fcn_1800572d0 (rdi, rsi, r10d, var_20h, r8);
  245.             edi = (int32_t) ax;
  246.         } else {
  247.             edi = (int32_t) r12w;
  248.         }
  249.     }
  250.     rax = *((rbx + 0x10));
  251.     rdx = *((rbx + 8));
  252.     if (di == 0) {
  253.         arg_38h = 0xff;
  254.         if (rax != rdx) {
  255.             *(rdx) = 0xff;
  256.             eax = r14d;
  257.             *((rbx + 8))++;
  258.             goto label_9;
  259.         }
  260.         fcn_1800581e0 (rdi, rsi, rdx, rbx, arg_38h, r9);
  261.         eax = r14d;
  262.         goto label_9;
  263.     }
  264.     arg_38h = dil;
  265.     if (rax == rdx) {
  266.         goto label_10;
  267.     }
  268.     *(rdx) = dil;
  269.     *((rbx + 8))++;
  270.     while (*((rbx + 0x10)) == rdx) {
  271. label_10:
  272.         fcn_1800581e0 (rdi, rsi, rdx, rbx, arg_38h, r9);
  273. label_0:
  274.         eax = 0xd1301;
  275.         if (dil != 0) {
  276.             eax = (int32_t) dil;
  277.         }
  278. label_9:
  279.         r9d = var_10h;
  280.         esi += eax;
  281.         ecx = (int32_t) var_14h;
  282.         edx = var_18h;
  283.         r8 = var_20h;
  284.         goto label_8;
  285. label_5:
  286.         if (r9d >= 6) {
  287.             r9d -= 6;
  288.             edi = (int32_t) cl;
  289.             var_10h = r9d;
  290.             if (r9d == 0) {
  291.                 if (edx > 0) {
  292.                     eax = *(r8);
  293.                     edx--;
  294.                     r8++;
  295.                     var_14h = al;
  296.                     var_20h = r8;
  297.                     edi >>= 2;
  298.                     var_18h = edx;
  299.                     var_10h = r15d;
  300.                 } else {
  301.                     cl <<= 6;
  302.                 }
  303.                 var_14h = cl;
  304.             }
  305.             edi >>= 2;
  306.         } else {
  307.             if (r9d > 0) {
  308.                 r10d = 6;
  309.                 r10d -= r9d;
  310.                 ax = fcn_1800572d0 (rdi, rsi, r9d, var_20h, 0);
  311.                 r8d = (int32_t) ax;
  312.                 ax = fcn_1800572d0 (rdi, rsi, r10d, var_20h, r8);
  313.                 edi = (int32_t) ax;
  314.             } else {
  315.                 edi = (int32_t) r12w;
  316.             }
  317.         }
  318.         rdx = *((rbx + 8));
  319.         dil += 0x40;
  320.         arg_38h = dil;
  321.     }
  322.     *(rdx) = dil;
  323.     *((rbx + 8))++;
  324.     goto label_0;
  325. label_4:
  326.     rdx = *((rbx + 8));
  327.     arg_38h = r12b;
  328.     if (*((rbx + 0x10)) != rdx) {
  329.         *(rdx) = r12b;
  330.         *((rbx + 8))++;
  331.     } else {
  332.         fcn_1800581e0 (rdi, rsi, rdx, rbx, arg_38h, r9);
  333.     }
  334.     r9d = var_10h;
  335.     esi += 0xd1301;
  336.     r14d = esi;
  337.     if (r9d >= 1) {
  338.         ecx = (int32_t) var_14h;
  339.         r9d--;
  340.         edx = var_18h;
  341.         eax = ecx;
  342.         r8 = var_20h;
  343.         var_10h = r9d;
  344.         if (r9d == 0) {
  345.             if (edx > 0) {
  346.                 ecx = *(r8);
  347.                 edx--;
  348.                 r8++;
  349.                 var_18h = edx;
  350.                 var_20h = r8;
  351.                 r9d = r15d;
  352.                 eax >>= 7;
  353.                 var_10h = r15d;
  354.                 var_14h = cl;
  355.             } else {
  356.                 cl += cl;
  357.             }
  358.             var_14h = cl;
  359.         }
  360.         eax >>= 7;
  361.     } else {
  362.         if (r9d > 0) {
  363.             r10d = 1;
  364.             r10d -= r9d;
  365.             ax = fcn_1800572d0 (rdi, rsi, r9d, var_20h, 0);
  366.             r8d = (int32_t) ax;
  367.             fcn_1800572d0 (rdi, rsi, r10d, var_20h, r8);
  368.             r9d = var_10h;
  369.         } else {
  370.             eax = (int32_t) r12w;
  371.         }
  372.         r8 = var_20h;
  373.         edx = var_18h;
  374.         ecx = (int32_t) var_14h;
  375.     }
  376.     if (ax == 0) {
  377.         goto label_11;
  378.     }
  379.     if (r9d >= 6) {
  380.         r9d -= 6;
  381.         edi = (int32_t) cl;
  382.         var_10h = r9d;
  383.         if (r9d == 0) {
  384.             if (edx > 0) {
  385.                 ecx = *(r8);
  386.                 edx--;
  387.                 r8++;
  388.                 var_18h = edx;
  389.                 var_20h = r8;
  390.                 r9d = r15d;
  391.                 edi >>= 2;
  392.                 var_10h = r15d;
  393.                 var_14h = cl;
  394.             } else {
  395.                 cl <<= 6;
  396.             }
  397.             var_14h = cl;
  398.         }
  399.         edi >>= 2;
  400.     } else {
  401.         if (r9d > 0) {
  402.             r10d = 6;
  403.             r10d -= r9d;
  404.             ax = fcn_1800572d0 (rdi, rsi, r9d, var_20h, 0);
  405.             r8d = (int32_t) ax;
  406.             ax = fcn_1800572d0 (rdi, rsi, r10d, var_20h, r8);
  407.             r9d = var_10h;
  408.             edi = (int32_t) ax;
  409.             ecx = (int32_t) var_14h;
  410.             edx = var_18h;
  411.             r8 = var_20h;
  412.         } else {
  413.             edi = (int32_t) r12w;
  414.         }
  415.     }
  416.     di++;
  417.     if (di == 0) {
  418.         goto label_11;
  419.     }
  420.     do {
  421.         rdx = *((rbx + 8));
  422.         arg_38h = r12b;
  423.         if (*((rbx + 0x10)) != rdx) {
  424.             *(rdx) = r12b;
  425.             *((rbx + 8))++;
  426.         } else {
  427.             al = fcn_1800581e0 (rdi, rsi, rdx, rbx, arg_38h, r9);
  428.         }
  429.         esi = r14 + 0xd1301;
  430.         r14d = esi;
  431.         di += r13w;
  432.     } while (di != 0);
  433.     r9d = var_10h;
  434.     ecx = (int32_t) var_14h;
  435.     edx = var_18h;
  436.     r8 = var_20h;
  437. label_11:
  438.     r14d = 0xff;
  439. label_8:
  440.     if (r9d != 0) {
  441.         goto label_1;
  442.     }
  443.     do {
  444. label_2:
  445.         al = 0;
  446. label_3:
  447.         r11 = &var_40h;
  448.         rbx = *((r11 + 0x30));
  449.         rsi = *((r11 + 0x40));
  450.         rdi = *((r11 + 0x48));
  451.         return rax;
  452. label_7:
  453.     } while (r9d == 0);
  454.     r11d = 0x10;
  455.     if (r9d >= r11d) {
  456.         r9d -= r11d;
  457.         eax = (int32_t) cl;
  458.         var_10h = r9d;
  459.         if (r9d == 0) {
  460.             if (edx > 0) {
  461.                 ecx = *(r8);
  462.                 r9d = r15d;
  463.                 r8++;
  464.                 var_10h = r15d;
  465.                 edx--;
  466.                 var_20h = r8;
  467.                 var_18h = edx;
  468.                 eax = (int32_t) r12w;
  469.                 var_14h = cl;
  470.             } else {
  471.                 cl = 0;
  472.             }
  473.             var_14h = cl;
  474.         }
  475.         eax = (int32_t) r12w;
  476.     } else {
  477.         if (r9d > 0) {
  478.             r10d = r11d;
  479.             r10d -= r9d;
  480.             ax = fcn_1800572d0 (rdi, rsi, r9d, var_20h, 0);
  481.             r8d = (int32_t) ax;
  482.             fcn_1800572d0 (rdi, rsi, r10d, var_20h, r8);
  483.             r9d = var_10h;
  484.             ecx = (int32_t) var_14h;
  485.             edx = var_18h;
  486.             r8 = var_20h;
  487.         } else {
  488.             eax = r12d;
  489.         }
  490.     }
  491.     r10d = (int32_t) ax;
  492.     r10d <<= 0x10;
  493.     if (r9d >= r11d) {
  494.         r9d -= r11d;
  495.         var_10h = r9d;
  496.         if (r9d == 0) {
  497.             if (edx <= 0) {
  498.                 goto label_12;
  499.             }
  500.             ecx = *(r8);
  501.             r9d = r15d;
  502.             var_10h = r15d;
  503.             cl = 0;
  504.         } else {
  505.         } else {
  506.         }
  507.     }
  508.     if (r9d <= 0) {
  509.         goto label_12;
  510.     }
  511.     r11d -= r9d;
  512.     ax = fcn_1800572d0 (rdi, rsi, r9d, var_20h, 0);
  513.     r8d = (int32_t) ax;
  514.     ax = fcn_1800572d0 (rdi, rsi, r11d, var_20h, r8);
  515.     r9d = var_10h;
  516.     r12d = (int32_t) ax;
  517.     ecx = (int32_t) var_14h;
  518. label_12:
  519.     eax = (int32_t) r12w;
  520.     eax |= r10d;
  521.     if (esi != eax) {
  522.         goto label_2;
  523.     }
  524.     r15b -= var_10h;
  525.     eax = 0xffffffff;
  526.     edx = (int32_t) cl;
  527.     ecx = (int32_t) r15b;
  528.     edx >>= cl;
  529.     ecx = r9d;
  530.     eax <<= cl;
  531.     eax = ~eax;
  532.     eax &= 0xca;
  533.     al = (dl == al) ? 1 : 0;
  534.     goto label_3;
  535. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement