void *__fastcall initializeFunctions(char *a1) { int v1; // eax int v2; // eax int v3; // eax int v4; // eax int v5; // eax int v6; // eax int v7; // eax int v8; // eax int v9; // eax int v10; // eax void **v11; // rbx _DWORD *v12; // rbx __int64 v13; // rbx __int64 v14; // rbx void **v15; // rbx int v16; // eax char v18; // [rsp+1Ch] [rbp-34h] char v19; // [rsp+1Dh] [rbp-33h] char v20; // [rsp+1Eh] [rbp-32h] char v21; // [rsp+1Fh] [rbp-31h] char v22; // [rsp+20h] [rbp-30h] char v23; // [rsp+21h] [rbp-2Fh] char v24; // [rsp+22h] [rbp-2Eh] char v25; // [rsp+23h] [rbp-2Dh] int j; // [rsp+24h] [rbp-2Ch] char i; // [rsp+2Bh] [rbp-25h] int v28; // [rsp+2Ch] [rbp-24h] void *ptr; // [rsp+30h] [rbp-20h] int v30; // [rsp+38h] [rbp-18h] int v31; // [rsp+3Ch] [rbp-14h] v31 = 2; v30 = 1; ptr = malloc(0x10uLL); v28 = 1; for ( i = *a1; i == 17; i = a1[v16] ) { v1 = v28++; for ( i = a1[v1]; i != 18; i = a1[v2] ) v2 = v28++; v3 = v28++; v22 = a1[v3]; v4 = v28++; v23 = a1[v4]; v5 = v28++; v24 = a1[v5]; v6 = v28++; v25 = a1[v6]; v7 = v28++; v18 = a1[v7]; v8 = v28++; v19 = a1[v8]; v9 = v28++; v20 = a1[v9]; v10 = v28++; v21 = a1[v10]; if ( v30 >= v31 ) { v31 *= 2; ptr = realloc(ptr, 8LL * v31); } v11 = (void **)((char *)ptr + 8 * v30 - 8); *v11 = malloc(0x20uLL); v12 = (_DWORD *)*((_QWORD *)ptr + v30 - 1); *v12 = bytesToInt((unsigned __int8 *)&v18); *(_DWORD *)(*((_QWORD *)ptr + v30 - 1) + 20LL) = 0; v13 = *((_QWORD *)ptr + v30 - 1); *(_DWORD *)(v13 + 16) = bytesToInt((unsigned __int8 *)&v22); *(_DWORD *)(*((_QWORD *)ptr + v30 - 1) + 24LL) = v30 == 1; v14 = *((_QWORD *)ptr + v30 - 1); *(_QWORD *)(v14 + 8) = malloc(8LL * *(int *)(*((_QWORD *)ptr + v30 - 1) + 16LL)); for ( j = 0; j < *(_DWORD *)(*((_QWORD *)ptr + v30 - 1) + 16LL); ++j ) { v15 = (void **)(*(_QWORD *)(*((_QWORD *)ptr + v30 - 1) + 8LL) + 8LL * j); *v15 = malloc(0xA0uLL); } ++v30; v16 = v28++; } return ptr; }