C++ TODO __fastcall
int __fastcall init_keys2(char *a1, char *a2) { char *v2; // r6 char *v3; // r5 int v4; // r1 signed int v5; // r2 char v6; // r6 int result; // r0 char *v8; // [sp+8h] [bp-10h] v8 = a2; v2 = a1; v3 = (char*) malloc(0x11u); int k = (int) v3; int k2 = (int) malloc(0x31u); v4 = 0; do { v3[v4] = v2[v4 + 4]; if (!v4) ++*(char*) k; *(char*) (k2 + v4) = *(char*) (k + v4); ++v4; v3 = (char*) k; } while (v4 != 16); *(char*) (k + 16) = 0; v5 = 16; do { *(char*) (k2 + v5) = v8[v5 - 12]; v6 = 2; if (v5 != 19) { if (v5 != 17) goto LABEL_10; v6 = -1; } *(char*) (k2 + v5) += v6; LABEL_10: ++v5; } while (v5 != 48); result = k2; *(char*) (k2 + 48) = 0; return result; }
char c1[] = "bpim5486ed42c86ecc09i8"; char c2[] = "a0xwf91c3e12314dd2953c3e95c524ac6a3abb"; cout << "son.init_keys2():" << init_keys2(c1, c2) << endl;