some of the ca files broken into source code
ive broken down some of the ca .dlls and exe's into code for u guys happy hacking
asplnet.dll to asplnet.c
v3ine***.dll to v3ine***.c
hsinst.dll to hsinst.c
IM WORKING ON THE REST
but they are packed/encrypeted really well and my laptop is taking forever
since its only a p4 1.8ghz and 512 mb of ram not to mention some of the files are very large and could take days to break down into code
*****and some bonus files*******
ahnrpt.exe to ahnrpt.c
and
cav.exe to cav.c
and last but nnot least for now
ortp.dll to orpt.c
should have all the hshield files done by the weekend depnding on how long it takes me to unpack/decrypt them
if anyone has an unpacked engine.exe i can use that will greatly speed up the process
asplnet.dll to asplnet.c
Code:
int global19 = 0;
union { __size32 * x7; union { int x5; __size32 * x6; } * x8; union { int x5; __size32 * x6; } * x13; union { int x5; __size32 * x6; } * x18; union { int x5; __size32 * x6; } * x22; union { int x5; __size32 * x6; } * x26; union { int x5; __size32 * x6; } * x30; union { int x5; __size32 * x6; } * x34; union { int x5; __size32 * x6; } * x38; union { int x5; __size32 * x6; } * x42; union { int x5; __size32 * x6; } * x46; union { int x5; __size32 * x6; } * x50; union { int x5; __size32 * x6; } * x54; union { int x5; __size32 * x6; } * x58; union { int x5; __size32 * x6; } * x62; union { int x5; __size32 * x6; } * x66; union { int x5; __size32 * x6; } * x70; union { int x5; __size32 * x6; } * x74; union { int x5; __size32 * x6; } * x78; int x82; } global1;
union { __size32 * x16; union { unsigned int x1; __size32 * x2; } * x17; union { unsigned int x1; __size32 * x2; } * x21; union { unsigned int x1; __size32 * x2; } * x25; union { unsigned int x1; __size32 * x2; } * x29; union { unsigned int x1; __size32 * x2; } * x33; union { unsigned int x1; __size32 * x2; } * x37; union { unsigned int x1; __size32 * x2; } * x41; union { unsigned int x1; __size32 * x2; } * x45; union { unsigned int x1; __size32 * x2; } * x49; union { unsigned int x1; __size32 * x2; } * x53; union { unsigned int x1; __size32 * x2; } * x57; union { unsigned int x1; __size32 * x2; } * x61; union { unsigned int x1; __size32 * x2; } * x65; union { unsigned int x1; __size32 * x2; } * x69; union { unsigned int x1; __size32 * x2; } * x73; union { unsigned int x1; __size32 * x2; } * x77; union { unsigned int x1; __size32 * x2; } * x81; } global10;
unsigned int global7 = 0;
__size32 global3 = 0;// 4 bytes
__size32 proc1(unsigned int param1, unsigned int param2, int param3, __size32 param4, __size32 param5, __size32 param6);
__size32 proc2();
// address: 0x100048d9
void _start(__size32 param1, int param2, __size32 param3, __size32 param4, __size32 param5) {
int eax; // r24
int eax_1; // r24{51}
int eax_2; // r24{38}
int eax_3; // r24{122}
__size32 ebp_1; // r29
union { void * x83; int x84; } ebp_3; // r29
union { void * x83; int x84; } ebp_4; // r29
union { void * x83; int x84; } ebp_5; // r29
union { void * x83; int x84; } ebp_7; // r29{3}
__size32 ebx; // r27
__size32 ebx_1; // r27{179}
__size32 ecx; // r25
__size32 edi; // r31
__size32 edi_1; // r31{38}
__size32 edx; // r26
int esi; // r30
int esi_1; // r30{51}
void *esp; // r28
__size32 *esp_1; // r28{51}
__size32 *esp_10; // r28{11}
__size32 *esp_2; // r28{38}
__size32 *esp_4; // r28{191}
__size32 *esp_5; // r28{84}
__size32 *esp_6; // r28{180}
__size32 *esp_7; // r28{67}
__size32 *esp_8; // r28{156}
__size32 *esp_9; // r28{144}
unsigned int local0; // m[esp - 32]
__size32 local1; // m[esp - 28]
__size32 local10; // m[esp + 12]
__size32 local11; // ebx_1{143}
__size32 *local12; // esp_9{144}
union { void * x83; int x84; } local13; // ebp_3{145}
__size32 local14; // param4{153}
__size32 local15; // param5{154}
__size32 *local16; // esp_8{156}
union { void * x83; int x84; } local17; // ebp_4{157}
__size32 *local18; // esp_6{180}
union { void * x83; int x84; } local19; // ebp_5{181}
int local2; // m[esp - 24]
__size32 local20; // ecx{189}
__size32 local21; // edx{190}
__size32 *local22; // esp_4{191}
int local23; // esi_1{192}
__size32 local3; // m[esp - 20]
__size32 local4; // m[esp - 16]
__size32 local5; // m[esp - 12]
__size32 local6; // m[esp - 8]
__size32 local7; // m[esp - 4]
__size32 local8; // m[esp + 4]
int local9; // m[esp + 8]
ebp_7 = esp - 4;
ebx_1 = param1;
esi_1 = param2;
esp_10 = esp - 16;
edi_1 = param3;
local11 = ebx_1;
local12 = esp_10;
local13 = ebp_7;
local14 = param4;
local15 = param5;
local16 = esp_10;
local17 = ebp_7;
local18 = esp_10;
local19 = ebp_7;
if (param2 != 0) {
if (param2 != 1 && param2 != 2) {
L12:
esp_6 = local18;
ebp_5 = local19;
*(__size32*)(esp_6 - 4) = edi_1;
*(int*)(esp_6 - 8) = esi_1;
*(__size32*)(esp_6 - 12) = ebx_1;
eax = proc2(); /* Warning: also results in esp_7 */
local20 = param4;
local21 = param5;
local22 = esp_7;
local23 = esi_1;
*(int*)(ebp_5 + 12) = eax;
if (esi_1 != 1) {
L8:
ecx = local20;
edx = local21;
esp_4 = local22;
esi_1 = local23;
if ( !(esi_1 != 0 && esi_1 != 3)) {
*(__size32*)(esp_4 - 4) = edi_1;
*(int*)(esp_4 - 8) = esi_1;
*(__size32*)(esp_4 - 12) = ebx_1;
eax = proc1(*(esp_4 - 28), *(esp_4 - 24), *(esp_4 - 8), ecx, edx, esi_1); /* Warning: also results in esi, ecx, edx */
if (eax == 0) {
*(int*)(ebp_5 + 12) = *(ebp_5 + 12) & eax;
}
if ( !(*(ebp_5 + 12) == 0 || global19 == 0)) {
*(__size32*)(esp_3 - 4) = edi_1;
*(int*)(esp_3 - 8) = esi;
*(__size32*)(esp_3 - 12) = ebx_1;
(*global19)(local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, global19, ecx, edx, ebx_1, ebp_5, esi, edi_1, LOGICALFLAGS32(global19), LOGICALFLAGS32(global19), LOGICALFLAGS32(global19));
*(int*)(ebp + 12) = eax_3;
}
}
} else {
if (eax == 0) {
*(__size32*)(esp_6 - 4) = edi_1;
*(int*)(esp_6 - 8) = eax;
*(__size32*)(esp_6 - 12) = ebx_1;
esi = proc1(*(esp_6 - 28), *(esp_6 - 24), *(esp_6 - 8), param4, param5, esi_1); /* Warning: also results in ecx, edx, esp_5 */
local20 = ecx;
local21 = edx;
local22 = esp_5;
local23 = esi;
goto L8;
}
}
} else {
if (global19 == 0) {
L16:
ebx_1 = local11;
esp_9 = local12;
ebp_3 = local13;
*(__size32*)(esp_9 - 4) = edi_1;
*(int*)(esp_9 - 8) = esi_1;
*(__size32*)(esp_9 - 12) = ebx_1;
eax_1 = proc1(*(esp_9 - 28), *(esp_9 - 24), *(esp_9 - 8), param4, param5, esi_1); /* Warning: also results in esi_1, ecx, edx, esp_1 */
local14 = ecx;
local15 = edx;
local16 = esp_1;
local17 = ebp_3;
flags = LOGICALFLAGS32(eax_1);
L14:
param4 = local14;
param5 = local15;
esp_8 = local16;
ebp_4 = local17;
local18 = esp_8;
local19 = ebp_4;
if (flags) {
goto L12;
} else {
L13:
}
} else {
(*global19)(pc, param1, param2, param3, edi, esi, ebx, ebp_1, param1, param2, param3, global19, param4, param5, param1, esp - 4, param2, param3, LOGICALFLAGS32(global19), LOGICALFLAGS32(global19), LOGICALFLAGS32(global19));
local11 = ebx;
local12 = esp_2;
local13 = ebp_1;
if (eax_2 == 0) {
goto L13;
} else {
goto L16;
}
}
}
} else {
flags = SUBFLAGS32(*0x10006b0c, 0, global1);
goto L14;
}
return;
}
// address: 0x1000482e
__size32 proc1(unsigned int param1, unsigned int param2, int param3, __size32 param4, __size32 param5, __size32 param6) {
__size32 *eax; // r24
int eax_1; // r24
int ecx; // r25
union { unsigned int x1; __size32 * x2; } esi; // r30
union { unsigned int x1; __size32 * x2; } esi_1; // r30
union { unsigned int x1; __size32 * x2; } esi_2; // r30
union { unsigned int x1; __size32 * x2; } esi_4; // r30
union { unsigned int x1; __size32 * x2; } esi_5; // r30
int esp; // r28
__size32 *esp_6; // r28{73}
size_t local0; // m[esp - 4]
unsigned int local1; // m[esp - 8]
unsigned int local10; // m[esp - 8]{152}
unsigned int local11; // m[esp - 12]{150}
unsigned int local12; // m[esp - 12]{153}
union { unsigned int x1; __size32 * x2; } local13; // esi_1{114}
__size32 local14; // local6{148}
unsigned int local15; // local9{149}
unsigned int local16; // local11{150}
int local17; // local4{160}
union { __size32 * x11; int x12; } local18; // esp{122}
union { unsigned int x1; __size32 * x2; } local19; // esi_4{123}
unsigned int local2; // m[esp - 12]
__size32 local20; // local7{151}
unsigned int local21; // local10{152}
unsigned int local22; // local12{153}
int local23; // local5{161}
__size32 local24; // param4{138}
int local3; // m[esp + 8]
int local4; // m[esp + 8]{160}
int local5; // m[esp + 8]{161}
__size32 local6; // m[esp - 4]{148}
__size32 local7; // m[esp - 4]{151}
int local8; // m[esp - 4]{73}
unsigned int local9; // m[esp - 8]{149}
local15 = param2;
local16 = param1;
local17 = param3;
if (param3 != 0) {
L17:
ecx = *0x100050b8;
ecx = *ecx;
global3 = ecx;
if (param3 != 1) {
if (param3 == 0) {
eax_1 = global7;
if (global7 != 0) {
ecx = *0x10006b18;
local6 = param6;
esp = esp - 4;
esi = ecx - 4;
local13 = esi;
local14 = local6;
esi_1 = local13;
local6 = local14;
local9 = local15;
local11 = local16;
local4 = local17;
local18 = esp;
local19 = esi_1;
local20 = local6;
local21 = local9;
local22 = local11;
local23 = local4;
while (esi_1 >= eax_1) {
ecx = *esi_1;
if (ecx != 0) {
(*ecx)(local11, local9, local6, local4, eax_1, ecx, param5, esi_1, LOGICALFLAGS32(ecx), LOGICALFLAGS32(ecx), LOGICALFLAGS32(ecx));
local18 = esp_6;
local19 = esi_5;
local20 = local8;
local21 = local1;
local22 = local2;
local23 = local3;
eax_1 = global7;
}
esp = local18;
esi_4 = local19;
local7 = local20;
local10 = local21;
local12 = local22;
local5 = local23;
esi_2 = esi_4 - 4;
local13 = esi_2;
local14 = local7;
local15 = local10;
local16 = local12;
local17 = local5;
esi_1 = local13;
local6 = local14;
local9 = local15;
local11 = local16;
local4 = local17;
local18 = esp;
local19 = esi_1;
local20 = local6;
local21 = local9;
local22 = local11;
local23 = local4;
}
local0 = eax_1;
free(*(esp - 4));
global7 = 0;
ecx = *(esp - 4);
param6 = *esp;
esp += 4;
}
}
L1:
local0 = 1;
eax = *(esp - 4);
local24 = ecx;
} else {
malloc(128);
param4 = 128;
*(__size32 **)0x10006b1c = eax;
if (eax != 0) {
*(__size32*)eax = 0;
global10 = global7;
_initterm();
global1++;
ecx = 0x1000600c;
goto L1;
} else {
L14:
eax = 0;
local24 = param4;
}
}
} else {
if (global1 <= param3) {
goto L14;
} else {
global1 = global1 - 1;
goto L17;
}
}
param4 = local24;
return eax; /* WARNING: Also returning: esi_6 := param6, ecx := param4, edx := param5 */
}
// address: 0x100030c0
__size32 proc2() {
return 1;
}
Code:
union { __size32 * x7; union { int x5; __size32 * x6; } * x8; union { int x5; __size32 * x6; } * x13; union { int x5; __size32 * x6; } * x18; union { int x5; __size32 * x6; } * x22; union { int x5; __size32 * x6; } * x26; union { int x5; __size32 * x6; } * x30; union { int x5; __size32 * x6; } * x34; union { int x5; __size32 * x6; } * x38; union { int x5; __size32 * x6; } * x42; union { int x5; __size32 * x6; } * x46; union { int x5; __size32 * x6; } * x50; union { int x5; __size32 * x6; } * x54; union { int x5; __size32 * x6; } * x58; union { int x5; __size32 * x6; } * x62; union { int x5; __size32 * x6; } * x66; union { int x5; __size32 * x6; } * x70; union { int x5; __size32 * x6; } * x74; union { int x5; __size32 * x6; } * x78; int x82; } global1;
union { __size32 * x16; union { unsigned int x1; __size32 * x2; } * x17; union { unsigned int x1; __size32 * x2; } * x21; union { unsigned int x1; __size32 * x2; } * x25; union { unsigned int x1; __size32 * x2; } * x29; union { unsigned int x1; __size32 * x2; } * x33; union { unsigned int x1; __size32 * x2; } * x37; union { unsigned int x1; __size32 * x2; } * x41; union { unsigned int x1; __size32 * x2; } * x45; union { unsigned int x1; __size32 * x2; } * x49; union { unsigned int x1; __size32 * x2; } * x53; union { unsigned int x1; __size32 * x2; } * x57; union { unsigned int x1; __size32 * x2; } * x61; union { unsigned int x1; __size32 * x2; } * x65; union { unsigned int x1; __size32 * x2; } * x69; union { unsigned int x1; __size32 * x2; } * x73; union { unsigned int x1; __size32 * x2; } * x77; union { unsigned int x1; __size32 * x2; } * x81; } global10;
unsigned int global7 = 0;
__size32 global3 = 0;// 4 bytes
__size32 ??4V3INetEx@@QAEAAV0@ABV0@@Z();
void __imp__initterm();
// address: 0x10003f3c
__size32 ?Cancel@V3INetEx@@QAEHXZ(unsigned int param1, unsigned int param2, int param3, __size32 param4, __size32 param5, __size32 param6) {
__size32 *eax; // r24
int eax_1; // r24
int ecx; // r25
union { unsigned int x1; __size32 * x2; } esi; // r30
union { unsigned int x1; __size32 * x2; } esi_1; // r30
union { unsigned int x1; __size32 * x2; } esi_2; // r30
union { unsigned int x1; __size32 * x2; } esi_4; // r30
union { unsigned int x1; __size32 * x2; } esi_5; // r30
int esp; // r28
__size32 *esp_6; // r28{73}
size_t local0; // m[esp - 4]
unsigned int local1; // m[esp - 8]
unsigned int local10; // m[esp - 12]{150}
unsigned int local11; // m[esp - 12]{153}
union { unsigned int x1; __size32 * x2; } local12; // esi_1{114}
unsigned int local13; // local8{149}
unsigned int local14; // local10{150}
int local15; // local4{160}
union { __size32 * x11; int x12; } local16; // esp{122}
union { unsigned int x1; __size32 * x2; } local17; // esi_4{123}
__size32 local18; // local0{151}
unsigned int local19; // local9{152}
unsigned int local2; // m[esp - 12]
unsigned int local20; // local11{153}
int local21; // local5{161}
__size32 local22; // param4{138}
int local3; // m[esp + 8]
int local4; // m[esp + 8]{160}
int local5; // m[esp + 8]{161}
__size32 local6; // m[esp - 4]{148}
int local7; // m[esp - 4]{73}
unsigned int local8; // m[esp - 8]{149}
unsigned int local9; // m[esp - 8]{152}
local13 = param2;
local14 = param1;
local15 = param3;
if (param3 != 0) {
L17:
ecx = *0x1000505c;
ecx = *ecx;
global3 = ecx;
if (param3 != 1) {
if (param3 == 0) {
eax_1 = global7;
if (global7 != 0) {
ecx = *0x10006354;
local0 = param6;
esp = esp - 4;
esi = ecx - 4;
local12 = esi;
esi_1 = local12;
local6 = local0;
local8 = local13;
local10 = local14;
local4 = local15;
local16 = esp;
local17 = esi_1;
local18 = local6;
local19 = local8;
local20 = local10;
local21 = local4;
while (esi_1 >= eax_1) {
ecx = *esi_1;
if (ecx != 0) {
(*ecx)(local10, local8, local6, local4, eax_1, ecx, param5, esi_1, LOGICALFLAGS32(ecx), LOGICALFLAGS32(ecx), LOGICALFLAGS32(ecx));
local16 = esp_6;
local17 = esi_5;
local18 = local7;
local19 = local1;
local20 = local2;
local21 = local3;
eax_1 = global7;
}
esp = local16;
esi_4 = local17;
local0 = local18;
local9 = local19;
local11 = local20;
local5 = local21;
esi_2 = esi_4 - 4;
local12 = esi_2;
local13 = local9;
local14 = local11;
local15 = local5;
esi_1 = local12;
local6 = local0;
local8 = local13;
local10 = local14;
local4 = local15;
local16 = esp;
local17 = esi_1;
local18 = local6;
local19 = local8;
local20 = local10;
local21 = local4;
}
local0 = eax_1;
free(*(esp - 4));
global7 = 0;
ecx = *(esp - 4);
param6 = *esp;
esp += 4;
}
}
L1:
local0 = 1;
eax = *(esp - 4);
local22 = ecx;
} else {
malloc(128);
param4 = 128;
*(__size32 **)0x10006358 = eax;
if (eax != 0) {
*(__size32*)eax = 0;
global10 = global7;
_initterm();
global1++;
ecx = 0x10006004;
goto L1;
} else {
L14:
eax = 0;
local22 = param4;
}
}
} else {
if (global1 <= param3) {
goto L14;
} else {
global1 = global1 - 1;
goto L17;
}
}
param4 = local22;
return eax; /* WARNING: Also returning: esi_6 := param6, ecx := param4, edx := param5 */
}
// address: 0x100033e0
__size32 ??4V3INetEx@@QAEAAV0@ABV0@@Z() {
return 1;
}
// address: 0x10004084
void __imp__initterm() {
_initterm();
return;
}
Code:
__size32 global2 = 0;// 4 bytes
// address: 0x10004370
int main(__size32 argc, __size32 argv, int envp) {
if (argv == 0) {
global2 = 0;
L1:
} else {
if (argv - 1 != 0) {
goto L1;
} else {
global2 = argc;
}
}
return 1;
}
but they are packed/encrypeted really well and my laptop is taking forever
since its only a p4 1.8ghz and 512 mb of ram not to mention some of the files are very large and could take days to break down into code
*****and some bonus files*******
ahnrpt.exe to ahnrpt.c
Code:
// address: 0x405b66
int main(int ??, char *??[], char *envp[]) {
__size32 eax; // r24
LPCSTR local0; // m[esp + 8]
LPSTR local1; // m[esp + 4]
lstrcpynA(local1, local0, 1024);
return eax;
}
cav.exe to cav.c
Code:
__size32 global10 = 0;// 4 bytes
__size32 global9 = 0;// 4 bytes
__size32 global8 = 0;// 4 bytes
__size32 global7 = 0;// 4 bytes
__size32 global6 = 0;// 4 bytes
__size32 global4 = 0;// 4 bytes
unsigned int global2 = 0;
__size32 global15 = 0;// 4 bytes
__size32 global12 = 0;// 4 bytes
__size32 proc1();
__size32 proc2(__size32 param1);
// address: 0x401ee2
int main(int argc, char *argv[], char *envp[]) {
__size32 eax; // r24
__size32 local0; // m[esp - 16]
HeapCreate();
global12 = eax;
if (eax == 0) {
L1:
eax = 0;
} else {
eax = proc1();
global15 = eax;
if (eax != 3) {
L2:
eax = 1;
} else {
eax = proc2(1016);
if (eax != 0) {
goto L2;
} else {
local0 = *0x407720;
HeapDestroy(local0);
goto L1;
}
}
}
return eax;
}
// address: 0x401ec8
__size32 proc1() {
__size32 eax; // r24
if (*0x4072d8 != 2 || global2 < 5) {
eax = 3;
} else {
eax = 1;
}
return eax;
}
// address: 0x402ffd
__size32 proc2(__size32 param1) {
__size32 eax; // r24
HANDLE local0; // m[esp - 12]
local0 = *0x407720;
HeapAlloc(local0, 0, 320);
global4 = eax;
if (eax != 0) {
global6 = 0;
global7 = 0;
global8 = eax;
global9 = param1;
global10 = 16;
eax = 1;
}
return eax;
}
and last but nnot least for now
ortp.dll to orpt.c
Code:
void ortp_srtp_add_stream();
// address: 0x1000cdfd
void ortp_srtp_add_stream(int param1, __size32 param2, unsigned int param3, __size32 param4, __size32 param5, __size32 param6, __size32 param7) {
int eax; // r24
int ecx; // r25
__size32 ecx_1; // r25{191}
unsigned int ecx_2; // r25{25}
unsigned int ecx_3; // r25{22}
int ecx_4; // r25{18}
int ecx_5; // r25{15}
__size32 ecx_6; // r25{113}
int ecx_7; // r25{122}
int edi; // r31
union { int x3; __size8 * x4; } edi_1; // r31
union { int x3; __size8 * x4; } edi_2; // r31
union { int x7; __size32 * x8; } edi_4; // r31
union { int x7; __size32 * x8; } edi_5; // r31
union { int x7; __size32 * x8; } edi_6; // r31
union { int x7; __size32 * x8; } edi_7; // r31
union { int x7; __size32 * x8; } edi_8; // r31
union { int x7; __size32 * x8; } edi_9; // r31
int edx; // r26
int esi; // r30
union { int x1; __size8 * x2; } esi_1; // r30
union { int x1; __size8 * x2; } esi_2; // r30
union { int x5; __size32 * x6; } esi_4; // r30
union { int x5; __size32 * x6; } esi_5; // r30
union { int x5; __size32 * x6; } esi_6; // r30
union { int x5; __size32 * x6; } esi_7; // r30
union { int x5; __size32 * x6; } esi_8; // r30
union { int x5; __size32 * x6; } esi_9; // r30
void *esp; // r28
int local1; // m[esp - 32]
__size32 local13; // ecx_1{191}
union { int x1; __size8 * x2; } local14; // esi_1{192}
union { int x3; __size8 * x4; } local15; // edi_1{193}
union { int x5; __size32 * x6; } local16; // esi_5{198}
union { int x7; __size32 * x8; } local17; // edi_5{199}
union { int x5; __size32 * x6; } local18; // esi_7{201}
union { int x7; __size32 * x8; } local19; // edi_7{202}
union { int x5; __size32 * x6; } local20; // esi_8{204}
union { int x7; __size32 * x8; } local21; // edi_8{205}
ecx_5 = param2 ^ ( (param2 < 0) ? -1 : 0);
ecx_4 = ecx_5 - ( (param2 < 0) ? -1 : 0);
ecx_3 = ecx_4 & 0xf ^ ( (param2 < 0) ? -1 : 0);
ecx_2 = ecx_3 - ( (param2 < 0) ? -1 : 0);
edi = param1 ^ ( (param1 < 0) ? -1 : 0);
edi = edi - ( (param1 < 0) ? -1 : 0);
edi = edi & 0xf ^ ( (param1 < 0) ? -1 : 0);
edi = edi - ( (param1 < 0) ? -1 : 0);
if ((ecx_2 | edi) != 0) {
if (ecx_2 != edi) {
esi = param2;
edi = param1;
ecx = param3 / 4;
local16 = esi;
local17 = edi;
esi_5 = local16;
edi_5 = local17;
local18 = esi_5;
local19 = edi_5;
while (ecx != 0) {
*(__size32*)(__size32 *)edi = *esi_5;
esi_6 = esi_5 + ( (DF == 0) ? 4 : -4);
edi_6 = edi_5 + ( (DF == 0) ? 4 : -4);
ecx = ecx - 1;
local16 = esi_6;
local17 = edi_6;
local18 = esi_6;
local19 = edi_6;
esi_5 = local16;
edi_5 = local17;
local18 = esi_5;
local19 = edi_5;
}
esi_7 = local18;
edi_7 = local19;
ecx = param3 & 0x3;
local20 = esi_7;
local21 = edi_7;
esi_8 = local20;
edi_8 = local21;
while (ecx != 0) {
*(__size8*)(__size8 *)edi = *esi_8;
esi_9 = esi_8 + ( (DF == 0) ? 1 : -1);
edi_9 = edi_8 + ( (DF == 0) ? 1 : -1);
ecx = ecx - 1;
local20 = esi_9;
local21 = edi_9;
esi_8 = local20;
edi_8 = local21;
}
} else {
esi = param2;
edi = param1;
ecx_6 = 16 - ecx_2;
local13 = ecx_6;
local14 = esi;
local15 = edi;
ecx_1 = local13;
esi_1 = local14;
edi_1 = local15;
while (ecx_1 != 0) {
*(__size8*)(__size8 *)edi = *esi_1;
esi_2 = esi_1 + ( (DF == 0) ? 1 : -1);
edi_2 = edi_1 + ( (DF == 0) ? 1 : -1);
ecx_1 = ecx_1 - 1;
local13 = ecx_1;
local14 = esi_2;
local15 = edi_2;
ecx_1 = local13;
esi_1 = local14;
edi_1 = local15;
}
ortp_srtp_add_stream(ecx_7, edx, eax, param2, esp - 4, esi_4, edi_4);
}
} else {
if (param3 != (param3 & 0x7f)) {
ortp_srtp_add_stream(pc, param1, param2, param3 - (param3 & 0x7f), local1, param3 & 0x7f, param7, param6, param4, param5, param1, param2, param3, param1, param3 & 0x7f, ecx_2 | edi, param2, esp - 4, param3 - (param3 & 0x7f), edi, SUBFLAGS32(param3, param3 & 0x7f, param3 - (param3 & 0x7f)), param3 - (param3 & 0x7f) == 0, param3 < (unsigned int)(param3 & 0x7f));
}
if ( !flags) {
*(__size32*)(ebp - 20) = edx;
*(__size32*)(ebp - 16) = ebx;
while (ecx != 0) {
*(__size8*)edi = *esi;
}
}
}
return;
}
// address: 0x1000cd76
void ortp_srtp_add_stream() {
}
if anyone has an unpacked engine.exe i can use that will greatly speed up the process


