int RTMPAllocAdapterBlock(undefined4 param_1,undefined4 *param_2)
{
int iVar1;
int iVar2;
int iVar3;
undefined1 *puVar4;
undefined4 *puVar5;
int iVar6;
undefined4 *local_28;
void *local_24;
local_28 = (undefined4 *)0x0;
local_24 = (void *)0x0;
if (2 < RTDebugLevel) {
printk("--> RTMPAllocAdapterBlock\n");
}
RtmpUtilInit();
*param_2 = 0;
os_alloc_mem(0,&local_24,0x200);
if (local_24 == (void *)0x0) {
printk("ERROR!!! ");
printk("Failed to allocate memory - BeaconBuf!\n");
LAB_0002ca28:
iVar1 = 1;
}
else {
memset(local_24,0,0x200) //possible issue identified - semgrep
iVar1 = AdapterBlockAllocateMemory(param_1,&local_28,0x76e88);
if (iVar1 == 0) {
*(undefined1 *)(local_28 + 0x1db8e) = 0;
local_28[0x1db8d] = 0;
local_28[0x1db8c] = 0;
*(undefined1 *)(local_28 + 0x1db91) = 0;
local_28[0x1db90] = 0;
local_28[0x1db8f] = 0;
*(undefined1 *)(local_28 + 0x1db94) = 0;
local_28[0x1db93] = 0;
local_28[0x1db92] = 0;
*(undefined1 *)(local_28 + 0x1db97) = 0;
local_28[0x1db96] = 0;
local_28[0x1db95] = 0;
*(undefined1 *)(local_28 + 0x1db9a) = 0;
local_28[0x1db99] = 0;
local_28[0x1db98] = 0;
*(undefined1 *)(local_28 + 0x1db9d) = 0;
local_28[0x1db9c] = 0;
local_28[0x1db9b] = 0;
*(undefined1 *)(local_28 + 0x1dba0) = 0;
local_28[0x1db9f] = 0;
local_28[0x1db9e] = 0;
*local_28 = param_1;
local_28[0x145a] = local_24;
printk("\n\n=== pAd = %p, size = %d ===\n\n",local_28,0x76e88);
iVar6 = RtmpOsStatsAlloc(local_28 + 0x1dac5,local_28 + 0x1dac4) //possible issue identified - semgrep
if (iVar6 != 0) {
*(undefined1 *)(local_28 + 0xa8a) = 0;
*(undefined1 *)((int)local_28 + 0x2a29) = 0;
*(undefined1 *)((int)local_28 + 0x2a2a) = 0;
*(undefined1 *)((int)local_28 + 0x2a2b) = 0;
*(undefined1 *)(local_28 + 0xa8b) = 0;
goto LAB_0002ca8c;
}
goto LAB_0002ca28;
}
printk("ERROR!!! ");
printk("Failed to allocate memory - ADAPTER\n");
}
if (local_24 != (void *)0x0) {
os_free_mem(0);
}
if (local_28 != (undefined4 *)0x0) {
if (local_28[0x1dac5] != 0) {
os_free_mem(0);
}
if (local_28[0x1dac4] != 0) {
os_free_mem(0);
}
}
LAB_0002ca8c:
puVar5 = local_28;
if (local_28 == (undefined4 *)0x0) {
puVar5 = (undefined4 *)*param_2;
}
*param_2 = puVar5;
iVar6 = 0;
do {
iVar2 = iVar6 + 0xed86;
iVar3 = os_alloc_mem(local_28,local_28 + iVar2 * 2 + 1,0x400);
if (iVar3 == 0) {
iVar3 = local_28[iVar2 * 2 + 1];
iVar2 = 0;
do {
puVar4 = (undefined1 *)(iVar3 + iVar2);
iVar2 = iVar2 + 1;
*puVar4 = 0;
} while (iVar2 != 0x400);
}
else {
local_28[iVar2 * 2 + 1] = 0;
}
iVar6 = iVar6 + 1;
} while (iVar6 != 0x40);
printk("<-- RTMPAllocAdapterBlock, Status=%x\n",iVar1);
return iVar1;
}